Se repasa toda la aplicación envio por correo electronico

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@78 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
This commit is contained in:
roberto 2010-09-22 11:07:18 +00:00
parent a43ae3bb7b
commit 919e14e422
97 changed files with 4169 additions and 1001 deletions

Binary file not shown.

Binary file not shown.

View File

@ -58,62 +58,62 @@
<Form>DataModuleImpresiones</Form> <Form>DataModuleImpresiones</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\adortl.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\cxDataD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\cxEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\cxExportD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\cxExtEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\cxGridD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\cxIntl6D11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\cxLibraryD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\cxPageControlD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\dclIndyCore.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\designide.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\dsnap.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\dxCoreD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\dxPSCoreD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\GUISDK_D11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\IndyCore.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\IndyProtocols.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\IndySystem.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\Jcl.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JclVcl.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JSDialog100.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JvCmpD11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JvCoreD11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JvDlgsD11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JvMMD11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JvNetD11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\JvSystemD11R.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\pckMD5.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\pckUCDataConnector.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\pckUserControl_RT.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\PngComponentsD10.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\PNG_D10.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\RemObjects_Indy_D11.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\rtl.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\TB2k_D10.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\tbx_d10.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\vcl.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\vclactnband.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\vcldb.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\VclSmp.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\vclx.dcp" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Controller\View\xmlrtl.dcp" />
<DCCReference Include="..\Modulos\Registro de correos\Data\uDataModuleRegistroCorreos.pas"> <DCCReference Include="..\Modulos\Registro de correos\Data\uDataModuleRegistroCorreos.pas">
<Form>DataModuleRegistroCorreos</Form> <Form>DataModuleRegistroCorreos</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Remesas de cliente\adortl.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\cxDataD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\cxEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\cxExportD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\cxExtEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\cxGridD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\cxIntl6D11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\cxLibraryD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\cxPageControlD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\dclIndyCore.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\designide.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\dsnap.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\dxCoreD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\dxPSCoreD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\GUISDK_D11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\IndyCore.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\IndyProtocols.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\IndySystem.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\Jcl.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JclVcl.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JSDialog100.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JvCmpD11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JvCoreD11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JvDlgsD11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JvMMD11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JvNetD11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\JvSystemD11R.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\pckMD5.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\pckUCDataConnector.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\pckUserControl_RT.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\PngComponentsD10.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\PNG_D10.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\RemObjects_Indy_D11.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\rtl.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\TB2k_D10.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\tbx_d10.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\vcl.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\vclactnband.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\vcldb.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\VclSmp.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\vclx.dcp" />
<DCCReference Include="..\Modulos\Remesas de cliente\xmlrtl.dcp" />
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" /> <DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
<DCCReference Include="Conexion\uConfigurarConexion.pas"> <DCCReference Include="Conexion\uConfigurarConexion.pas">
<Form>fConfigurarConexion</Form> <Form>fConfigurarConexion</Form>

Binary file not shown.

View File

@ -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>AlbaranesCliente_controller.dpk</MainSource> <MainSource>AlbaranesCliente_controller.dpk</MainSource>
@ -48,14 +49,15 @@
<DelphiCompile Include="AlbaranesCliente_controller.dpk"> <DelphiCompile Include="AlbaranesCliente_controller.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\AlbaranesCliente_data.dcp" />
<DCCReference Include="..\AlbaranesCliente_model.dcp" />
<DCCReference Include="..\Articulos_controller.dcp" />
<DCCReference Include="..\Contactos_controller.dcp" />
<DCCReference Include="uAlbaranesClienteController.pas" /> <DCCReference Include="uAlbaranesClienteController.pas" />
<DCCReference Include="uAlbaranesClienteReportController.pas" /> <DCCReference Include="uAlbaranesClienteReportController.pas" />
<DCCReference Include="uArticulosAlbaranClienteController.pas" /> <DCCReference Include="uArticulosAlbaranClienteController.pas" />
<DCCReference Include="uDetallesAlbaranClienteController.pas" /> <DCCReference Include="uDetallesAlbaranClienteController.pas" />
<DCCReference Include="View\AlbaranesCliente_data.dcp" />
<DCCReference Include="View\AlbaranesCliente_model.dcp" />
<DCCReference Include="View\Articulos_controller.dcp" />
<DCCReference Include="View\Contactos_controller.dcp" />
<DCCReference Include="View\uIDialogListaAlbaranesClienteEnvioEMail.pas" />
<DCCReference Include="View\uIEditorAlbaranCliente.pas" /> <DCCReference Include="View\uIEditorAlbaranCliente.pas" />
<DCCReference Include="View\uIEditorAlbaranDevCliente.pas" /> <DCCReference Include="View\uIEditorAlbaranDevCliente.pas" />
<DCCReference Include="View\uIEditorAlbaranesCliente.pas" /> <DCCReference Include="View\uIEditorAlbaranesCliente.pas" />

View File

@ -0,0 +1,21 @@
unit uIDialogListaAlbaranesClienteEnvioEMail;
interface
uses
uBizAlbaranesCliente, uAlbaranesClienteController;
type
IDialogListaAlbaranesClienteEnvioEMail = interface
['{61C5DC84-BB36-4ED2-BD49-8AEC470B3B87}']
function GetAlbaranes: IBizAlbaranCliente;
procedure SetAlbaranes(const Value: IBizAlbaranCliente);
property Albaranes: IBizAlbaranCliente read GetAlbaranes write SetAlbaranes;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -64,7 +64,14 @@ type
procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto; procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto;
AAlbaran: IBizAlbaranCliente); AAlbaran: IBizAlbaranCliente);
procedure QuitarDireccionEnvio(AAlbaran: IBizAlbaranCliente); procedure QuitarDireccionEnvio(AAlbaran: IBizAlbaranCliente);
procedure EnviarAlbaranPorEMail(AAlbaran : IBizAlbaranCliente);
procedure GenerarEmailAlbaran(AAlbaran : IBizAlbaranCliente);
function EnviarEmailAlbaranes(AAlbaranes : IBizAlbaranCliente): Boolean;
function EnviarAlbaranPorEMail(AAlbaran: IBizAlbaranCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
procedure RecuperarCliente(AAlbaran: IBizAlbaranCliente); procedure RecuperarCliente(AAlbaran: IBizAlbaranCliente);
function CambiarSituacion(AAlbaran : IBizAlbaranCliente; function CambiarSituacion(AAlbaran : IBizAlbaranCliente;
ANuevaSituacion: String; AFechaEnvio : TDateTime = 0; ANuevaSituacion: String; AFechaEnvio : TDateTime = 0;
@ -76,6 +83,9 @@ type
end; end;
TAlbaranesClienteController = class(TControllerBase, IAlbaranesClienteController) TAlbaranesClienteController = class(TControllerBase, IAlbaranesClienteController)
private
procedure _AnadirMarcaEnvioCorreo(AAlbaran: IBizAlbaranCliente);
protected protected
FDataModule : IDataModuleAlbaranesCliente; FDataModule : IDataModuleAlbaranesCliente;
FClienteController : IClientesController; FClienteController : IClientesController;
@ -147,7 +157,13 @@ type
function EsModificable(AAlbaran: IBizAlbaranCliente): Boolean; function EsModificable(AAlbaran: IBizAlbaranCliente): Boolean;
function EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean; function EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean;
procedure EnviarAlbaranPorEMail(AAlbaran : IBizAlbaranCliente); procedure GenerarEmailAlbaran(AAlbaran : IBizAlbaranCliente);
function EnviarEmailAlbaranes(AAlbaranes : IBizAlbaranCliente): Boolean;
function EnviarAlbaranPorEMail(AAlbaran: IBizAlbaranCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function CambiarSituacion(AAlbaran : IBizAlbaranCliente; function CambiarSituacion(AAlbaran : IBizAlbaranCliente;
ANuevaSituacion: String; AFechaEnvio : TDateTime = 0; ANuevaSituacion: String; AFechaEnvio : TDateTime = 0;
AFechaRecibido : TDateTime = 0; AFechaRecibido : TDateTime = 0;
@ -172,7 +188,7 @@ implementation
uses uses
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorAlbaranesCliente, uIEditorAlbaranesDevCliente, uIEditorAlbaranDevCliente, uIEditorAlbaranesCliente, uIEditorAlbaranesDevCliente, uIEditorAlbaranDevCliente,
uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente, uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente, uDataModuleRegistroCorreos,
uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App,
schAlbaranesClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranCliente, schAlbaranesClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranCliente,
uIEditorElegirAlbaranesCliente, uIEditorDireccionEntregaAlbaranCliente, uIEditorElegirAlbaranesCliente, uIEditorDireccionEntregaAlbaranCliente,
@ -181,7 +197,7 @@ uses
// Pedidos no estará en TECSITEL // Pedidos no estará en TECSITEL
// uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, schPedidosClienteClient_Intf, // uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, schPedidosClienteClient_Intf,
uDialogUtils, Windows, Forms, Dialogs, uGUIBase, uIntegerListUtils, uDialogUtils, Windows, Forms, Dialogs, uGUIBase, uIntegerListUtils, uIDialogListaAlbaranesClienteEnvioEMail,
uSistemaFunc, uEMailUtils, uDialogElegirEMail, uStringsUtils; uSistemaFunc, uEMailUtils, uDialogElegirEMail, uStringsUtils;
@ -710,6 +726,38 @@ begin
end; end;
end; end;
procedure TAlbaranesClienteController._AnadirMarcaEnvioCorreo(
AAlbaran: IBizAlbaranCliente);
var
ASoloLectura : Boolean;
begin
if not Assigned(AAlbaran) then
raise Exception.Create ('Pedido no asignada (_AnadirMarcaEnvioCorreo)');
if AAlbaran.DataTable.Active then
AAlbaran.DataTable.Active := True;
if AnadirMarcaEnvioCorreo(nme_AlbaranesCliente, AAlbaran.ID) then
begin
DesconectarTabla(AAlbaran.DataTable);
try
ASoloLectura := AAlbaran.DataTable.ReadOnly;
if ASoloLectura then
SetDataTableReadOnly(AAlbaran.DataTable, False);
try
AAlbaran.Edit;
AAlbaran.NUM_CORREOS := AAlbaran.NUM_CORREOS + 1;
AAlbaran.Post;
finally
if ASoloLectura then
SetDataTableReadOnly(AAlbaran.DataTable, True);
end;
finally
ConectarTabla(AAlbaran.DataTable);
end;
end;
end;
function TAlbaranesClienteController._Vacio: IBizAlbaranCliente; function TAlbaranesClienteController._Vacio: IBizAlbaranCliente;
begin begin
Result := Buscar(ID_NULO); Result := Buscar(ID_NULO);
@ -802,50 +850,97 @@ begin
end; end;
end; end;
procedure TAlbaranesClienteController.EnviarAlbaranPorEMail( function TAlbaranesClienteController.EnviarAlbaranPorEMail(
AAlbaran: IBizAlbaranCliente); AAlbaran: IBizAlbaranCliente; const AEnviarDirectamente: Boolean;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
var var
AReportController : IAlbaranesClienteReportController; AReportController : IAlbaranesClienteReportController;
AFicheroTMP : TFileName; AFicheroTMP : TFileName;
AEMail : String; AEMail : String;
AAsunto : String;
AListaEmail : TStringList; AListaEmail : TStringList;
begin begin
if not Assigned(AAlbaran) then if not Assigned(AAlbaran) then
raise Exception.Create ('Albarán no asignado (EnviarAlbaranPorEMail)'); raise Exception.Create ('Albaran no asignada (EnviarAlbaranPorEMail)');
if AAlbaran.DataTable.Active then if AAlbaran.DataTable.Active then
AAlbaran.DataTable.Active := True; AAlbaran.DataTable.Active := True;
RecuperarCliente(AAlbaran);
AAlbaran.Cliente.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AAlbaran.REFERENCIA)); AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AAlbaran.REFERENCIA));
AListaEmail := TStringList.Create; if not EsCadenaVacia(ADireccionEMail) then
try AEMail := ADireccionEMail
RecuperarCliente(AAlbaran); else begin
AAlbaran.Cliente.DataTable.Active := True; AListaEmail := TStringList.Create;
try
if not EsCadenaVacia(AAlbaran.Cliente.EMAIL_ADMINISTRACION) then
AListaEmail.Add(AAlbaran.Cliente.EMAIL_ADMINISTRACION);
if not AAlbaran.Cliente.EMAIL_1IsNull then if not ElegirEMail(AListaEmail, AEMail) then
AListaEmail.Add(AAlbaran.Cliente.EMAIL_1); Exit;
if not AAlbaran.Cliente.EMAIL_2IsNull then finally
AListaEmail.Add(AAlbaran.Cliente.EMAIL_2); FreeANDNIL(AListaEmail);
end;
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end; end;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Albaran ' + AAlbaran.REFERENCIA;
ShowHourglassCursor; ShowHourglassCursor;
Application.ProcessMessages;
AReportController := TAlbaranesClienteReportController.Create; AReportController := TAlbaranesClienteReportController.Create;
try try
AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP); AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP);
EnviarEMailMAPI('Albarán ' + AAlbaran.REFERENCIA, '', AFicheroTMP, '', '', AAlbaran.Cliente.NOMBRE, AEMail); Result := EnviarEMailMAPI(AAsunto, ATextoEMail, AFicheroTMP, '', '', AAlbaran.Cliente.NOMBRE, AEMail, AEnviarDirectamente);
if Result then
_AnadirMarcaEnvioCorreo(AAlbaran);
finally finally
SysUtils.DeleteFile(AFicheroTMP); SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL; AReportController := NIL;
HideHourglassCursor; HideHourglassCursor;
Application.ProcessMessages;
end; end;
end; end;
function TAlbaranesClienteController.EnviarEmailAlbaranes(
AAlbaranes: IBizAlbaranCliente): Boolean;
var
ADialog : IDialogListaAlbaranesClienteEnvioEMail;
ARespuesta : Integer;
begin
ADialog := NIL;
if not Assigned(AAlbaranes) then
raise Exception.Create ('Albaranes no asignadas (EnviarAlbaranesPorEMail)');
if AAlbaranes.DataTable.Active then
AAlbaranes.DataTable.Active := True;
ShowHourglassCursor;
try
CreateEditor('DialogListaAlbaranesClienteEnvioEMail', IDialogListaAlbaranesClienteEnvioEMail, ADialog);
if Assigned(ADialog) then
begin
try
ADialog.Albaranes := AAlbaranes;
ARespuesta := ADialog.ShowModal;
Result := (ARespuesta = mrOK)
finally
ADialog.Release;
end;
end;
finally
ADialog := NIL;
HideHourglassCursor;
end;
end;
function TAlbaranesClienteController.EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean; function TAlbaranesClienteController.EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean;
begin begin
@ -1177,6 +1272,24 @@ begin
end; end;
end; end;
procedure TAlbaranesClienteController.GenerarEmailAlbaran(
AAlbaran: IBizAlbaranCliente);
begin
if not Assigned(AAlbaran) then
raise Exception.Create ('Albaranes no asignadas (GenerarEmailAlbaran)');
if AAlbaran.DataTable.Active then
AAlbaran.DataTable.Active := True;
ShowHourglassCursor;
try
RecuperarCliente(AAlbaran);
EnviarAlbaranPorEMail(AAlbaran, False, AAlbaran.Cliente.EMAIL_ADMINISTRACION);
finally
HideHourglassCursor;
end;
end;
function TAlbaranesClienteController.GenerarOrdenDev(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente; function TAlbaranesClienteController.GenerarOrdenDev(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente;
var var
AOrden : IBizAlbaranCliente; AOrden : IBizAlbaranCliente;

View File

@ -39,7 +39,12 @@ requires
PedidosCliente_model, PedidosCliente_model,
Inventario_controller, Inventario_controller,
FacturasCliente_model, FacturasCliente_model,
FacturasCliente_controller; FacturasCliente_controller,
cxLibraryD11,
dxThemeD11,
dxGDIPlusD11,
dxCoreD11,
vclx;
contains contains
uAlbaranesClienteViewRegister in 'uAlbaranesClienteViewRegister.pas', uAlbaranesClienteViewRegister in 'uAlbaranesClienteViewRegister.pas',
@ -58,6 +63,7 @@ contains
uEditorAlbaranDevCliente in 'uEditorAlbaranDevCliente.pas' {fEditorAlbaranDevCliente: TCustomEditor}, uEditorAlbaranDevCliente in 'uEditorAlbaranDevCliente.pas' {fEditorAlbaranDevCliente: TCustomEditor},
uViewAlbaranDevCliente in 'uViewAlbaranDevCliente.pas' {frViewAlbaranDevCliente: TCustomView}, uViewAlbaranDevCliente in 'uViewAlbaranDevCliente.pas' {frViewAlbaranDevCliente: TCustomView},
uViewDatosYSeleccionClienteAlbaran in 'uViewDatosYSeleccionClienteAlbaran.pas' {frViewDatosYSeleccionClienteAlbaran: TCustomView}, uViewDatosYSeleccionClienteAlbaran in 'uViewDatosYSeleccionClienteAlbaran.pas' {frViewDatosYSeleccionClienteAlbaran: TCustomView},
uDialogOpcionesImpresionAlbaranesCliente in 'uDialogOpcionesImpresionAlbaranesCliente.pas' {frDialogOpcionesImpresionAlbaranesCliente: T}; uDialogOpcionesImpresionAlbaranesCliente in 'uDialogOpcionesImpresionAlbaranesCliente.pas' {frDialogOpcionesImpresionAlbaranesCliente: T},
uDialogListaAlbaranesClienteEnvioEMail in 'uDialogListaAlbaranesClienteEnvioEMail.pas' {frDialogListaAlbaranesClienteEnvioEMail: TForm};
end. end.

View File

@ -43,6 +43,10 @@
<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">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><Excluded_Packages> <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><Excluded_Packages>
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl">File c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl not found</Excluded_Packages> <Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl">File c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl not found</Excluded_Packages>
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl">File c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl not found</Excluded_Packages> <Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl">File c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl not found</Excluded_Packages>
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl">File c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl not found</Excluded_Packages> <Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl">File c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl not found</Excluded_Packages>
@ -54,22 +58,29 @@
<DelphiCompile Include="AlbaranesCliente_view.dpk"> <DelphiCompile Include="AlbaranesCliente_view.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\..\Lib\AlbaranesCliente_controller.dcp" /> <DCCReference Include="AlbaranesCliente_controller.dcp" />
<DCCReference Include="..\..\Lib\AlbaranesCliente_model.dcp" /> <DCCReference Include="AlbaranesCliente_model.dcp" />
<DCCReference Include="..\..\Lib\AlbCli_FacCli_relation.dcp" /> <DCCReference Include="AlbCli_FacCli_relation.dcp" />
<DCCReference Include="..\..\Lib\Almacenes_controller.dcp" /> <DCCReference Include="Almacenes_controller.dcp" />
<DCCReference Include="..\..\Lib\ApplicationBase.dcp" /> <DCCReference Include="ApplicationBase.dcp" />
<DCCReference Include="..\..\Lib\Articulos_view.dcp" /> <DCCReference Include="Articulos_view.dcp" />
<DCCReference Include="..\..\Lib\Base.dcp" /> <DCCReference Include="Base.dcp" />
<DCCReference Include="..\..\Lib\FacturasCliente_controller.dcp" /> <DCCReference Include="cxLibraryD11.dcp" />
<DCCReference Include="..\..\Lib\FacturasCliente_model.dcp" /> <DCCReference Include="dxCoreD11.dcp" />
<DCCReference Include="..\..\Lib\GUIBase.dcp" /> <DCCReference Include="dxGDIPlusD11.dcp" />
<DCCReference Include="..\..\Lib\Inventario_controller.dcp" /> <DCCReference Include="dxThemeD11.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_controller.dcp" /> <DCCReference Include="FacturasCliente_controller.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_model.dcp" /> <DCCReference Include="FacturasCliente_model.dcp" />
<DCCReference Include="..\..\Lib\rtl.dcp" /> <DCCReference Include="GUIBase.dcp" />
<DCCReference Include="..\..\Lib\vcl.dcp" /> <DCCReference Include="Inventario_controller.dcp" />
<DCCReference Include="PedidosCliente_controller.dcp" />
<DCCReference Include="PedidosCliente_model.dcp" />
<DCCReference Include="rtl.dcp" />
<DCCReference Include="uAlbaranesClienteViewRegister.pas" /> <DCCReference Include="uAlbaranesClienteViewRegister.pas" />
<DCCReference Include="uDialogListaAlbaranesClienteEnvioEMail.pas">
<Form>fruDialogListaAlbaranesClienteEnvioEMail</Form>
<DesignClass>T</DesignClass>
</DCCReference>
<DCCReference Include="uDialogOpcionesImpresionAlbaranesCliente.pas"> <DCCReference Include="uDialogOpcionesImpresionAlbaranesCliente.pas">
<Form>frDialogOpcionesImpresionAlbaranesCliente</Form> <Form>frDialogOpcionesImpresionAlbaranesCliente</Form>
<DesignClass>T</DesignClass> <DesignClass>T</DesignClass>
@ -134,6 +145,8 @@
<Form>frViewElegirArticulosAlbaranesCliente</Form> <Form>frViewElegirArticulosAlbaranesCliente</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

View File

@ -10,7 +10,8 @@ implementation
uses uses
uEditorRegistryUtils, uEditorAlbaranesCliente, uEditorAlbaranCliente, uEditorRegistryUtils, uEditorAlbaranesCliente, uEditorAlbaranCliente,
uEditorElegirArticulosAlbaranCliente, uEditorAlbaranesClienteReport, uEditorElegirArticulosAlbaranCliente, uEditorAlbaranesClienteReport,
uEditorElegirAlbaranesCliente, uEditorAlbaranesDevCliente, uEditorAlbaranDevCliente; uEditorElegirAlbaranesCliente, uEditorAlbaranesDevCliente, uEditorAlbaranDevCliente,
uDialogListaAlbaranesClienteEnvioEMail;
procedure RegisterViews; procedure RegisterViews;
begin begin
@ -21,6 +22,7 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirArticulosAlbaranCliente, 'EditorElegirArticulosAlbaranesCliente'); EditorRegistry.RegisterClass(TfEditorElegirArticulosAlbaranCliente, 'EditorElegirArticulosAlbaranesCliente');
EditorRegistry.RegisterClass(TfEditorAlbaranesClientePreview, 'EditorAlbaranesClientePreview'); EditorRegistry.RegisterClass(TfEditorAlbaranesClientePreview, 'EditorAlbaranesClientePreview');
EditorRegistry.RegisterClass(TfEditorElegirAlbaranesCliente, 'EditorElegirAlbaranesCliente'); EditorRegistry.RegisterClass(TfEditorElegirAlbaranesCliente, 'EditorElegirAlbaranesCliente');
EditorRegistry.RegisterClass(TfDialogListaAlbaranesClienteEnvioEMail, 'DialogListaAlbaranesClienteEnvioEMail');
end; end;
procedure UnregisterViews; procedure UnregisterViews;
@ -32,6 +34,7 @@ begin
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlbaranCliente); EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlbaranCliente);
EditorRegistry.UnRegisterClass(TfEditorAlbaranesClientePreview); EditorRegistry.UnRegisterClass(TfEditorAlbaranesClientePreview);
EditorRegistry.UnRegisterClass(TfEditorElegirAlbaranesCliente); EditorRegistry.UnRegisterClass(TfEditorElegirAlbaranesCliente);
EditorRegistry.UnRegisterClass(TfDialogListaAlbaranesClienteEnvioEMail);
end; end;
end. end.

View File

@ -0,0 +1,97 @@
inherited fDialogListaAlbaranesClienteEnvioEMail: TfDialogListaAlbaranesClienteEnvioEMail
Caption = 'Enviar albaranes por correo electr'#243'nico'
ClientHeight = 490
ClientWidth = 665
ExplicitWidth = 671
ExplicitHeight = 522
PixelsPerInch = 96
TextHeight = 13
inherited Bevel2: TBevel
Width = 665
ExplicitWidth = 627
end
inherited Bevel3: TBevel
Top = 446
Width = 665
ExplicitTop = 466
ExplicitWidth = 627
end
inherited pnlBotones: TPanel
Top = 448
Width = 665
ExplicitTop = 448
ExplicitWidth = 665
inherited btnAceptar: TButton
Left = 482
Width = 100
ExplicitLeft = 482
ExplicitWidth = 100
end
inherited btnCancelar: TButton
Left = 586
ExplicitLeft = 586
end
end
inherited pnlHeader: TPanel
Width = 665
ExplicitWidth = 665
inherited lblInstruccion: TLabel
Width = 222
Caption = 'Enviar albaranes por correo electr'#243'nico'
ExplicitWidth = 222
end
inherited Label2: TLabel
Width = 569
Height = 26
Caption =
'Se generar'#225'n correos electr'#243'nicos autom'#225'ticos adjuntando los alb' +
'aranes elegidas en formato PDF. S'#243'lo se tendr'#225'n en cuenta los cl' +
'ientes que tengan relleno su e-mail administrativo.'
WordWrap = True
ExplicitWidth = 569
ExplicitHeight = 26
end
end
inherited pnlCuerpo: TPanel
Width = 665
Height = 380
ExplicitWidth = 665
ExplicitHeight = 380
end
inherited ListView1: TListView
Width = 665
Height = 380
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 = 380
end
inherited ActionList1: TActionList
Top = 352
inherited actAceptar: TAction
Caption = '&Generar correos'
OnExecute = actAceptarExecute
OnUpdate = actAceptarUpdate
end
inherited actCancelar: TAction
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,166 @@
unit uDialogListaAlbaranesClienteEnvioEMail;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls,
uDialogListaEnvioEMail, uIDialogListaAlbaranesClienteEnvioEMail, uAlbaranesClienteController,
uBizAlbaranesCliente;
type
TfDialogListaAlbaranesClienteEnvioEMail = class(TfDialogListaEnvioEMail, IDialogListaAlbaranesClienteEnvioEMail)
procedure actCancelarExecute(Sender: TObject);
procedure actAceptarUpdate(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
private
FAlbaranes : IBizAlbaranCliente;
FController : IAlbaranesClienteController;
protected
function GetAlbaranes: IBizAlbaranCliente;
procedure SetAlbaranes(const Value: IBizAlbaranCliente);
procedure RellenarLista;
procedure BorrarLista;
public
constructor Create(AOwner: TComponent); override;
property Albaranes: IBizAlbaranCliente read GetAlbaranes write SetAlbaranes;
end;
implementation
uses
schAlbaranesClienteClient_Intf, uStringsUtils, cxControls;
{$R *.dfm}
{ TfDialogListaAlbaranesEnvioEMail }
procedure TfDialogListaAlbaranesClienteEnvioEMail.actAceptarExecute(Sender: TObject);
var
i : Integer;
begin
ShowHourglassCursor;
Application.ProcessMessages;
try
FAlbaranes.First;
FController.RecuperarCliente(FAlbaranes);
FAlbaranes.Cliente.DataTable.Active := True;
try
for i := 0 to FAlbaranes.DataTable.RecordCount - 1 do
begin
if not EsCadenaVacia(FAlbaranes.Cliente.EMAIL_ADMINISTRACION) then
begin
if FController.EnviarAlbaranPorEMail(FAlbaranes, True, FAlbaranes.Cliente.EMAIL_ADMINISTRACION) 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;
FAlbaranes.Next;
FController.RecuperarCliente(FAlbaranes);
FAlbaranes.Cliente.DataTable.Active := True;
end;
btnAceptar.Enabled := False;
finally
ListView1.Items.EndUpdate;
end;
finally
HideHourglassCursor;
end;
btnCancelar.SetFocus;
end;
procedure TfDialogListaAlbaranesClienteEnvioEMail.actAceptarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ListView1.Items.Count > 0)
end;
procedure TfDialogListaAlbaranesClienteEnvioEMail.actCancelarExecute(Sender: TObject);
begin
inherited;
ModalResult := mrOk;
end;
procedure TfDialogListaAlbaranesClienteEnvioEMail.BorrarLista;
begin
ListView1.Items.Clear;
end;
constructor TfDialogListaAlbaranesClienteEnvioEMail.Create(AOwner: TComponent);
begin
inherited;
ModalResult := mrCancel;
FController := TAlbaranesClienteController.Create;
end;
function TfDialogListaAlbaranesClienteEnvioEMail.GetAlbaranes: IBizAlbaranCliente;
begin
Result := FAlbaranes;
end;
procedure TfDialogListaAlbaranesClienteEnvioEMail.RellenarLista;
var
i : Integer;
begin
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
FAlbaranes.First;
FAlbaranes.DataTable.DisableControls;
try
for i := 0 to FAlbaranes.DataTable.RecordCount - 1 do
begin
FController.RecuperarCliente(FAlbaranes);
FAlbaranes.Cliente.DataTable.Active := True;
with ListView1.Items.Add do
begin
Caption := FAlbaranes.REFERENCIA;
SubItems.Add(FAlbaranes.NOMBRE);
SubItems.Add(FAlbaranes.Cliente.EMAIL_ADMINISTRACION);
if EsCadenaVacia(FAlbaranes.Cliente.EMAIL_ADMINISTRACION) then
SubItems.Add('Sin dirección e-mail administrativa')
else
SubItems.Add('')
end;
FAlbaranes.Next;
end;
finally
FAlbaranes.DataTable.EnableControls;
ListView1.Items.EndUpdate;
end;
end;
procedure TfDialogListaAlbaranesClienteEnvioEMail.SetAlbaranes(
const Value: IBizAlbaranCliente);
begin
FAlbaranes := Value;
if Assigned(FAlbaranes) then
begin
FAlbaranes.DataTable.Open;
if (FAlbaranes.TIPO = CTE_TIPO_ALBARAN_DEV) then
begin
Self.Caption := 'Enviar órdenes de devolución por correo electrónico';
lblInstruccion.Caption := 'Enviar órdenes de devolución por correo electrónico';
Label2.Caption := 'Se generarán correos electrónicos automáticos adjuntando las órdenes de devolución elegidas en formato PDF. Sólo se tendrán en cuenta los clientes que tengan relleno su e-mail administrativo.';
end;
RellenarLista;
end
else
BorrarLista;
end;
end.

View File

@ -127,6 +127,9 @@ inherited fEditorAlbaranesCliente: TfEditorAlbaranesCliente
ExplicitWidth = 583 ExplicitWidth = 583
object TBXSeparatorItem17: TTBXSeparatorItem [10] object TBXSeparatorItem17: TTBXSeparatorItem [10]
end end
object TBXItem41: TTBXItem [14]
Action = actEnviarEMail
end
end end
inherited tbxFiltro: TTBXToolbar inherited tbxFiltro: TTBXToolbar
ExplicitWidth = 427 ExplicitWidth = 427

View File

@ -42,6 +42,7 @@ type
TBXItem39: TTBXItem; TBXItem39: TTBXItem;
actGenerarOrden: TAction; actGenerarOrden: TAction;
TBXItem40: TTBXItem; TBXItem40: TTBXItem;
TBXItem41: TTBXItem;
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure actGenerarFacturaUpdate(Sender: TObject); procedure actGenerarFacturaUpdate(Sender: TObject);
procedure actGenerarFacturaExecute(Sender: TObject); procedure actGenerarFacturaExecute(Sender: TObject);
@ -92,6 +93,7 @@ type
implementation implementation
uses uses
cxControls,
uDataModuleAlbaranesCliente, uDataModuleUsuarios, uFactuGES_App, uDataModuleAlbaranesCliente, uDataModuleUsuarios, uFactuGES_App,
uGenerarFacturasCliAlbCliUtils, uGenerarFacturasCliAlbCliUtils,
//En tecsitel no estaran habilitados los pedidos //En tecsitel no estaran habilitados los pedidos
@ -209,9 +211,27 @@ begin
end; end;
procedure TfEditorAlbaranesCliente.actEnviarEMailExecute(Sender: TObject); procedure TfEditorAlbaranesCliente.actEnviarEMailExecute(Sender: TObject);
var
AAlbaranes : IBizAlbaranCliente;
begin begin
inherited; inherited;
FController.EnviarAlbaranPorEMail(FAlbaranes);
if ViewGrid.NumSeleccionados = 1 then
FController.GenerarEmailAlbaran(Albaranes)
else begin
ShowHourglassCursor;
try
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords);
AAlbaranes := (Controller as IAlbaranesClienteController).ExtraerSeleccionados(Albaranes) as IBizAlbaranCliente;
if Assigned(AAlbaranes) then
if FController.EnviarEmailAlbaranes(AAlbaranes) then
RefrescarInterno;
finally
AAlbaranes := NIL;
HideHourglassCursor;
end;
end;
end; end;
procedure TfEditorAlbaranesCliente.actEnviarEMailUpdate(Sender: TObject); procedure TfEditorAlbaranesCliente.actEnviarEMailUpdate(Sender: TObject);

View File

@ -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>AlbaranesProveedor_controller.dpk</MainSource> <MainSource>AlbaranesProveedor_controller.dpk</MainSource>
@ -48,18 +49,19 @@
<DelphiCompile Include="AlbaranesProveedor_controller.dpk"> <DelphiCompile Include="AlbaranesProveedor_controller.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\..\..\AlbaranesProveedor_data.dcp" />
<DCCReference Include="..\..\..\AlbaranesProveedor_model.dcp" />
<DCCReference Include="..\..\..\Articulos_controller.dcp" />
<DCCReference Include="..\..\..\Contactos_controller.dcp" />
<DCCReference Include="..\..\..\GUIBase.dcp" />
<DCCReference Include="..\..\..\Inventario_model.dcp" />
<DCCReference Include="..\..\..\PedidosProveedor_controller.dcp" />
<DCCReference Include="..\..\..\PedidosProveedor_model.dcp" />
<DCCReference Include="uAlbaranesProveedorController.pas" /> <DCCReference Include="uAlbaranesProveedorController.pas" />
<DCCReference Include="uAlbaranesProveedorReportController.pas" /> <DCCReference Include="uAlbaranesProveedorReportController.pas" />
<DCCReference Include="uArticulosAlbaranProveedorController.pas" /> <DCCReference Include="uArticulosAlbaranProveedorController.pas" />
<DCCReference Include="uDetallesAlbaranProveedorController.pas" /> <DCCReference Include="uDetallesAlbaranProveedorController.pas" />
<DCCReference Include="View\AlbaranesProveedor_data.dcp" />
<DCCReference Include="View\AlbaranesProveedor_model.dcp" />
<DCCReference Include="View\Articulos_controller.dcp" />
<DCCReference Include="View\Contactos_controller.dcp" />
<DCCReference Include="View\GUIBase.dcp" />
<DCCReference Include="View\Inventario_model.dcp" />
<DCCReference Include="View\PedidosProveedor_controller.dcp" />
<DCCReference Include="View\PedidosProveedor_model.dcp" />
<DCCReference Include="View\uIDialogListaAlbaranesProveedorEnvioEMail.pas" />
<DCCReference Include="View\uIEditorAlbaranDevProveedor.pas" /> <DCCReference Include="View\uIEditorAlbaranDevProveedor.pas" />
<DCCReference Include="View\uIEditorAlbaranesDevProveedor.pas" /> <DCCReference Include="View\uIEditorAlbaranesDevProveedor.pas" />
<DCCReference Include="View\uIEditorAlbaranesProveedor.pas" /> <DCCReference Include="View\uIEditorAlbaranesProveedor.pas" />

View File

@ -0,0 +1,21 @@
unit uIDialogListaAlbaranesProveedorEnvioEMail;
interface
uses
uBizAlbaranesProveedor, uAlbaranesProveedorController;
type
IDialogListaAlbaranesProveedorEnvioEMail = interface
['{7A9D9D03-0841-4BD4-B332-396224C9618F}']
function GetAlbaranes: IBizAlbaranProveedor;
procedure SetAlbaranes(const Value: IBizAlbaranProveedor);
property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -64,6 +64,13 @@ type
function Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false; function Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false;
const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean;
procedure GenerarEmailAlbaran(AAlbaran : IBizAlbaranProveedor);
function EnviarEmailAlbaranes(AAlbaranes : IBizAlbaranProveedor): Boolean;
function EnviarAlbaranPorEMail(AAlbaran: IBizAlbaranProveedor;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function DarListaAnosAlbaranes: TStringList; function DarListaAnosAlbaranes: TStringList;
procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String); procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
@ -71,6 +78,9 @@ type
end; end;
TAlbaranesProveedorController = class(TControllerBase, IAlbaranesProveedorController) TAlbaranesProveedorController = class(TControllerBase, IAlbaranesProveedorController)
private
procedure _AnadirMarcaEnvioCorreo(AAlbaran: IBizAlbaranProveedor);
protected protected
FDataModule : IDataModuleAlbaranesProveedor; FDataModule : IDataModuleAlbaranesProveedor;
FProveedorController : IProveedoresController; FProveedorController : IProveedoresController;
@ -145,6 +155,13 @@ type
function Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false; function Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false;
const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean; const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean;
procedure GenerarEmailAlbaran(AAlbaran : IBizAlbaranProveedor);
function EnviarEmailAlbaranes(AAlbaranes : IBizAlbaranProveedor): Boolean;
function EnviarAlbaranPorEMail(AAlbaran: IBizAlbaranProveedor;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function DarListaAnosAlbaranes: TStringList; function DarListaAnosAlbaranes: TStringList;
procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String); procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
@ -160,11 +177,13 @@ uses
schAlbaranesProveedorClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranProveedor, schAlbaranesProveedorClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranProveedor,
uIEditorElegirAlbaranesProveedor, uIEditorDireccionEntregaAlbaranProveedor, uIEditorElegirAlbaranesProveedor, uIEditorDireccionEntregaAlbaranProveedor,
schContactosClient_Intf, Forms, schPedidosProveedorClient_Intf, uFactuGES_App, schContactosClient_Intf, Forms, schPedidosProveedorClient_Intf, uFactuGES_App,
uBizPedidosProveedor, uPedidosProveedorController, uBizPedidosProveedor, uPedidosProveedorController, uDataModuleRegistroCorreos,
schInventarioClient_Intf, uStringsUtils, uIntegerListUtils, schInventarioClient_Intf, uStringsUtils, uIntegerListUtils,
uArticulosController, uBizArticulos, uControllerDetallesBase, uArticulosController, uBizArticulos, uControllerDetallesBase,
schArticulosClient_Intf, uControllerDetallesArticulos, Variants, uDialogUtils, schArticulosClient_Intf, uControllerDetallesArticulos, Variants, uDialogUtils,
uIEditorAlbaranDevProveedor, uAlbaranesProveedorReportController; uIEditorAlbaranDevProveedor, uAlbaranesProveedorReportController,
uIDialogListaAlbaranesProveedorEnvioEMail,
uSistemaFunc, uEMailUtils, uDialogElegirEMail;
{ Métodos auxiliares } { Métodos auxiliares }
@ -796,6 +815,37 @@ begin
end; end;
end; end;
procedure TAlbaranesProveedorController._AnadirMarcaEnvioCorreo(AAlbaran: IBizAlbaranProveedor);
var
ASoloLectura : Boolean;
begin
if not Assigned(AAlbaran) then
raise Exception.Create ('Pedido no asignada (_AnadirMarcaEnvioCorreo)');
if AAlbaran.DataTable.Active then
AAlbaran.DataTable.Active := True;
if AnadirMarcaEnvioCorreo(nme_AlbaranesProveedor, AAlbaran.ID) then
begin
DesconectarTabla(AAlbaran.DataTable);
try
ASoloLectura := AAlbaran.DataTable.ReadOnly;
if ASoloLectura then
SetDataTableReadOnly(AAlbaran.DataTable, False);
try
AAlbaran.Edit;
AAlbaran.NUM_CORREOS := AAlbaran.NUM_CORREOS + 1;
AAlbaran.Post;
finally
if ASoloLectura then
SetDataTableReadOnly(AAlbaran.DataTable, True);
end;
finally
ConectarTabla(AAlbaran.DataTable);
end;
end;
end;
function TAlbaranesProveedorController._Vacio: IBizAlbaranProveedor; function TAlbaranesProveedorController._Vacio: IBizAlbaranProveedor;
begin begin
Result := Buscar(ID_NULO); Result := Buscar(ID_NULO);
@ -887,6 +937,98 @@ begin
HideHourglassCursor; HideHourglassCursor;
end; end;
end; end;
function TAlbaranesProveedorController.EnviarAlbaranPorEMail(
AAlbaran: IBizAlbaranProveedor; const AEnviarDirectamente: Boolean;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
var
AReportController : IAlbaranesProveedorReportController;
AFicheroTMP : TFileName;
AEMail : String;
AAsunto : String;
AListaEmail : TStringList;
begin
if not Assigned(AAlbaran) then
raise Exception.Create ('Albaran no asignada (EnviarAlbaranPorEMail)');
if AAlbaran.DataTable.Active then
AAlbaran.DataTable.Active := True;
RecuperarProveedor(AAlbaran);
AAlbaran.Proveedor.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AAlbaran.REFERENCIA));
if not EsCadenaVacia(ADireccionEMail) then
AEMail := ADireccionEMail
else begin
AListaEmail := TStringList.Create;
try
if not EsCadenaVacia(AAlbaran.Proveedor.EMAIL_ADMINISTRACION) then
AListaEmail.Add(AAlbaran.Proveedor.EMAIL_ADMINISTRACION);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
end;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Albaran ' + AAlbaran.REFERENCIA;
ShowHourglassCursor;
Application.ProcessMessages;
AReportController := TAlbaranesProveedorReportController.Create;
try
AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP);
Result := EnviarEMailMAPI(AAsunto, ATextoEMail, AFicheroTMP, '', '', AAlbaran.Proveedor.NOMBRE, AEMail, AEnviarDirectamente);
if Result then
_AnadirMarcaEnvioCorreo(AAlbaran);
finally
SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL;
HideHourglassCursor;
Application.ProcessMessages;
end;
end;
function TAlbaranesProveedorController.EnviarEmailAlbaranes(
AAlbaranes: IBizAlbaranProveedor): Boolean;
var
ADialog : IDialogListaAlbaranesProveedorEnvioEMail;
ARespuesta : Integer;
begin
ADialog := NIL;
if not Assigned(AAlbaranes) then
raise Exception.Create ('Albaranes no asignadas (EnviarAlbaranesPorEMail)');
if AAlbaranes.DataTable.Active then
AAlbaranes.DataTable.Active := True;
ShowHourglassCursor;
try
CreateEditor('DialogListaAlbaranesProveedorEnvioEMail', IDialogListaAlbaranesProveedorEnvioEMail, ADialog);
if Assigned(ADialog) then
begin
try
ADialog.Albaranes := AAlbaranes;
ARespuesta := ADialog.ShowModal;
Result := (ARespuesta = mrOK)
finally
ADialog.Release;
end;
end;
finally
ADialog := NIL;
HideHourglassCursor;
end;
end;
function TAlbaranesProveedorController.EsEliminable(AAlbaran: IBizAlbaranProveedor): Boolean; function TAlbaranesProveedorController.EsEliminable(AAlbaran: IBizAlbaranProveedor): Boolean;
begin begin
if not Assigned(AAlbaran) then if not Assigned(AAlbaran) then
@ -1212,6 +1354,24 @@ begin
end; end;
end; end;
procedure TAlbaranesProveedorController.GenerarEmailAlbaran(
AAlbaran: IBizAlbaranProveedor);
begin
if not Assigned(AAlbaran) then
raise Exception.Create ('Albaranes no asignadas (GenerarEmailAlbaran)');
if AAlbaran.DataTable.Active then
AAlbaran.DataTable.Active := True;
ShowHourglassCursor;
try
RecuperarProveedor(AAlbaran);
EnviarAlbaranPorEMail(AAlbaran, False, AAlbaran.Proveedor.EMAIL_ADMINISTRACION);
finally
HideHourglassCursor;
end;
end;
function TAlbaranesProveedorController.GetDetallesController: IDetallesAlbaranProveedorController; function TAlbaranesProveedorController.GetDetallesController: IDetallesAlbaranProveedorController;
begin begin
Result := FDetallesController; Result := FDetallesController;

View File

@ -36,7 +36,12 @@ requires
AlbProv_FacProv_relation, AlbProv_FacProv_relation,
PedProv_AlbProv_relation, PedProv_AlbProv_relation,
rtl, rtl,
vcl; vcl,
cxLibraryD11,
dxThemeD11,
dxGDIPlusD11,
dxCoreD11,
vclx;
contains contains
uAlbaranesProveedorViewRegister in 'uAlbaranesProveedorViewRegister.pas', uAlbaranesProveedorViewRegister in 'uAlbaranesProveedorViewRegister.pas',
@ -56,6 +61,7 @@ contains
uViewAlbaranesDevProveedor in 'uViewAlbaranesDevProveedor.pas' {frViewAlbaranesDevProveedor: TCustomView}, uViewAlbaranesDevProveedor in 'uViewAlbaranesDevProveedor.pas' {frViewAlbaranesDevProveedor: TCustomView},
uEditorAlbaranesProveedorReport in 'uEditorAlbaranesProveedorReport.pas' {fEditorAlbaranesProveedorReport: TEditorAlbaranesProveedorReport}, uEditorAlbaranesProveedorReport in 'uEditorAlbaranesProveedorReport.pas' {fEditorAlbaranesProveedorReport: TEditorAlbaranesProveedorReport},
uViewDatosYSeleccionProveedorAlbaran in 'uViewDatosYSeleccionProveedorAlbaran.pas' {frViewDatosYSeleccionProveedorAlbaran: TCustomView}, uViewDatosYSeleccionProveedorAlbaran in 'uViewDatosYSeleccionProveedorAlbaran.pas' {frViewDatosYSeleccionProveedorAlbaran: TCustomView},
uDialogOpcionesImpresionAlbaranesProveedor in 'uDialogOpcionesImpresionAlbaranesProveedor.pas' {fDialogOpcionesImpresionAlbaranesProveedor: TfDialogOpcionesImpresionAlbaranesProveedor}; uDialogOpcionesImpresionAlbaranesProveedor in 'uDialogOpcionesImpresionAlbaranesProveedor.pas' {fDialogOpcionesImpresionAlbaranesProveedor: TfEditorElegirAlbaranesProveedor},
uDialogListaAlbaranesProveedorEnvioEMail in 'uDialogListaAlbaranesProveedorEnvioEMail.pas' {fDialogListaAlbaranesProveedorEnvioEMail: Tform};
end. end.

View File

@ -57,10 +57,18 @@
<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="cxLibraryD11.dcp" />
<DCCReference Include="dxCoreD11.dcp" />
<DCCReference Include="dxGDIPlusD11.dcp" />
<DCCReference Include="dxThemeD11.dcp" />
<DCCReference Include="GUIBase.dcp" /> <DCCReference Include="GUIBase.dcp" />
<DCCReference Include="PedProv_AlbProv_relation.dcp" /> <DCCReference Include="PedProv_AlbProv_relation.dcp" />
<DCCReference Include="rtl.dcp" /> <DCCReference Include="rtl.dcp" />
<DCCReference Include="uAlbaranesProveedorViewRegister.pas" /> <DCCReference Include="uAlbaranesProveedorViewRegister.pas" />
<DCCReference Include="uDialogListaAlbaranesProveedorEnvioEMail.pas">
<Form>fuDialogListaAlbaranesProveedorEnvioEMail</Form>
<DesignClass>T</DesignClass>
</DCCReference>
<DCCReference Include="uDialogOpcionesImpresionAlbaranesProveedor.pas"> <DCCReference Include="uDialogOpcionesImpresionAlbaranesProveedor.pas">
<Form>fDialogOpcionesImpresionAlbaranesProveedor</Form> <Form>fDialogOpcionesImpresionAlbaranesProveedor</Form>
<DesignClass>TfEditorElegirAlbaranesProveedor</DesignClass> <DesignClass>TfEditorElegirAlbaranesProveedor</DesignClass>
@ -130,6 +138,7 @@
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="vcl.dcp" /> <DCCReference Include="vcl.dcp" />
<DCCReference Include="vclx.dcp" />
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line

View File

@ -11,7 +11,7 @@ uses
uEditorRegistryUtils, uEditorAlbaranesProveedor, uEditorAlbaranProveedor, uEditorRegistryUtils, uEditorAlbaranesProveedor, uEditorAlbaranProveedor,
uEditorElegirArticulosAlbaranProveedor, uEditorDireccionEntregaAlbaranProveedor, uEditorElegirArticulosAlbaranProveedor, uEditorDireccionEntregaAlbaranProveedor,
uEditorElegirAlbaranesProveedor, uEditorAlbaranesDevProveedor, uEditorAlbaranDevProveedor, uEditorElegirAlbaranesProveedor, uEditorAlbaranesDevProveedor, uEditorAlbaranDevProveedor,
uEditorAlbaranesProveedorReport; uEditorAlbaranesProveedorReport, uDialogListaAlbaranesProveedorEnvioEMail;
procedure RegisterViews; procedure RegisterViews;
begin begin
@ -23,6 +23,8 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirArticulosAlbaranProveedor, 'EditorElegirArticulosAlbaranesProveedor'); EditorRegistry.RegisterClass(TfEditorElegirArticulosAlbaranProveedor, 'EditorElegirArticulosAlbaranesProveedor');
EditorRegistry.RegisterClass(TfEditorElegirAlbaranesProveedor, 'EditorElegirAlbaranesProveedor'); EditorRegistry.RegisterClass(TfEditorElegirAlbaranesProveedor, 'EditorElegirAlbaranesProveedor');
EditorRegistry.RegisterClass(TfEditorAlbaranesProveedorPreview, 'EditorAlbaranesProveedorPreview'); EditorRegistry.RegisterClass(TfEditorAlbaranesProveedorPreview, 'EditorAlbaranesProveedorPreview');
EditorRegistry.RegisterClass(TfDialogListaAlbaranesProveedorEnvioEMail, 'DialogListaAlbaranesProveedorEnvioEMail');
end; end;
procedure UnregisterViews; procedure UnregisterViews;
@ -35,6 +37,7 @@ begin
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlbaranProveedor); EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlbaranProveedor);
EditorRegistry.UnRegisterClass(TfEditorElegirAlbaranesProveedor); EditorRegistry.UnRegisterClass(TfEditorElegirAlbaranesProveedor);
EditorRegistry.UnRegisterClass(TfEditorAlbaranesProveedorPreview); EditorRegistry.UnRegisterClass(TfEditorAlbaranesProveedorPreview);
EditorRegistry.UnRegisterClass(TfDialogListaAlbaranesProveedorEnvioEMail);
end; end;
end. end.

View File

@ -0,0 +1,97 @@
inherited fDialogListaAlbaranesProveedorEnvioEMail: TfDialogListaAlbaranesProveedorEnvioEMail
Caption = 'Enviar albaranes por correo electr'#243'nico'
ClientHeight = 490
ClientWidth = 665
ExplicitWidth = 671
ExplicitHeight = 522
PixelsPerInch = 96
TextHeight = 13
inherited Bevel2: TBevel
Width = 665
ExplicitWidth = 627
end
inherited Bevel3: TBevel
Top = 446
Width = 665
ExplicitTop = 466
ExplicitWidth = 627
end
inherited pnlBotones: TPanel
Top = 448
Width = 665
ExplicitTop = 448
ExplicitWidth = 665
inherited btnAceptar: TButton
Left = 482
Width = 100
ExplicitLeft = 482
ExplicitWidth = 100
end
inherited btnCancelar: TButton
Left = 586
ExplicitLeft = 586
end
end
inherited pnlHeader: TPanel
Width = 665
ExplicitWidth = 665
inherited lblInstruccion: TLabel
Width = 615
Caption = 'Enviar albaranes por correo electr'#243'nico'
ExplicitWidth = 222
end
inherited Label2: TLabel
Width = 590
Height = 27
Caption =
'Se generar'#225'n correos electr'#243'nicos autom'#225'ticos adjuntando los alb' +
'aranes elegidas en formato PDF. S'#243'lo se tendr'#225'n en cuenta los cl' +
'ientes que tengan relleno su e-mail administrativo.'
WordWrap = True
ExplicitWidth = 569
ExplicitHeight = 26
end
end
inherited pnlCuerpo: TPanel
Width = 665
Height = 380
ExplicitWidth = 665
ExplicitHeight = 380
end
inherited ListView1: TListView
Width = 665
Height = 380
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 = 380
end
inherited ActionList1: TActionList
Top = 352
inherited actAceptar: TAction
Caption = '&Generar correos'
OnExecute = actAceptarExecute
OnUpdate = actAceptarUpdate
end
inherited actCancelar: TAction
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,166 @@
unit uDialogListaAlbaranesProveedorEnvioEMail;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls,
uDialogListaEnvioEMail, uIDialogListaAlbaranesProveedorEnvioEMail, uAlbaranesProveedorController,
uBizAlbaranesProveedor;
type
TfDialogListaAlbaranesProveedorEnvioEMail = class(TfDialogListaEnvioEMail, IDialogListaAlbaranesProveedorEnvioEMail)
procedure actCancelarExecute(Sender: TObject);
procedure actAceptarUpdate(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
private
FAlbaranes : IBizAlbaranProveedor;
FController : IAlbaranesProveedorController;
protected
function GetAlbaranes: IBizAlbaranProveedor;
procedure SetAlbaranes(const Value: IBizAlbaranProveedor);
procedure RellenarLista;
procedure BorrarLista;
public
constructor Create(AOwner: TComponent); override;
property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes;
end;
implementation
uses
schAlbaranesProveedorClient_Intf, uStringsUtils, cxControls;
{$R *.dfm}
{ TfDialogListaAlbaranesEnvioEMail }
procedure TfDialogListaAlbaranesProveedorEnvioEMail.actAceptarExecute(Sender: TObject);
var
i : Integer;
begin
ShowHourglassCursor;
Application.ProcessMessages;
try
FAlbaranes.First;
FController.RecuperarProveedor(FAlbaranes);
FAlbaranes.Proveedor.DataTable.Active := True;
try
for i := 0 to FAlbaranes.DataTable.RecordCount - 1 do
begin
if not EsCadenaVacia(FAlbaranes.Proveedor.EMAIL_ADMINISTRACION) then
begin
if FController.EnviarAlbaranPorEMail(FAlbaranes, True, FAlbaranes.Proveedor.EMAIL_ADMINISTRACION) 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;
FAlbaranes.Next;
FController.RecuperarProveedor(FAlbaranes);
FAlbaranes.Proveedor.DataTable.Active := True;
end;
btnAceptar.Enabled := False;
finally
ListView1.Items.EndUpdate;
end;
finally
HideHourglassCursor;
end;
btnCancelar.SetFocus;
end;
procedure TfDialogListaAlbaranesProveedorEnvioEMail.actAceptarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ListView1.Items.Count > 0)
end;
procedure TfDialogListaAlbaranesProveedorEnvioEMail.actCancelarExecute(Sender: TObject);
begin
inherited;
ModalResult := mrOk;
end;
procedure TfDialogListaAlbaranesProveedorEnvioEMail.BorrarLista;
begin
ListView1.Items.Clear;
end;
constructor TfDialogListaAlbaranesProveedorEnvioEMail.Create(AOwner: TComponent);
begin
inherited;
ModalResult := mrCancel;
FController := TAlbaranesProveedorController.Create;
end;
function TfDialogListaAlbaranesProveedorEnvioEMail.GetAlbaranes: IBizAlbaranProveedor;
begin
Result := FAlbaranes;
end;
procedure TfDialogListaAlbaranesProveedorEnvioEMail.RellenarLista;
var
i : Integer;
begin
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
FAlbaranes.First;
FAlbaranes.DataTable.DisableControls;
try
for i := 0 to FAlbaranes.DataTable.RecordCount - 1 do
begin
FController.RecuperarProveedor(FAlbaranes);
FAlbaranes.Proveedor.DataTable.Active := True;
with ListView1.Items.Add do
begin
Caption := FAlbaranes.REFERENCIA;
SubItems.Add(FAlbaranes.NOMBRE);
SubItems.Add(FAlbaranes.Proveedor.EMAIL_ADMINISTRACION);
if EsCadenaVacia(FAlbaranes.Proveedor.EMAIL_ADMINISTRACION) then
SubItems.Add('Sin dirección e-mail administrativa')
else
SubItems.Add('')
end;
FAlbaranes.Next;
end;
finally
FAlbaranes.DataTable.EnableControls;
ListView1.Items.EndUpdate;
end;
end;
procedure TfDialogListaAlbaranesProveedorEnvioEMail.SetAlbaranes(
const Value: IBizAlbaranProveedor);
begin
FAlbaranes := Value;
if Assigned(FAlbaranes) then
begin
FAlbaranes.DataTable.Open;
if (FAlbaranes.TIPO = CTE_TIPO_ALBARAN_DEV) then
begin
Self.Caption := 'Enviar órdenes de devolución por correo electrónico';
lblInstruccion.Caption := 'Enviar órdenes de devolución por correo electrónico';
Label2.Caption := 'Se generarán correos electrónicos automáticos adjuntando las órdenes de devolución elegidas en formato PDF. Sólo se tendrán en cuenta los clientes que tengan relleno su e-mail administrativo.';
end;
RellenarLista;
end
else
BorrarLista;
end;
end.

View File

@ -125,6 +125,9 @@ inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor
ExplicitWidth = 606 ExplicitWidth = 606
inherited tbxMain: TTBXToolbar inherited tbxMain: TTBXToolbar
ExplicitWidth = 606 ExplicitWidth = 606
object TBXItem42: TTBXItem [13]
Action = actEnviarEMail
end
end end
inherited tbxFiltro: TTBXToolbar inherited tbxFiltro: TTBXToolbar
ExplicitWidth = 427 ExplicitWidth = 427
@ -202,6 +205,12 @@ inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor
OnExecute = actGenerarDevolucionExecute OnExecute = actGenerarDevolucionExecute
OnUpdate = actGenerarDevolucionUpdate OnUpdate = actGenerarDevolucionUpdate
end end
object actEnviarEMail: TAction
Category = 'Acciones'
Caption = 'Enviar por e-mail...'
OnExecute = actEnviarEMailExecute
OnUpdate = actEnviarEMailUpdate
end
end end
inherited SmallImages: TPngImageList inherited SmallImages: TPngImageList
PngImages = < PngImages = <

View File

@ -30,6 +30,8 @@ type
TBXItem38: TTBXItem; TBXItem38: TTBXItem;
TBXItem40: TTBXItem; TBXItem40: TTBXItem;
TBXItem41: TTBXItem; TBXItem41: TTBXItem;
actEnviarEMail: TAction;
TBXItem42: TTBXItem;
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure actGenerarFacturaExecute(Sender: TObject); procedure actGenerarFacturaExecute(Sender: TObject);
procedure actGenerarFacturaUpdate(Sender: TObject); procedure actGenerarFacturaUpdate(Sender: TObject);
@ -37,6 +39,8 @@ type
procedure OnListaAnosChange(Sender: TObject; const Text: string); procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure actGenerarDevolucionUpdate(Sender: TObject); procedure actGenerarDevolucionUpdate(Sender: TObject);
procedure actGenerarDevolucionExecute(Sender: TObject); procedure actGenerarDevolucionExecute(Sender: TObject);
procedure actEnviarEMailUpdate(Sender: TObject);
procedure actEnviarEMailExecute(Sender: TObject);
protected protected
FAlbaranes: IBizAlbaranProveedor; FAlbaranes: IBizAlbaranProveedor;
@ -71,6 +75,7 @@ type
implementation implementation
uses uses
cxControls,
uDataModuleAlbaranesProveedor, uDataModuleUsuarios, uFactuGES_App, uDataModuleAlbaranesProveedor, uDataModuleUsuarios, uFactuGES_App,
uGenerarFacturasProvAlbProvUtils, uGenerarFacturasProvAlbProvUtils,
uGenerarAlbaranesProvUtils, uDialogOpcionesImpresionAlbaranesProveedor, uGenerarAlbaranesProvUtils, uDialogOpcionesImpresionAlbaranesProveedor,
@ -89,6 +94,41 @@ begin
(Sender as TAction).Enabled := not (FAlbaranes.ID_FACTURA > 0) (Sender as TAction).Enabled := not (FAlbaranes.ID_FACTURA > 0)
end; end;
procedure TfEditorAlbaranesProveedor.actEnviarEMailExecute(Sender: TObject);
var
AAlbaranes : IBizAlbaranProveedor;
begin
inherited;
if ViewGrid.NumSeleccionados = 1 then
FController.GenerarEmailAlbaran(FAlbaranes)
else begin
ShowHourglassCursor;
try
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords);
AAlbaranes := (Controller as IAlbaranesProveedorController).ExtraerSeleccionados(Albaranes) as IBizAlbaranProveedor;
if Assigned(AAlbaranes) then
if FController.EnviarEmailAlbaranes(AAlbaranes) then
RefrescarInterno;
finally
AAlbaranes := NIL;
HideHourglassCursor;
end;
end;
end;
procedure TfEditorAlbaranesProveedor.actEnviarEMailUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := ViewGrid.EsSeleccionCeldaDatos
and (ViewGrid.NumSeleccionados > 0)
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorAlbaranesProveedor.actGenerarDevolucionExecute( procedure TfEditorAlbaranesProveedor.actGenerarDevolucionExecute(
Sender: TObject); Sender: TObject);
var var

View File

@ -99,6 +99,7 @@ begin
ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2]; ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2];
ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3]; ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3];
ParamByName('FELICITACION').Value := aChange.NewValueByName[fld_ClientesFELICITACION]; ParamByName('FELICITACION').Value := aChange.NewValueByName[fld_ClientesFELICITACION];
ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION];
Execute; Execute;
end; end;
finally finally
@ -142,7 +143,7 @@ begin
ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2]; ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2];
ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3]; ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3];
ParamByName('FELICITACION').Value := aChange.NewValueByName[fld_ClientesFELICITACION]; ParamByName('FELICITACION').Value := aChange.NewValueByName[fld_ClientesFELICITACION];
ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION];
Execute; Execute;
end; end;
finally finally

View File

@ -99,6 +99,9 @@ type
function GetFELICITACIONValue: Integer; function GetFELICITACIONValue: Integer;
procedure SetFELICITACIONValue(const aValue: Integer); procedure SetFELICITACIONValue(const aValue: Integer);
function GetEMAIL_ADMINISTRACIONValue: String;
procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String);
property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue; property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue;
property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue; property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue;
property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value;
@ -113,6 +116,7 @@ type
property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
property DESCUENTO: Double read GetDESCUENTOValue write SetDESCUENTOValue; property DESCUENTO: Double read GetDESCUENTOValue write SetDESCUENTOValue;
property FELICITACION: Integer read GetFELICITACIONValue write SetFELICITACIONValue; property FELICITACION: Integer read GetFELICITACIONValue write SetFELICITACIONValue;
property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue;
end; end;
IBizProveedor = interface (IBizContacto) IBizProveedor = interface (IBizContacto)
@ -159,6 +163,9 @@ type
procedure SetVENCIMIENTO_FACTURAS_2Value(const Value: Smallint); procedure SetVENCIMIENTO_FACTURAS_2Value(const Value: Smallint);
procedure SetVENCIMIENTO_FACTURAS_3Value(const Value: Smallint); procedure SetVENCIMIENTO_FACTURAS_3Value(const Value: Smallint);
function GetEMAIL_ADMINISTRACIONValue: String;
procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String);
property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue; property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue;
property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
property DESCRIPCION_PROVEEDOR: String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue; property DESCRIPCION_PROVEEDOR: String read GetDESCRIPCION_PROVEEDORValue write SetDESCRIPCION_PROVEEDORValue;
@ -173,6 +180,7 @@ type
property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value;
property VENCIMIENTO_FACTURAS_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; property VENCIMIENTO_FACTURAS_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value;
property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value;
property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue;
end; end;
IBizEmpleado = interface (IBizContacto) IBizEmpleado = interface (IBizContacto)
@ -321,6 +329,10 @@ type
function GetFELICITACIONValue: Integer; function GetFELICITACIONValue: Integer;
procedure SetFELICITACIONValue(const aValue: Integer); procedure SetFELICITACIONValue(const aValue: Integer);
function GetEMAIL_ADMINISTRACIONValue: String;
procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String);
public public
procedure IniciarValoresContactoNuevo; override; procedure IniciarValoresContactoNuevo; override;
constructor Create(aDataTable: TDADataTable); override; constructor Create(aDataTable: TDADataTable); override;
@ -340,6 +352,7 @@ type
property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
property DESCUENTO: Double read GetDESCUENTOValue write SetDESCUENTOValue; property DESCUENTO: Double read GetDESCUENTOValue write SetDESCUENTOValue;
property FELICITACION: Integer read GetFELICITACIONValue write SetFELICITACIONValue; property FELICITACION: Integer read GetFELICITACIONValue write SetFELICITACIONValue;
property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue;
end; end;
@ -386,6 +399,9 @@ type
procedure SetVENCIMIENTO_FACTURAS_2Value(const Value: Smallint); procedure SetVENCIMIENTO_FACTURAS_2Value(const Value: Smallint);
procedure SetVENCIMIENTO_FACTURAS_3Value(const Value: Smallint); procedure SetVENCIMIENTO_FACTURAS_3Value(const Value: Smallint);
function GetEMAIL_ADMINISTRACIONValue: String;
procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String);
public public
procedure IniciarValoresContactoNuevo; override; procedure IniciarValoresContactoNuevo; override;
property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
@ -402,6 +418,7 @@ type
property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value; property VENCIMIENTO_FACTURAS_1: Smallint read GetVENCIMIENTO_FACTURAS_1Value write SetVENCIMIENTO_FACTURAS_1Value;
property VENCIMIENTO_FACTURAS_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value; property VENCIMIENTO_FACTURAS_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value;
property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value;
property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue;
end; end;
@ -594,6 +611,11 @@ begin
result := DataTable.Fields[idx_ClientesDESCUENTO].AsFloat; result := DataTable.Fields[idx_ClientesDESCUENTO].AsFloat;
end; end;
function TBizCliente.GetEMAIL_ADMINISTRACIONValue: String;
begin
result := DataTable.Fields[idx_ClientesEMAIL_ADMINISTRACION].AsString;
end;
function TBizCliente.GetFELICITACIONValue: Integer; function TBizCliente.GetFELICITACIONValue: Integer;
begin begin
result := DataTable.Fields[idx_ClientesFELICITACION].AsInteger; result := DataTable.Fields[idx_ClientesFELICITACION].AsInteger;
@ -640,6 +662,11 @@ begin
DataTable.Fields[idx_ClientesDESCUENTO].AsFloat := aValue; DataTable.Fields[idx_ClientesDESCUENTO].AsFloat := aValue;
end; end;
procedure TBizCliente.SetEMAIL_ADMINISTRACIONValue(const aValue: String);
begin
DataTable.Fields[idx_ClientesEMAIL_ADMINISTRACION].AsString := aValue;
end;
procedure TBizCliente.SetFELICITACIONValue(const aValue: Integer); procedure TBizCliente.SetFELICITACIONValue(const aValue: Integer);
begin begin
DataTable.Fields[idx_ClientesFELICITACION].AsInteger := aValue; DataTable.Fields[idx_ClientesFELICITACION].AsInteger := aValue;
@ -824,6 +851,11 @@ begin
result := DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat; result := DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat;
end; end;
function TBizProveedor.GetEMAIL_ADMINISTRACIONValue: String;
begin
result := DataTable.Fields[idx_ProveedoresEMAIL_ADMINISTRACION].AsString;
end;
procedure TBizProveedor.SetCERTIFICACIONValue(const aValue: String); procedure TBizProveedor.SetCERTIFICACIONValue(const aValue: String);
begin begin
DataTable.Fields[idx_ProveedoresCERTIFICACION].AsString := aValue; DataTable.Fields[idx_ProveedoresCERTIFICACION].AsString := aValue;
@ -844,6 +876,11 @@ begin
DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat := aValue; DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat := aValue;
end; end;
procedure TBizProveedor.SetEMAIL_ADMINISTRACIONValue(const aValue: String);
begin
DataTable.Fields[idx_ProveedoresEMAIL_ADMINISTRACION].AsString := aValue;
end;
procedure TBizProveedor.SetGRUPO_PROVEEDORValue(const aValue: String); procedure TBizProveedor.SetGRUPO_PROVEEDORValue(const aValue: String);
begin begin
DataTable.Fields[idx_ProveedoresGRUPO_PROVEEDOR].AsString := aValue; DataTable.Fields[idx_ProveedoresGRUPO_PROVEEDOR].AsString := aValue;

View File

@ -95,6 +95,7 @@ begin
ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1]; ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1];
ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2];
ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3];
ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ProveedoresEMAIL_ADMINISTRACION];
Execute; Execute;
end; end;
@ -136,6 +137,7 @@ begin
ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1]; ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1];
ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2];
ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3];
ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ProveedoresEMAIL_ADMINISTRACION];
Execute; Execute;
end; end;

View File

@ -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\uIDialogListaFacturasEnvioEMail.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" />

View File

@ -0,0 +1,21 @@
unit uIDialogListaFacturasEnvioEMail;
interface
uses
uBizFacturasCliente, uFacturasClienteController;
type
IDialogListaFacturasEnvioEMail = interface
['{733B15A4-5831-48E5-A651-4E3FFAEA0D14}']
function GetFacturas: IBizFacturaCliente;
procedure SetFacturas(const Value: IBizFacturaCliente);
property Facturas: IBizFacturaCliente read GetFacturas write SetFacturas;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -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);
procedure GenerarEmailFactura(AFactura : IBizFacturaCliente);
function EnviarEmailFacturas(AFacturas : IBizFacturaCliente): Boolean;
function EnviarFacturaPorEMail(AFactura: IBizFacturaCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): 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);
@ -78,6 +84,8 @@ type
function ValidarFactura(AFactura: IBizFacturaCliente): Boolean; function ValidarFactura(AFactura: IBizFacturaCliente): Boolean;
procedure GenerarRecibos(AFactura: IBizFacturaCliente); procedure GenerarRecibos(AFactura: IBizFacturaCliente);
procedure _AnadirMarcaEnvioCorreo(AFactura: IBizFacturaCliente);
protected protected
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
@ -121,7 +129,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);
procedure GenerarEmailFactura(AFactura : IBizFacturaCliente);
function EnviarEmailFacturas(AFacturas : IBizFacturaCliente): Boolean;
function EnviarFacturaPorEMail(AFactura: IBizFacturaCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): 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);
@ -135,11 +149,11 @@ uses
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, uDataModuleRegistroCorreos,
DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente, DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente,
uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils, uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils,
uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uStringsUtils, uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uStringsUtils,
uROXMLIntf; uROXMLIntf, uIDialogListaFacturasEnvioEMail;
{procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente; {procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente;
@ -705,6 +719,37 @@ begin
end; end;
end; end;
procedure TFacturasClienteController._AnadirMarcaEnvioCorreo(AFactura: IBizFacturaCliente);
var
ASoloLectura : Boolean;
begin
if not Assigned(AFactura) then
raise Exception.Create ('Factura no asignada (_AnadirMarcaEnvioCorreo)');
if AFactura.DataTable.Active then
AFactura.DataTable.Active := True;
if AnadirMarcaEnvioCorreo(nme_FacturasCliente, AFactura.ID) then
begin
DesconectarTabla(AFactura.DataTable);
try
ASoloLectura := AFactura.DataTable.ReadOnly;
if ASoloLectura then
SetDataTableReadOnly(AFactura.DataTable, False);
try
AFactura.Edit;
AFactura.NUM_CORREOS := AFactura.NUM_CORREOS + 1;
AFactura.Post;
finally
if ASoloLectura then
SetDataTableReadOnly(AFactura.DataTable, True);
end;
finally
ConectarTabla(AFactura.DataTable);
end;
end;
end;
function TFacturasClienteController._Vacio: IBizFacturaCliente; function TFacturasClienteController._Vacio: IBizFacturaCliente;
begin begin
Result := Buscar(ID_NULO); Result := Buscar(ID_NULO);
@ -808,47 +853,112 @@ begin
end; end;
end; end;
procedure TFacturasClienteController.EnviarFacturaPorEMail( function TFacturasClienteController.EnviarEmailFacturas(AFacturas: IBizFacturaCliente): Boolean;
AFactura: IBizFacturaCliente); var
ADialog : IDialogListaFacturasEnvioEMail;
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('DialogListaFacturasEnvioEMail', IDialogListaFacturasEnvioEMail, 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;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
var var
AReportController : IFacturasClienteReportController; AReportController : IFacturasClienteReportController;
AFicheroTMP : TFileName; AFicheroTMP : TFileName;
AEMail : String; AEMail : String;
AAsunto : String;
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 ('Factura no asignada (EnviarFacturaPorEMail)');
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 EsCadenaVacia(AFactura.Cliente.EMAIL_ADMINISTRACION) then
AListaEmail.Add(AFactura.Cliente.EMAIL_ADMINISTRACION);
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;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Factura ' + AFactura.REFERENCIA;
ShowHourglassCursor; ShowHourglassCursor;
Application.ProcessMessages;
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(AAsunto, ATextoEMail, AFicheroTMP, '', '', AFactura.Cliente.NOMBRE, AEMail, AEnviarDirectamente);
if Result then
_AnadirMarcaEnvioCorreo(AFactura);
finally finally
SysUtils.DeleteFile(AFicheroTMP); SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL; AReportController := NIL;
HideHourglassCursor; HideHourglassCursor;
Application.ProcessMessages;
end;
end;
procedure TFacturasClienteController.GenerarEmailFactura(
AFactura: IBizFacturaCliente);
begin
if not Assigned(AFactura) then
raise Exception.Create ('Facturas no asignadas (GenerarEmailFactura)');
if AFactura.DataTable.Active then
AFactura.DataTable.Active := True;
ShowHourglassCursor;
try
RecuperarCliente(AFactura);
EnviarFacturaPorEMail(AFactura, False, AFactura.Cliente.EMAIL_ADMINISTRACION);
finally
HideHourglassCursor;
end; end;
end; end;

View File

@ -35,7 +35,12 @@ requires
AlbCli_FacCli_relation, AlbCli_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',
@ -49,6 +54,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},
uDialogListaFacturasEnvioEMail in 'uDialogListaFacturasEnvioEMail.pas' {fDialogListaFacturasEnvioEMail: TForm};
end. end.

View File

@ -49,17 +49,24 @@
<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="..\rtl.dcp" /> <DCCReference Include="FacturasCliente_controller.dcp" />
<DCCReference Include="..\vcl.dcp" /> <DCCReference Include="FacturasCliente_model.dcp" />
<DCCReference Include="GestorInformes_controller.dcp" />
<DCCReference Include="GUIBase.dcp" />
<DCCReference Include="rtl.dcp" />
<DCCReference Include="uDialogListaFacturasEnvioEMail.pas">
<Form>DialogListaFacturasEnvioEMail</Form>
<DesignClass>TForm</DesignClass>
</DCCReference>
<DCCReference Include="uDialogOpcionesImpresionFacturasCliente.pas"> <DCCReference Include="uDialogOpcionesImpresionFacturasCliente.pas">
<Form>fDialogOpcionesImpresionFacturasCliente</Form> <Form>fDialogOpcionesImpresionFacturasCliente</Form>
<DesignClass>TfEditorElegirFacturasCliente</DesignClass> <DesignClass>TfEditorElegirFacturasCliente</DesignClass>
@ -104,6 +111,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

View File

@ -0,0 +1,97 @@
inherited fDialogListaFacturasEnvioEMail: TfDialogListaFacturasEnvioEMail
Caption = 'Enviar facturas por correo electr'#243'nico'
ClientHeight = 490
ClientWidth = 665
ExplicitWidth = 671
ExplicitHeight = 522
PixelsPerInch = 96
TextHeight = 13
inherited Bevel2: TBevel
Width = 665
ExplicitWidth = 627
end
inherited Bevel3: TBevel
Top = 446
Width = 665
ExplicitTop = 466
ExplicitWidth = 627
end
inherited pnlBotones: TPanel
Top = 448
Width = 665
ExplicitTop = 468
ExplicitWidth = 627
inherited btnAceptar: TButton
Left = 482
Width = 100
ExplicitLeft = 482
ExplicitWidth = 100
end
inherited btnCancelar: TButton
Left = 586
ExplicitLeft = 586
end
end
inherited pnlHeader: TPanel
Width = 665
ExplicitWidth = 627
inherited lblInstruccion: TLabel
Width = 615
Caption = 'Enviar facturas por correo electr'#243'nico'
ExplicitWidth = 213
end
inherited Label2: TLabel
Width = 590
Height = 27
Caption =
'Se generar'#225'n correos electr'#243'nicos autom'#225'ticos adjuntando las fac' +
'turas elegidas 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 = 547
ExplicitHeight = 26
end
end
inherited pnlCuerpo: TPanel
Width = 665
Height = 380
ExplicitWidth = 627
ExplicitHeight = 400
end
inherited ListView1: TListView
Width = 665
Height = 380
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 = 380
end
inherited ActionList1: TActionList
Top = 352
inherited actAceptar: TAction
Caption = '&Generar correos'
OnExecute = actAceptarExecute
OnUpdate = actAceptarUpdate
end
inherited actCancelar: TAction
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,158 @@
unit uDialogListaFacturasEnvioEMail;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls,
uDialogListaEnvioEMail, uIDialogListaFacturasEnvioEMail, uFacturasClienteController,
uBizFacturasCliente;
type
TfDialogListaFacturasEnvioEMail = class(TfDialogListaEnvioEMail, IDialogListaFacturasEnvioEMail)
procedure actCancelarExecute(Sender: TObject);
procedure actAceptarUpdate(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
private
FFacturas : IBizFacturaCliente;
FController : IFacturasClienteController;
protected
function GetFacturas: IBizFacturaCliente;
procedure SetFacturas(const Value: IBizFacturaCliente);
procedure RellenarLista;
procedure BorrarLista;
public
constructor Create(AOwner: TComponent); override;
property Facturas: IBizFacturaCliente read GetFacturas write SetFacturas;
end;
implementation
uses
schFacturasClienteClient_Intf, uStringsUtils, cxControls;
{$R *.dfm}
{ TfDialogListaFacturasEnvioEMail }
procedure TfDialogListaFacturasEnvioEMail.actAceptarExecute(Sender: TObject);
var
i : Integer;
begin
ShowHourglassCursor;
Application.ProcessMessages;
try
FFacturas.First;
FController.RecuperarCliente(FFacturas);
FFacturas.Cliente.DataTable.Active := True;
try
for i := 0 to FFacturas.DataTable.RecordCount - 1 do
begin
if not EsCadenaVacia(FFacturas.Cliente.EMAIL_ADMINISTRACION) then
begin
if FController.EnviarFacturaPorEMail(FFacturas, True, FFacturas.Cliente.EMAIL_ADMINISTRACION) 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;
FFacturas.Next;
FController.RecuperarCliente(FFacturas);
FFacturas.Cliente.DataTable.Active := True;
end;
btnAceptar.Enabled := False;
finally
ListView1.Items.EndUpdate;
end;
finally
HideHourglassCursor;
end;
btnCancelar.SetFocus;
end;
procedure TfDialogListaFacturasEnvioEMail.actAceptarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ListView1.Items.Count > 0)
end;
procedure TfDialogListaFacturasEnvioEMail.actCancelarExecute(Sender: TObject);
begin
inherited;
ModalResult := mrOk;
end;
procedure TfDialogListaFacturasEnvioEMail.BorrarLista;
begin
ListView1.Items.Clear;
end;
constructor TfDialogListaFacturasEnvioEMail.Create(AOwner: TComponent);
begin
inherited;
ModalResult := mrCancel;
FController := TFacturasClienteController.Create;
end;
function TfDialogListaFacturasEnvioEMail.GetFacturas: IBizFacturaCliente;
begin
Result := FFacturas;
end;
procedure TfDialogListaFacturasEnvioEMail.RellenarLista;
var
i : Integer;
begin
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
FFacturas.First;
FFacturas.DataTable.DisableControls;
try
for i := 0 to FFacturas.DataTable.RecordCount - 1 do
begin
FController.RecuperarCliente(FFacturas);
FFacturas.Cliente.DataTable.Active := True;
with ListView1.Items.Add do
begin
Caption := FFacturas.REFERENCIA;
SubItems.Add(FFacturas.NOMBRE);
SubItems.Add(FFacturas.Cliente.EMAIL_ADMINISTRACION);
if EsCadenaVacia(FFacturas.Cliente.EMAIL_ADMINISTRACION) then
SubItems.Add('Sin dirección e-mail administrativa')
else
SubItems.Add('')
end;
FFacturas.Next;
end;
finally
FFacturas.DataTable.EnableControls;
ListView1.Items.EndUpdate;
end;
end;
procedure TfDialogListaFacturasEnvioEMail.SetFacturas(
const Value: IBizFacturaCliente);
begin
FFacturas := Value;
if Assigned(FFacturas) then
begin
FFacturas.DataTable.Open;
RellenarLista;
end
else
BorrarLista;
end;
end.

View File

@ -122,8 +122,10 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
809 809
290) 290)
inherited Label1: TLabel inherited Label1: TLabel
Left = 412 Left = 383
ExplicitLeft = 412 Width = 311
ExplicitLeft = 383
ExplicitWidth = 311
end end
inherited eReferencia: TcxDBTextEdit inherited eReferencia: TcxDBTextEdit
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
@ -160,8 +162,8 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
Width = 111 Width = 111
end end
inherited bFormasPago: TButton inherited bFormasPago: TButton
Left = 230 Left = 201
ExplicitLeft = 230 ExplicitLeft = 201
end end
inherited cbCuentaBancaria: TcxDBComboBox inherited cbCuentaBancaria: TcxDBComboBox
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
@ -172,26 +174,27 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
Width = 249 Width = 249
end end
inherited cbClienteFinal: TcxDBTextEdit inherited cbClienteFinal: TcxDBTextEdit
Left = 412 Left = 383
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 412 ExplicitLeft = 383
ExplicitWidth = 339
Width = 339
end end
inherited bElegirClienteFinal: TButton inherited bElegirClienteFinal: TButton
Left = 736 Left = 736
ExplicitLeft = 736 ExplicitLeft = 736
end end
inherited frViewDatosYSeleccionClienteFacturaCliente1: TfrViewDatosYSeleccionClienteFacturaCliente inherited frViewDatosYSeleccionClienteFacturaCliente1: TfrViewDatosYSeleccionClienteFacturaCliente
Left = 401 Left = 372
Width = 505 Width = 505
ExplicitLeft = 401 ExplicitLeft = 372
ExplicitWidth = 505 ExplicitWidth = 505
inherited dxLayoutControl1: TdxLayoutControl inherited dxLayoutControl1: TdxLayoutControl
Width = 505 Width = 505
ExplicitWidth = 505 ExplicitWidth = 505
ExplicitHeight = 170
inherited edtlNombre: TcxDBTextEdit inherited edtlNombre: TcxDBTextEdit
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''
@ -201,26 +204,28 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
Width = 224 Width = 224
end end
inherited edtNIFCIF: TcxDBTextEdit inherited edtNIFCIF: TcxDBTextEdit
Left = 256 Left = 285
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 256 ExplicitLeft = 285
end end
inherited Button3: TBitBtn inherited Button3: TBitBtn
Left = 167 Left = 196
ExplicitLeft = 167 ExplicitLeft = 196
end end
inherited Button4: TButton inherited Button4: TButton
Left = 336 Left = 365
ExplicitLeft = 336 ExplicitLeft = 365
end end
inherited edtDireccion: TcxMemo inherited edtDireccion: TcxMemo
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 121
Width = 121
end end
end end
end end
@ -229,6 +234,8 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 275
Width = 275
end end
end end
end end
@ -236,6 +243,10 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
object pagContenido: TTabSheet object pagContenido: TTabSheet
Caption = 'Contenido' Caption = 'Contenido'
ImageIndex = 1 ImageIndex = 1
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
inline frViewDetallesFacturaCliente1: TfrViewDetallesFacturaCliente inline frViewDetallesFacturaCliente1: TfrViewDetallesFacturaCliente
Left = 0 Left = 0
Top = 0 Top = 0
@ -256,9 +267,9 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
ExplicitHeight = 290 ExplicitHeight = 290
inherited ToolBar1: TToolBar inherited ToolBar1: TToolBar
Width = 809 Width = 809
Height = 73 Height = 46
ExplicitWidth = 809 ExplicitWidth = 809
ExplicitHeight = 73 ExplicitHeight = 46
inherited ToolButton3: TToolButton inherited ToolButton3: TToolButton
Wrap = False Wrap = False
end end
@ -268,58 +279,87 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
ExplicitLeft = 278 ExplicitLeft = 278
ExplicitTop = 0 ExplicitTop = 0
end end
inherited FontName: TJvFontComboBox inherited ToolButton14: TToolButton
Left = 334 Left = 334
Top = 0 Top = 0
ExplicitLeft = 334 ExplicitLeft = 334
ExplicitTop = 0 ExplicitTop = 0
end end
inherited ToolButton14: TToolButton inherited FontName: TJvFontComboBox
Left = 479 Top = 22
Top = 0 ExplicitTop = 22
Wrap = True
ExplicitLeft = 479
ExplicitTop = 0
end end
inherited FontSize: TEdit inherited FontSize: TEdit
Left = 0 Top = 22
Width = 296 Width = 296
ExplicitLeft = 0 ExplicitTop = 22
ExplicitWidth = 296 ExplicitWidth = 296
end end
inherited UpDown1: TUpDown inherited UpDown1: TUpDown
Left = 312 Left = 441
ExplicitLeft = 312 Top = 22
ExplicitLeft = 441
ExplicitTop = 22
end end
inherited ToolButton13: TToolButton inherited ToolButton13: TToolButton
Left = 329 Left = 458
ExplicitLeft = 329 Top = 22
ExplicitLeft = 458
ExplicitTop = 22
end end
inherited ToolButton11: TToolButton inherited ToolButton6: TToolButton
Left = 337 Left = 466
ExplicitLeft = 337 Top = 22
ExplicitLeft = 466
ExplicitTop = 22
end end
inherited ToolButton7: TToolButton inherited ToolButton7: TToolButton
Wrap = False Left = 532
Top = 22
ExplicitLeft = 532
ExplicitTop = 22
end end
inherited ToolButton8: TToolButton inherited ToolButton8: TToolButton
Left = 403 Left = 599
Top = 49 Top = 22
ExplicitLeft = 403 ExplicitLeft = 599
ExplicitTop = 49 ExplicitTop = 22
end
inherited ToolButton12: TToolButton
Left = 682
Top = 22
ExplicitLeft = 682
ExplicitTop = 22
end
inherited ToolButton9: TToolButton
Left = 690
Top = 22
ExplicitLeft = 690
ExplicitTop = 22
end
inherited ToolButton10: TToolButton
Left = 835
Top = 22
ExplicitLeft = 835
ExplicitTop = 22
end
inherited ToolButton11: TToolButton
Left = 960
Top = 22
ExplicitLeft = 960
ExplicitTop = 22
end end
end end
inherited cxGrid: TcxGrid inherited cxGrid: TcxGrid
Top = 99 Top = 72
Width = 809 Width = 809
Height = 191 Height = 218
ExplicitWidth = 809 ExplicitWidth = 809
ExplicitHeight = 191 ExplicitHeight = 191
end end
inherited TBXDock1: TTBXDock inherited TBXDock1: TTBXDock
Top = 73 Top = 46
Width = 809 Width = 809
ExplicitTop = 73
ExplicitWidth = 809 ExplicitWidth = 809
inherited TBXToolbar1: TTBXToolbar inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 566 ExplicitWidth = 566

View File

@ -109,13 +109,13 @@ begin
'¿Desea guardarlos ahora?') = IDYES) then '¿Desea guardarlos ahora?') = IDYES) then
begin begin
GuardarInterno; GuardarInterno;
FController.EnviarFacturaPorEMail(Factura); FController.GenerarEmailFactura(Factura);
end end
else else
ShowInfoMessage('Recuerde guardar los cambios si quiere enviar por email.'); ShowInfoMessage('Recuerde guardar los cambios si quiere enviar por email.');
end end
else else
FController.EnviarFacturaPorEMail(Factura); FController.GenerarEmailFactura(Factura);
end; end;
end; end;

View File

@ -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
if FController.EnviarEmailFacturas(AFacturas) then
RefrescarInterno;
finally
AFacturas := NIL;
HideHourglassCursor;
end;
end;
end; end;
procedure TfEditorFacturasCliente.actEnviarEMailUpdate(Sender: TObject); procedure TfEditorFacturasCliente.actEnviarEMailUpdate(Sender: TObject);

View File

@ -10,7 +10,8 @@ implementation
uses uses
uEditorRegistryUtils, uEditorFacturasCliente, uEditorFacturaCliente, uEditorRegistryUtils, uEditorFacturasCliente, uEditorFacturaCliente,
uEditorFacturasClienteReport, uEditorElegirArticulosFacturaCliente, uEditorFacturasClienteReport, uEditorElegirArticulosFacturaCliente,
uEditorElegirFacturasCliente, uDialogOpcionesImpresionFacturasCliente; uEditorElegirFacturasCliente, uDialogOpcionesImpresionFacturasCliente,
uDialogListaFacturasEnvioEMail;
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(TfDialogListaFacturasEnvioEMail, 'DialogListaFacturasEnvioEMail');
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(TfDialogListaFacturasEnvioEMail);
end; end;
end. end.

View File

@ -61,6 +61,7 @@
<DCCReference Include="View\FacturasProveedor_model.dcp" /> <DCCReference Include="View\FacturasProveedor_model.dcp" />
<DCCReference Include="View\FormasPago_controller.dcp" /> <DCCReference Include="View\FormasPago_controller.dcp" />
<DCCReference Include="View\RecibosProveedor_controller.dcp" /> <DCCReference Include="View\RecibosProveedor_controller.dcp" />
<DCCReference Include="View\uIDialogListaFacturasProveedorEnvioEMail.pas" />
<DCCReference Include="View\uIEditorElegirArticulosFacturasProveedor.pas" /> <DCCReference Include="View\uIEditorElegirArticulosFacturasProveedor.pas" />
<DCCReference Include="View\uIEditorElegirDomiciliacion.pas" /> <DCCReference Include="View\uIEditorElegirDomiciliacion.pas" />
<DCCReference Include="View\uIEditorFacturaProveedor.pas" /> <DCCReference Include="View\uIEditorFacturaProveedor.pas" />

View File

@ -0,0 +1,21 @@
unit uIDialogListaFacturasProveedorEnvioEMail;
interface
uses
uBizFacturasProveedor, uFacturasProveedorController;
type
IDialogListaFacturasProveedorEnvioEMail = interface
['{83501DC9-BFAB-4613-9385-F4517CAC3FF1}']
function GetFacturas: IBizFacturaProveedor;
procedure SetFacturas(const Value: IBizFacturaProveedor);
property Facturas: IBizFacturaProveedor read GetFacturas write SetFacturas;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -54,6 +54,13 @@ type
function DarListaAnosFacturas: TStringList; function DarListaAnosFacturas: TStringList;
procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String); procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String);
procedure GenerarEmailFactura(AFactura : IBizFacturaProveedor);
function EnviarEmailFacturas(AFacturas : IBizFacturaProveedor): Boolean;
function EnviarFacturaPorEMail(AFactura: IBizFacturaProveedor;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function AsignarCuentaBancaria(AFacturas: IBizFacturaProveedor): TStringList; function AsignarCuentaBancaria(AFacturas: IBizFacturaProveedor): TStringList;
end; end;
@ -77,6 +84,8 @@ type
function ValidarFactura(AFactura: IBizFacturaProveedor): Boolean; function ValidarFactura(AFactura: IBizFacturaProveedor): Boolean;
procedure GenerarRecibos(AFactura: IBizFacturaProveedor); procedure GenerarRecibos(AFactura: IBizFacturaProveedor);
procedure _AnadirMarcaEnvioCorreo(AFactura: IBizFacturaProveedor);
protected protected
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
@ -122,6 +131,13 @@ type
function DarListaAnosFacturas: TStringList; function DarListaAnosFacturas: TStringList;
procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String); procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String);
procedure GenerarEmailFactura(AFactura : IBizFacturaProveedor);
function EnviarEmailFacturas(AFacturas : IBizFacturaProveedor): Boolean;
function EnviarFacturaPorEMail(AFactura: IBizFacturaProveedor;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function AsignarCuentaBancaria(AFacturas: IBizFacturaProveedor): TStringList; function AsignarCuentaBancaria(AFacturas: IBizFacturaProveedor): TStringList;
end; end;
@ -136,11 +152,10 @@ uses
uBizPedidosProveedor, uPedidosProveedorController, uBizDetallesPedidoProveedor, uBizPedidosProveedor, uPedidosProveedorController, uBizDetallesPedidoProveedor,
uRecibosProveedorController, uBizRecibosProveedor, uNumUtils, uRecibosProveedorController, uBizRecibosProveedor, uNumUtils,
uFacturasProveedorReportController, DateUtils, Forms, Dialogs, uFacturasProveedorReportController, DateUtils, Forms, Dialogs, uIDialogListaFacturasProveedorEnvioEMail,
uFormasPagoController, uBizFormasPago, uStringsUtils, uIntegerListUtils, uFormasPagoController, uBizFormasPago, uStringsUtils, uIntegerListUtils,
uIEditorElegirDomiciliacion, uIEditorElegirDomiciliacion, uDataModuleRegistroCorreos,
uSistemaFunc, uDialogElegirEMail, uEMailUtils, cxEdit;
cxEdit;
procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoProveedor; procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoProveedor;
ADestino : IBizDetallesFacturaProveedor); ADestino : IBizDetallesFacturaProveedor);
@ -600,6 +615,37 @@ begin
end; end;
end; end;
procedure TFacturasProveedorController._AnadirMarcaEnvioCorreo(AFactura: IBizFacturaProveedor);
var
ASoloLectura : Boolean;
begin
if not Assigned(AFactura) then
raise Exception.Create ('Factura no asignada (_AnadirMarcaEnvioCorreo)');
if AFactura.DataTable.Active then
AFactura.DataTable.Active := True;
if AnadirMarcaEnvioCorreo(nme_FacturasProveedor, AFactura.ID) then
begin
DesconectarTabla(AFactura.DataTable);
try
ASoloLectura := AFactura.DataTable.ReadOnly;
if ASoloLectura then
SetDataTableReadOnly(AFactura.DataTable, False);
try
AFactura.Edit;
AFactura.NUM_CORREOS := AFactura.NUM_CORREOS + 1;
AFactura.Post;
finally
if ASoloLectura then
SetDataTableReadOnly(AFactura.DataTable, True);
end;
finally
ConectarTabla(AFactura.DataTable);
end;
end;
end;
function TFacturasProveedorController._Vacio: IBizFacturaProveedor; function TFacturasProveedorController._Vacio: IBizFacturaProveedor;
begin begin
Result := Buscar(ID_NULO); Result := Buscar(ID_NULO);
@ -707,6 +753,98 @@ begin
end; end;
end; end;
function TFacturasProveedorController.EnviarEmailFacturas(
AFacturas: IBizFacturaProveedor): Boolean;
var
ADialog : IDialogListaFacturasProveedorEnvioEMail;
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('DialogListaFacturasProveedorEnvioEMail', IDialogListaFacturasProveedorEnvioEMail, 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 TFacturasProveedorController.EnviarFacturaPorEMail(
AFactura: IBizFacturaProveedor; const AEnviarDirectamente: Boolean;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
var
AReportController : IFacturasProveedorReportController;
AFicheroTMP : TFileName;
AEMail : String;
AAsunto : String;
AListaEmail : TStringList;
begin
if not Assigned(AFactura) then
raise Exception.Create ('Factura no asignada (EnviarFacturaPorEMail)');
if AFactura.DataTable.Active then
AFactura.DataTable.Active := True;
RecuperarProveedor(AFactura);
AFactura.Proveedor.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AFactura.REFERENCIA));
if not EsCadenaVacia(ADireccionEMail) then
AEMail := ADireccionEMail
else begin
AListaEmail := TStringList.Create;
try
if not EsCadenaVacia(AFactura.Proveedor.EMAIL_ADMINISTRACION) then
AListaEmail.Add(AFactura.Proveedor.EMAIL_ADMINISTRACION);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
end;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Factura ' + AFactura.REFERENCIA;
ShowHourglassCursor;
Application.ProcessMessages;
AReportController := TFacturasProveedorReportController.Create;
try
AReportController.ExportToPDF(AFactura.ID, AFicheroTMP);
Result := EnviarEMailMAPI(AAsunto, ATextoEMail, AFicheroTMP, '', '', AFactura.Proveedor.NOMBRE, AEMail, AEnviarDirectamente);
if Result then
_AnadirMarcaEnvioCorreo(AFactura);
finally
SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL;
HideHourglassCursor;
Application.ProcessMessages;
end;
end;
function TFacturasProveedorController.EsEliminable(AFactura: IBizFacturaProveedor): Boolean; function TFacturasProveedorController.EsEliminable(AFactura: IBizFacturaProveedor): Boolean;
begin begin
Result := EsModificable(AFactura); Result := EsModificable(AFactura);
@ -989,6 +1127,24 @@ begin
end; end;
end; end;
procedure TFacturasProveedorController.GenerarEmailFactura(
AFactura: IBizFacturaProveedor);
begin
if not Assigned(AFactura) then
raise Exception.Create ('Facturas no asignadas (GenerarEmailFactura)');
if AFactura.DataTable.Active then
AFactura.DataTable.Active := True;
ShowHourglassCursor;
try
RecuperarProveedor(AFactura);
EnviarFacturaPorEMail(AFactura, False, AFactura.Proveedor.EMAIL_ADMINISTRACION);
finally
HideHourglassCursor;
end;
end;
procedure TFacturasProveedorController.GenerarRecibos(AFactura: IBizFacturaProveedor); procedure TFacturasProveedorController.GenerarRecibos(AFactura: IBizFacturaProveedor);
var var
AFormasPagoController : IFormasPagoController; AFormasPagoController : IFormasPagoController;

View File

@ -3,16 +3,16 @@ unit schFacturasProveedorClient_Intf;
interface interface
uses uses
Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf;
const const
{ Data table rules ids { Data table rules ids
Feel free to change them to something more human readable Feel free to change them to something more human readable
but make sure they are unique in the context of your application } but make sure they are unique in the context of your application }
RID_ListaAnosFacturas = '{B75825C2-3B8D-4DF1-AF22-024910F5FBD9}'; RID_ListaAnosFacturas = '{6ECEF4E8-C69F-4D94-961D-50303D137874}';
RID_FacturasProveedor = '{44FD4DE6-500F-4F58-A58C-97CF98028CD2}'; RID_FacturasProveedor = '{09D8C65C-037A-4CEB-A2FE-D4430741B47E}';
RID_FacturasProveedor_Detalles = '{1CB49BE9-8421-4FD5-80E8-12FFC6360422}'; RID_FacturasProveedor_Detalles = '{10EB7AF4-3969-4A7B-9580-2B16A2C29DC5}';
RID_FacturasProveedor_Pedidos = '{961FA245-B4B9-478F-8B57-34025D5C9EEB}'; RID_FacturasProveedor_Pedidos = '{6109124D-383B-4C1F-A5AA-6AB76FEDDE6D}';
{ Data table names } { Data table names }
nme_ListaAnosFacturas = 'ListaAnosFacturas'; nme_ListaAnosFacturas = 'ListaAnosFacturas';
@ -60,6 +60,8 @@ const
fld_FacturasProveedorIMPORTE_NETO = 'IMPORTE_NETO'; fld_FacturasProveedorIMPORTE_NETO = 'IMPORTE_NETO';
fld_FacturasProveedorIMPORTE_PORTE = 'IMPORTE_PORTE'; fld_FacturasProveedorIMPORTE_PORTE = 'IMPORTE_PORTE';
fld_FacturasProveedorDATOS_BANCARIOS = 'DATOS_BANCARIOS'; fld_FacturasProveedorDATOS_BANCARIOS = 'DATOS_BANCARIOS';
fld_FacturasProveedorNUM_COPIAS = 'NUM_COPIAS';
fld_FacturasProveedorNUM_CORREOS = 'NUM_CORREOS';
{ FacturasProveedor field indexes } { FacturasProveedor field indexes }
idx_FacturasProveedorID = 0; idx_FacturasProveedorID = 0;
@ -95,6 +97,8 @@ const
idx_FacturasProveedorIMPORTE_NETO = 30; idx_FacturasProveedorIMPORTE_NETO = 30;
idx_FacturasProveedorIMPORTE_PORTE = 31; idx_FacturasProveedorIMPORTE_PORTE = 31;
idx_FacturasProveedorDATOS_BANCARIOS = 32; idx_FacturasProveedorDATOS_BANCARIOS = 32;
idx_FacturasProveedorNUM_COPIAS = 33;
idx_FacturasProveedorNUM_CORREOS = 34;
{ FacturasProveedor_Detalles fields } { FacturasProveedor_Detalles fields }
fld_FacturasProveedor_DetallesID = 'ID'; fld_FacturasProveedor_DetallesID = 'ID';
@ -153,7 +157,7 @@ const
type type
{ IListaAnosFacturas } { IListaAnosFacturas }
IListaAnosFacturas = interface(IDAStronglyTypedDataTable) IListaAnosFacturas = interface(IDAStronglyTypedDataTable)
['{CB673572-AD31-405A-9EF0-0FC870012A4E}'] ['{D9BE457D-E085-4F34-9617-6B6A448DAB91}']
{ Property getters and setters } { Property getters and setters }
function GetANOValue: String; function GetANOValue: String;
procedure SetANOValue(const aValue: String); procedure SetANOValue(const aValue: String);
@ -188,7 +192,7 @@ type
{ IFacturasProveedor } { IFacturasProveedor }
IFacturasProveedor = interface(IDAStronglyTypedDataTable) IFacturasProveedor = interface(IDAStronglyTypedDataTable)
['{20CB371E-32B4-45B7-B925-7DAF93C6F093}'] ['{BCF56881-59B4-4F43-8E66-6C20D549964A}']
{ Property getters and setters } { Property getters and setters }
function GetIDValue: Integer; function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer); procedure SetIDValue(const aValue: Integer);
@ -321,6 +325,14 @@ type
procedure SetDATOS_BANCARIOSValue(const aValue: String); procedure SetDATOS_BANCARIOSValue(const aValue: String);
function GetDATOS_BANCARIOSIsNull: Boolean; function GetDATOS_BANCARIOSIsNull: Boolean;
procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean);
function GetNUM_COPIASValue: SmallInt;
procedure SetNUM_COPIASValue(const aValue: SmallInt);
function GetNUM_COPIASIsNull: Boolean;
procedure SetNUM_COPIASIsNull(const aValue: Boolean);
function GetNUM_CORREOSValue: SmallInt;
procedure SetNUM_CORREOSValue(const aValue: SmallInt);
function GetNUM_CORREOSIsNull: Boolean;
procedure SetNUM_CORREOSIsNull(const aValue: Boolean);
{ Properties } { Properties }
@ -390,6 +402,10 @@ type
property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull;
property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue;
property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull;
property NUM_COPIAS: SmallInt read GetNUM_COPIASValue write SetNUM_COPIASValue;
property NUM_COPIASIsNull: Boolean read GetNUM_COPIASIsNull write SetNUM_COPIASIsNull;
property NUM_CORREOS: SmallInt read GetNUM_CORREOSValue write SetNUM_CORREOSValue;
property NUM_CORREOSIsNull: Boolean read GetNUM_CORREOSIsNull write SetNUM_CORREOSIsNull;
end; end;
{ TFacturasProveedorDataTableRules } { TFacturasProveedorDataTableRules }
@ -530,6 +546,14 @@ type
procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual;
function GetDATOS_BANCARIOSIsNull: Boolean; virtual; function GetDATOS_BANCARIOSIsNull: Boolean; virtual;
procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual;
function GetNUM_COPIASValue: SmallInt; virtual;
procedure SetNUM_COPIASValue(const aValue: SmallInt); virtual;
function GetNUM_COPIASIsNull: Boolean; virtual;
procedure SetNUM_COPIASIsNull(const aValue: Boolean); virtual;
function GetNUM_CORREOSValue: SmallInt; virtual;
procedure SetNUM_CORREOSValue(const aValue: SmallInt); virtual;
function GetNUM_CORREOSIsNull: Boolean; virtual;
procedure SetNUM_CORREOSIsNull(const aValue: Boolean); virtual;
{ Properties } { Properties }
property ID: Integer read GetIDValue write SetIDValue; property ID: Integer read GetIDValue write SetIDValue;
@ -598,6 +622,10 @@ type
property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull;
property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue;
property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull;
property NUM_COPIAS: SmallInt read GetNUM_COPIASValue write SetNUM_COPIASValue;
property NUM_COPIASIsNull: Boolean read GetNUM_COPIASIsNull write SetNUM_COPIASIsNull;
property NUM_CORREOS: SmallInt read GetNUM_CORREOSValue write SetNUM_CORREOSValue;
property NUM_CORREOSIsNull: Boolean read GetNUM_CORREOSIsNull write SetNUM_CORREOSIsNull;
public public
constructor Create(aDataTable: TDADataTable); override; constructor Create(aDataTable: TDADataTable); override;
@ -607,7 +635,7 @@ type
{ IFacturasProveedor_Detalles } { IFacturasProveedor_Detalles }
IFacturasProveedor_Detalles = interface(IDAStronglyTypedDataTable) IFacturasProveedor_Detalles = interface(IDAStronglyTypedDataTable)
['{AE1A2F3E-33E1-4593-A397-EF5B9520D17E}'] ['{7181975B-A794-4C0B-B0FD-9645CD115FAB}']
{ Property getters and setters } { Property getters and setters }
function GetIDValue: Integer; function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer); procedure SetIDValue(const aValue: Integer);
@ -822,7 +850,7 @@ type
{ IFacturasProveedor_Pedidos } { IFacturasProveedor_Pedidos }
IFacturasProveedor_Pedidos = interface(IDAStronglyTypedDataTable) IFacturasProveedor_Pedidos = interface(IDAStronglyTypedDataTable)
['{00E2CBCC-20FA-40E8-A713-06794CC6A2B1}'] ['{C9E12A28-8E4E-4C11-86B6-68E66A864747}']
{ Property getters and setters } { Property getters and setters }
function GetIDValue: Integer; function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer); procedure SetIDValue(const aValue: Integer);
@ -1675,6 +1703,48 @@ begin
DataTable.Fields[idx_FacturasProveedorDATOS_BANCARIOS].AsVariant := Null; DataTable.Fields[idx_FacturasProveedorDATOS_BANCARIOS].AsVariant := Null;
end; end;
function TFacturasProveedorDataTableRules.GetNUM_COPIASValue: SmallInt;
begin
result := DataTable.Fields[idx_FacturasProveedorNUM_COPIAS].AsSmallInt;
end;
procedure TFacturasProveedorDataTableRules.SetNUM_COPIASValue(const aValue: SmallInt);
begin
DataTable.Fields[idx_FacturasProveedorNUM_COPIAS].AsSmallInt := aValue;
end;
function TFacturasProveedorDataTableRules.GetNUM_COPIASIsNull: boolean;
begin
result := DataTable.Fields[idx_FacturasProveedorNUM_COPIAS].IsNull;
end;
procedure TFacturasProveedorDataTableRules.SetNUM_COPIASIsNull(const aValue: Boolean);
begin
if aValue then
DataTable.Fields[idx_FacturasProveedorNUM_COPIAS].AsVariant := Null;
end;
function TFacturasProveedorDataTableRules.GetNUM_CORREOSValue: SmallInt;
begin
result := DataTable.Fields[idx_FacturasProveedorNUM_CORREOS].AsSmallInt;
end;
procedure TFacturasProveedorDataTableRules.SetNUM_CORREOSValue(const aValue: SmallInt);
begin
DataTable.Fields[idx_FacturasProveedorNUM_CORREOS].AsSmallInt := aValue;
end;
function TFacturasProveedorDataTableRules.GetNUM_CORREOSIsNull: boolean;
begin
result := DataTable.Fields[idx_FacturasProveedorNUM_CORREOS].IsNull;
end;
procedure TFacturasProveedorDataTableRules.SetNUM_CORREOSIsNull(const aValue: Boolean);
begin
if aValue then
DataTable.Fields[idx_FacturasProveedorNUM_CORREOS].AsVariant := Null;
end;
{ TFacturasProveedor_DetallesDataTableRules } { TFacturasProveedor_DetallesDataTableRules }
constructor TFacturasProveedor_DetallesDataTableRules.Create(aDataTable: TDADataTable); constructor TFacturasProveedor_DetallesDataTableRules.Create(aDataTable: TDADataTable);

View File

@ -9,15 +9,15 @@ const
{ Delta rules ids { Delta rules ids
Feel free to change them to something more human readable Feel free to change them to something more human readable
but make sure they are unique in the context of your application } but make sure they are unique in the context of your application }
RID_ListaAnosFacturasDelta = '{EC0C9C41-F75A-44AF-9563-C1BF7C94797E}'; RID_ListaAnosFacturasDelta = '{1EDF69BB-0415-4157-8966-6246DE37E66F}';
RID_FacturasProveedorDelta = '{E6CC20F4-E176-4296-8598-60A05EE8A3BA}'; RID_FacturasProveedorDelta = '{E08F279D-285E-400E-9905-0AD5DB882FF3}';
RID_FacturasProveedor_DetallesDelta = '{F1E67867-CD3F-4CAD-A9E2-103852351589}'; RID_FacturasProveedor_DetallesDelta = '{AE5F56E7-2966-4E9F-AF31-36FF92C33981}';
RID_FacturasProveedor_PedidosDelta = '{F8DF3A8E-57BE-4D89-AA51-C60A1A6845F0}'; RID_FacturasProveedor_PedidosDelta = '{2BD0AA95-7E24-4D38-B4A3-1F64F82E7D75}';
type type
{ IListaAnosFacturasDelta } { IListaAnosFacturasDelta }
IListaAnosFacturasDelta = interface(IListaAnosFacturas) IListaAnosFacturasDelta = interface(IListaAnosFacturas)
['{EC0C9C41-F75A-44AF-9563-C1BF7C94797E}'] ['{1EDF69BB-0415-4157-8966-6246DE37E66F}']
{ Property getters and setters } { Property getters and setters }
function GetOldANOValue : String; function GetOldANOValue : String;
@ -51,7 +51,7 @@ type
{ IFacturasProveedorDelta } { IFacturasProveedorDelta }
IFacturasProveedorDelta = interface(IFacturasProveedor) IFacturasProveedorDelta = interface(IFacturasProveedor)
['{E6CC20F4-E176-4296-8598-60A05EE8A3BA}'] ['{E08F279D-285E-400E-9905-0AD5DB882FF3}']
{ Property getters and setters } { Property getters and setters }
function GetOldIDValue : Integer; function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer; function GetOldID_EMPRESAValue : Integer;
@ -86,6 +86,8 @@ type
function GetOldIMPORTE_NETOValue : Currency; function GetOldIMPORTE_NETOValue : Currency;
function GetOldIMPORTE_PORTEValue : Currency; function GetOldIMPORTE_PORTEValue : Currency;
function GetOldDATOS_BANCARIOSValue : String; function GetOldDATOS_BANCARIOSValue : String;
function GetOldNUM_COPIASValue : SmallInt;
function GetOldNUM_CORREOSValue : SmallInt;
{ Properties } { Properties }
property OldID : Integer read GetOldIDValue; property OldID : Integer read GetOldIDValue;
@ -121,6 +123,8 @@ type
property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue;
property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue;
property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue;
property OldNUM_COPIAS : SmallInt read GetOldNUM_COPIASValue;
property OldNUM_CORREOS : SmallInt read GetOldNUM_CORREOSValue;
end; end;
{ TFacturasProveedorBusinessProcessorRules } { TFacturasProveedorBusinessProcessorRules }
@ -327,6 +331,18 @@ type
function GetOldDATOS_BANCARIOSIsNull: Boolean; virtual; function GetOldDATOS_BANCARIOSIsNull: Boolean; virtual;
procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual;
procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual;
function GetNUM_COPIASValue: SmallInt; virtual;
function GetNUM_COPIASIsNull: Boolean; virtual;
function GetOldNUM_COPIASValue: SmallInt; virtual;
function GetOldNUM_COPIASIsNull: Boolean; virtual;
procedure SetNUM_COPIASValue(const aValue: SmallInt); virtual;
procedure SetNUM_COPIASIsNull(const aValue: Boolean); virtual;
function GetNUM_CORREOSValue: SmallInt; virtual;
function GetNUM_CORREOSIsNull: Boolean; virtual;
function GetOldNUM_CORREOSValue: SmallInt; virtual;
function GetOldNUM_CORREOSIsNull: Boolean; virtual;
procedure SetNUM_CORREOSValue(const aValue: SmallInt); virtual;
procedure SetNUM_CORREOSIsNull(const aValue: Boolean); virtual;
{ Properties } { Properties }
property ID : Integer read GetIDValue write SetIDValue; property ID : Integer read GetIDValue write SetIDValue;
@ -461,6 +477,14 @@ type
property DATOS_BANCARIOSIsNull : Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; property DATOS_BANCARIOSIsNull : Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull;
property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue;
property OldDATOS_BANCARIOSIsNull : Boolean read GetOldDATOS_BANCARIOSIsNull; property OldDATOS_BANCARIOSIsNull : Boolean read GetOldDATOS_BANCARIOSIsNull;
property NUM_COPIAS : SmallInt read GetNUM_COPIASValue write SetNUM_COPIASValue;
property NUM_COPIASIsNull : Boolean read GetNUM_COPIASIsNull write SetNUM_COPIASIsNull;
property OldNUM_COPIAS : SmallInt read GetOldNUM_COPIASValue;
property OldNUM_COPIASIsNull : Boolean read GetOldNUM_COPIASIsNull;
property NUM_CORREOS : SmallInt read GetNUM_CORREOSValue write SetNUM_CORREOSValue;
property NUM_CORREOSIsNull : Boolean read GetNUM_CORREOSIsNull write SetNUM_CORREOSIsNull;
property OldNUM_CORREOS : SmallInt read GetOldNUM_CORREOSValue;
property OldNUM_CORREOSIsNull : Boolean read GetOldNUM_CORREOSIsNull;
public public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override; constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
@ -470,7 +494,7 @@ type
{ IFacturasProveedor_DetallesDelta } { IFacturasProveedor_DetallesDelta }
IFacturasProveedor_DetallesDelta = interface(IFacturasProveedor_Detalles) IFacturasProveedor_DetallesDelta = interface(IFacturasProveedor_Detalles)
['{F1E67867-CD3F-4CAD-A9E2-103852351589}'] ['{AE5F56E7-2966-4E9F-AF31-36FF92C33981}']
{ Property getters and setters } { Property getters and setters }
function GetOldIDValue : Integer; function GetOldIDValue : Integer;
function GetOldID_FACTURAValue : Integer; function GetOldID_FACTURAValue : Integer;
@ -684,7 +708,7 @@ type
{ IFacturasProveedor_PedidosDelta } { IFacturasProveedor_PedidosDelta }
IFacturasProveedor_PedidosDelta = interface(IFacturasProveedor_Pedidos) IFacturasProveedor_PedidosDelta = interface(IFacturasProveedor_Pedidos)
['{F8DF3A8E-57BE-4D89-AA51-C60A1A6845F0}'] ['{2BD0AA95-7E24-4D38-B4A3-1F64F82E7D75}']
{ Property getters and setters } { Property getters and setters }
function GetOldIDValue : Integer; function GetOldIDValue : Integer;
function GetOldID_FACTURAValue : Integer; function GetOldID_FACTURAValue : Integer;
@ -1878,6 +1902,68 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDATOS_BANCARIOS] := Null; BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorDATOS_BANCARIOS] := Null;
end; end;
function TFacturasProveedorBusinessProcessorRules.GetNUM_COPIASValue: SmallInt;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNUM_COPIAS];
end;
function TFacturasProveedorBusinessProcessorRules.GetNUM_COPIASIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNUM_COPIAS]);
end;
function TFacturasProveedorBusinessProcessorRules.GetOldNUM_COPIASValue: SmallInt;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNUM_COPIAS];
end;
function TFacturasProveedorBusinessProcessorRules.GetOldNUM_COPIASIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNUM_COPIAS]);
end;
procedure TFacturasProveedorBusinessProcessorRules.SetNUM_COPIASValue(const aValue: SmallInt);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNUM_COPIAS] := aValue;
end;
procedure TFacturasProveedorBusinessProcessorRules.SetNUM_COPIASIsNull(const aValue: Boolean);
begin
if aValue then
BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNUM_COPIAS] := Null;
end;
function TFacturasProveedorBusinessProcessorRules.GetNUM_CORREOSValue: SmallInt;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNUM_CORREOS];
end;
function TFacturasProveedorBusinessProcessorRules.GetNUM_CORREOSIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNUM_CORREOS]);
end;
function TFacturasProveedorBusinessProcessorRules.GetOldNUM_CORREOSValue: SmallInt;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNUM_CORREOS];
end;
function TFacturasProveedorBusinessProcessorRules.GetOldNUM_CORREOSIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorNUM_CORREOS]);
end;
procedure TFacturasProveedorBusinessProcessorRules.SetNUM_CORREOSValue(const aValue: SmallInt);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNUM_CORREOS] := aValue;
end;
procedure TFacturasProveedorBusinessProcessorRules.SetNUM_CORREOSIsNull(const aValue: Boolean);
begin
if aValue then
BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorNUM_CORREOS] := Null;
end;
{ TFacturasProveedor_DetallesBusinessProcessorRules } { TFacturasProveedor_DetallesBusinessProcessorRules }
constructor TFacturasProveedor_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); constructor TFacturasProveedor_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);

View File

@ -41,6 +41,12 @@
<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">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><Excluded_Packages> <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><Excluded_Packages>
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Pascal Script\Dcu\D10\PascalScript_RO_D10.bpl">RemObjects Pascal Script - RemObjects SDK 3.0 Integration</Excluded_Packages> <Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Pascal Script\Dcu\D10\PascalScript_RO_D10.bpl">RemObjects Pascal Script - RemObjects SDK 3.0 Integration</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">FacturasProveedor_view.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> </Excluded_Packages><Source><Source Name="MainSource">FacturasProveedor_view.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions> </ProjectExtensions>
@ -49,30 +55,40 @@
<DelphiCompile Include="FacturasProveedor_view.dpk"> <DelphiCompile Include="FacturasProveedor_view.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="adortl.dcp" /> <DCCReference Include="..\Controller\View\adortl.dcp" />
<DCCReference Include="AlbProv_FacProv_relation.dcp" /> <DCCReference Include="..\Controller\View\AlbProv_FacProv_relation.dcp" />
<DCCReference Include="Articulos_view.dcp" /> <DCCReference Include="..\Controller\View\Articulos_view.dcp" />
<DCCReference Include="cxDataD11.dcp" /> <DCCReference Include="..\Controller\View\cxDataD11.dcp" />
<DCCReference Include="cxEditorsD11.dcp" /> <DCCReference Include="..\Controller\View\cxEditorsD11.dcp" />
<DCCReference Include="cxExportD11.dcp" /> <DCCReference Include="..\Controller\View\cxExportD11.dcp" />
<DCCReference Include="cxExtEditorsD11.dcp" /> <DCCReference Include="..\Controller\View\cxExtEditorsD11.dcp" />
<DCCReference Include="cxGridD11.dcp" /> <DCCReference Include="..\Controller\View\cxGridD11.dcp" />
<DCCReference Include="cxLibraryD11.dcp" /> <DCCReference Include="..\Controller\View\cxLibraryD11.dcp" />
<DCCReference Include="cxPageControlD11.dcp" /> <DCCReference Include="..\Controller\View\cxPageControlD11.dcp" />
<DCCReference Include="DataAbstract_Core_D11.dcp" /> <DCCReference Include="..\Controller\View\DataAbstract_Core_D11.dcp" />
<DCCReference Include="dbrtl.dcp" /> <DCCReference Include="..\Controller\View\dbrtl.dcp" />
<DCCReference Include="dsnap.dcp" /> <DCCReference Include="..\Controller\View\dsnap.dcp" />
<DCCReference Include="dxGDIPlusD11.dcp" /> <DCCReference Include="..\Controller\View\dxCoreD11.dcp" />
<DCCReference Include="dxThemeD11.dcp" /> <DCCReference Include="..\Controller\View\dxGDIPlusD11.dcp" />
<DCCReference Include="FacturasProveedor_controller.dcp" /> <DCCReference Include="..\Controller\View\dxThemeD11.dcp" />
<DCCReference Include="FacturasProveedor_model.dcp" /> <DCCReference Include="..\Controller\View\FacturasProveedor_controller.dcp" />
<DCCReference Include="GestorInformes_controller.dcp" /> <DCCReference Include="..\Controller\View\FacturasProveedor_model.dcp" />
<DCCReference Include="GUIBase.dcp" /> <DCCReference Include="..\Controller\View\GestorInformes_controller.dcp" />
<DCCReference Include="PedProv_FacProv_relation.dcp" /> <DCCReference Include="..\Controller\View\GUIBase.dcp" />
<DCCReference Include="PngComponentsD10.dcp" /> <DCCReference Include="..\Controller\View\PedProv_FacProv_relation.dcp" />
<DCCReference Include="PNG_D10.dcp" /> <DCCReference Include="..\Controller\View\PngComponentsD10.dcp" />
<DCCReference Include="RemObjects_Core_D11.dcp" /> <DCCReference Include="..\Controller\View\PNG_D10.dcp" />
<DCCReference Include="rtl.dcp" /> <DCCReference Include="..\Controller\View\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Controller\View\rtl.dcp" />
<DCCReference Include="..\Controller\View\vcl.dcp" />
<DCCReference Include="..\Controller\View\vclactnband.dcp" />
<DCCReference Include="..\Controller\View\vcldb.dcp" />
<DCCReference Include="..\Controller\View\vcljpg.dcp" />
<DCCReference Include="..\Controller\View\vclx.dcp" />
<DCCReference Include="uDialogListaFacturasProveedorEnvioEMail.pas">
<Form>fDialogListaFacturasProveedorEnvioEMail</Form>
<DesignClass>T</DesignClass>
</DCCReference>
<DCCReference Include="uEditorElegirArticulosFacturaProveedor.pas"> <DCCReference Include="uEditorElegirArticulosFacturaProveedor.pas">
<Form>fEditorElegirArticulosFacturaProveedor</Form> <Form>fEditorElegirArticulosFacturaProveedor</Form>
<DesignClass>TfEditorElegirArticulosFacturaProveedor</DesignClass> <DesignClass>TfEditorElegirArticulosFacturaProveedor</DesignClass>
@ -114,11 +130,6 @@
<Form>frViewPedidosFacturaProveedor</Form> <Form>frViewPedidosFacturaProveedor</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="vcl.dcp" />
<DCCReference Include="vclactnband.dcp" />
<DCCReference Include="vcldb.dcp" />
<DCCReference Include="vcljpg.dcp" />
<DCCReference Include="vclx.dcp" />
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line

View File

@ -0,0 +1,97 @@
inherited fDialogListaFacturasProveedorEnvioEMail: TfDialogListaFacturasProveedorEnvioEMail
Caption = 'Enviar facturas por correo electr'#243'nico'
ClientHeight = 490
ClientWidth = 665
ExplicitWidth = 671
ExplicitHeight = 522
PixelsPerInch = 96
TextHeight = 13
inherited Bevel2: TBevel
Width = 665
ExplicitWidth = 627
end
inherited Bevel3: TBevel
Top = 446
Width = 665
ExplicitTop = 466
ExplicitWidth = 627
end
inherited pnlBotones: TPanel
Top = 448
Width = 665
ExplicitTop = 448
ExplicitWidth = 665
inherited btnAceptar: TButton
Left = 482
Width = 100
ExplicitLeft = 482
ExplicitWidth = 100
end
inherited btnCancelar: TButton
Left = 586
ExplicitLeft = 586
end
end
inherited pnlHeader: TPanel
Width = 665
ExplicitWidth = 665
inherited lblInstruccion: TLabel
Width = 615
Caption = 'Enviar facturas por correo electr'#243'nico'
ExplicitWidth = 213
end
inherited Label2: TLabel
Width = 590
Height = 27
Caption =
'Se generar'#225'n correos electr'#243'nicos autom'#225'ticos adjuntando las fac' +
'turas elegidas 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 = 380
ExplicitWidth = 665
ExplicitHeight = 380
end
inherited ListView1: TListView
Width = 665
Height = 380
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 = 380
end
inherited ActionList1: TActionList
Top = 352
inherited actAceptar: TAction
Caption = '&Generar correos'
OnExecute = actAceptarExecute
OnUpdate = actAceptarUpdate
end
inherited actCancelar: TAction
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,158 @@
unit uDialogListaFacturasProveedorEnvioEMail;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls,
uDialogListaEnvioEMail, uIDialogListaFacturasProveedorEnvioEMail, uFacturasProveedorController,
uBizFacturasProveedor;
type
TfDialogListaFacturasProveedorEnvioEMail = class(TfDialogListaEnvioEMail, IDialogListaFacturasProveedorEnvioEMail)
procedure actCancelarExecute(Sender: TObject);
procedure actAceptarUpdate(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
private
FFacturas : IBizFacturaProveedor;
FController : IFacturasProveedorController;
protected
function GetFacturas: IBizFacturaProveedor;
procedure SetFacturas(const Value: IBizFacturaProveedor);
procedure RellenarLista;
procedure BorrarLista;
public
constructor Create(AOwner: TComponent); override;
property Facturas: IBizFacturaProveedor read GetFacturas write SetFacturas;
end;
implementation
uses
schFacturasProveedorClient_Intf, uStringsUtils, cxControls;
{$R *.dfm}
{ TfDialogListaFacturasEnvioEMail }
procedure TfDialogListaFacturasProveedorEnvioEMail.actAceptarExecute(Sender: TObject);
var
i : Integer;
begin
ShowHourglassCursor;
Application.ProcessMessages;
try
FFacturas.First;
FController.RecuperarProveedor(FFacturas);
FFacturas.Proveedor.DataTable.Active := True;
try
for i := 0 to FFacturas.DataTable.RecordCount - 1 do
begin
if not EsCadenaVacia(FFacturas.Proveedor.EMAIL_ADMINISTRACION) then
begin
if FController.EnviarFacturaPorEMail(FFacturas, True, FFacturas.Proveedor.EMAIL_ADMINISTRACION) 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;
FFacturas.Next;
FController.RecuperarProveedor(FFacturas);
FFacturas.Proveedor.DataTable.Active := True;
end;
btnAceptar.Enabled := False;
finally
ListView1.Items.EndUpdate;
end;
finally
HideHourglassCursor;
end;
btnCancelar.SetFocus;
end;
procedure TfDialogListaFacturasProveedorEnvioEMail.actAceptarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ListView1.Items.Count > 0)
end;
procedure TfDialogListaFacturasProveedorEnvioEMail.actCancelarExecute(Sender: TObject);
begin
inherited;
ModalResult := mrOk;
end;
procedure TfDialogListaFacturasProveedorEnvioEMail.BorrarLista;
begin
ListView1.Items.Clear;
end;
constructor TfDialogListaFacturasProveedorEnvioEMail.Create(AOwner: TComponent);
begin
inherited;
ModalResult := mrCancel;
FController := TFacturasProveedorController.Create;
end;
function TfDialogListaFacturasProveedorEnvioEMail.GetFacturas: IBizFacturaProveedor;
begin
Result := FFacturas;
end;
procedure TfDialogListaFacturasProveedorEnvioEMail.RellenarLista;
var
i : Integer;
begin
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
FFacturas.First;
FFacturas.DataTable.DisableControls;
try
for i := 0 to FFacturas.DataTable.RecordCount - 1 do
begin
FController.RecuperarProveedor(FFacturas);
FFacturas.Proveedor.DataTable.Active := True;
with ListView1.Items.Add do
begin
Caption := FFacturas.REFERENCIA;
SubItems.Add(FFacturas.NOMBRE);
SubItems.Add(FFacturas.Proveedor.EMAIL_ADMINISTRACION);
if EsCadenaVacia(FFacturas.Proveedor.EMAIL_ADMINISTRACION) then
SubItems.Add('Sin dirección e-mail administrativa')
else
SubItems.Add('')
end;
FFacturas.Next;
end;
finally
FFacturas.DataTable.EnableControls;
ListView1.Items.EndUpdate;
end;
end;
procedure TfDialogListaFacturasProveedorEnvioEMail.SetFacturas(
const Value: IBizFacturaProveedor);
begin
FFacturas := Value;
if Assigned(FFacturas) then
begin
FFacturas.DataTable.Open;
RellenarLista;
end
else
BorrarLista;
end;
end.

View File

@ -38,7 +38,7 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor
Width = 849 Width = 849
ExplicitWidth = 849 ExplicitWidth = 849
inherited tbxMain: TTBXToolbar inherited tbxMain: TTBXToolbar
ExplicitWidth = 632 ExplicitWidth = 740
object TBXSubmenuItem2: TTBXSubmenuItem [0] object TBXSubmenuItem2: TTBXSubmenuItem [0]
Caption = 'Nuevo' Caption = 'Nuevo'
DisplayMode = nbdmImageAndText DisplayMode = nbdmImageAndText
@ -57,6 +57,9 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor
inherited TBXItem2: TTBXItem inherited TBXItem2: TTBXItem
Visible = False Visible = False
end end
object TBXItem42: TTBXItem [14]
Action = actEnviarEMail
end
end end
inherited tbxFiltro: TTBXToolbar inherited tbxFiltro: TTBXToolbar
ExplicitWidth = 427 ExplicitWidth = 427
@ -282,6 +285,12 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor
OnExecute = actDomiciliacionExecute OnExecute = actDomiciliacionExecute
OnUpdate = actDomiciliacionUpdate OnUpdate = actDomiciliacionUpdate
end end
object actEnviarEMail: TAction
Category = 'Acciones'
Caption = 'Enviar por e-mail...'
OnExecute = actEnviarEMailExecute
OnUpdate = actEnviarEMailUpdate
end
end end
inherited SmallImages: TPngImageList [5] inherited SmallImages: TPngImageList [5]
PngImages = < PngImages = <

View File

@ -38,6 +38,8 @@ type
TBXItem41: TTBXItem; TBXItem41: TTBXItem;
TBXSeparatorItem17: TTBXSeparatorItem; TBXSeparatorItem17: TTBXSeparatorItem;
JsListaFacturasNoModificables: TJSDialog; JsListaFacturasNoModificables: TJSDialog;
actEnviarEMail: TAction;
TBXItem42: TTBXItem;
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject); procedure actEliminarUpdate(Sender: TObject);
procedure actNuevaFacturaExecute(Sender: TObject); procedure actNuevaFacturaExecute(Sender: TObject);
@ -46,6 +48,8 @@ type
procedure OnListaAnosChange(Sender: TObject; const Text: string); procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure actDomiciliacionExecute(Sender: TObject); procedure actDomiciliacionExecute(Sender: TObject);
procedure actDomiciliacionUpdate(Sender: TObject); procedure actDomiciliacionUpdate(Sender: TObject);
procedure actEnviarEMailExecute(Sender: TObject);
procedure actEnviarEMailUpdate(Sender: TObject);
private private
FFacturas: IBizFacturaProveedor; FFacturas: IBizFacturaProveedor;
@ -139,6 +143,41 @@ begin
(Sender as TAction).Enabled := (FFacturas.SITUACION = CTE_PENDIENTE); (Sender as TAction).Enabled := (FFacturas.SITUACION = CTE_PENDIENTE);
end; end;
procedure TfEditorFacturasProveedor.actEnviarEMailExecute(Sender: TObject);
var
AFacturas : IBizFacturaProveedor;
begin
inherited;
if ViewGrid.NumSeleccionados = 1 then
FController.GenerarEmailFactura(FFacturas)
else begin
ShowHourglassCursor;
try
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords);
AFacturas := (Controller as IFacturasProveedorController).ExtraerSeleccionados(Facturas) as IBizFacturaProveedor;
if Assigned(AFacturas) then
if FController.EnviarEmailFacturas(AFacturas) then
RefrescarInterno;
finally
AFacturas := NIL;
HideHourglassCursor;
end;
end;
end;
procedure TfEditorFacturasProveedor.actEnviarEMailUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := ViewGrid.esSeleccionCeldaDatos
and (ViewGrid.NumSeleccionados > 0)
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorFacturasProveedor.actInformesExecute(Sender: TObject); procedure TfEditorFacturasProveedor.actInformesExecute(Sender: TObject);
var var
Respuesta : Integer; Respuesta : Integer;

View File

@ -10,7 +10,7 @@ implementation
uses uses
uEditorRegistryUtils, uEditorFacturasProveedor, uEditorFacturaProveedor, uEditorRegistryUtils, uEditorFacturasProveedor, uEditorFacturaProveedor,
uEditorElegirDomiciliacion, uEditorElegirArticulosFacturaProveedor, uEditorElegirDomiciliacion, uEditorElegirArticulosFacturaProveedor,
uEditorFacturasProveedorReport; uEditorFacturasProveedorReport, uDialogListaFacturasProveedorEnvioEMail;
procedure RegisterViews; procedure RegisterViews;
begin begin
@ -19,6 +19,7 @@ begin
EditorRegistry.RegisterClass(TfEditorFacturaProveedor, 'EditorFacturaProveedor'); EditorRegistry.RegisterClass(TfEditorFacturaProveedor, 'EditorFacturaProveedor');
EditorRegistry.RegisterClass(TfEditorElegirArticulosFacturaProveedor, 'EditorElegirArticulosFacturaProveedor'); EditorRegistry.RegisterClass(TfEditorElegirArticulosFacturaProveedor, 'EditorElegirArticulosFacturaProveedor');
EditorRegistry.RegisterClass(TfEditorFacturasProveedorPreview, 'EditorFacturasProveedorPreview'); EditorRegistry.RegisterClass(TfEditorFacturasProveedorPreview, 'EditorFacturasProveedorPreview');
EditorRegistry.RegisterClass(TfDialogListaFacturasProveedorEnvioEMail, 'DialogListaFacturasProveedorEnvioEMail');
end; end;
procedure UnregisterViews; procedure UnregisterViews;
@ -28,6 +29,7 @@ begin
EditorRegistry.UnRegisterClass(TfEditorFacturaProveedor); EditorRegistry.UnRegisterClass(TfEditorFacturaProveedor);
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosFacturaProveedor); EditorRegistry.UnRegisterClass(TfEditorElegirArticulosFacturaProveedor);
EditorRegistry.UnRegisterClass(TfEditorFacturasProveedorPreview); EditorRegistry.UnRegisterClass(TfEditorFacturasProveedorPreview);
EditorRegistry.UnRegisterClass(TfDialogListaFacturasProveedorEnvioEMail);
end; end;
end. end.

View File

@ -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" />

View File

@ -0,0 +1,21 @@
unit uIDialogListaPedidosProveedorEnvioEMail;
interface
uses
uBizPedidosProveedor, uPedidosProveedorController;
type
IDialogListaPedidosProveedorEnvioEMail = interface
['{7D79EDF0-B71A-4FDF-9BFE-F004EF94981C}']
function GetPedidos: IBizPedidoProveedor;
procedure SetPedidos(const Value: IBizPedidoProveedor);
property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -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);
procedure GenerarEmailPedido(APedido: IBizPedidoProveedor);
function EnviarEmailPedidos(APedidos : IBizPedidoProveedor): Boolean;
function EnviarPedidoPorEMail(APedido: IBizPedidoProveedor;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): 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);
@ -63,6 +69,9 @@ type
end; end;
TPedidosProveedorController = class(TControllerBase, IPedidosProveedorController) TPedidosProveedorController = class(TControllerBase, IPedidosProveedorController)
private
procedure _AnadirMarcaEnvioCorreo(APedido: IBizPedidoProveedor);
protected protected
FDataModule : IDataModulePedidosProveedor; FDataModule : IDataModulePedidosProveedor;
FProveedorController : IProveedoresController; FProveedorController : IProveedoresController;
@ -128,7 +137,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);
procedure GenerarEmailPedido(APedido: IBizPedidoProveedor);
function EnviarEmailPedidos(APedidos : IBizPedidoProveedor): Boolean;
function EnviarPedidoPorEMail(APedido: IBizPedidoProveedor;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): 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);
@ -141,11 +156,12 @@ implementation
uses uses
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorPedidosProveedor, uDataModulePedidosProveedor, uFactuGES_App, uIEditorPedidosProveedor, uDataModulePedidosProveedor, uFactuGES_App, Forms,
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,
uDataModuleRegistroCorreos,
Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils; Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils;
{ TPedidosProveedorController } { TPedidosProveedorController }
@ -562,6 +578,37 @@ begin
end; end;
end; end;
procedure TPedidosProveedorController._AnadirMarcaEnvioCorreo(APedido: IBizPedidoProveedor);
var
ASoloLectura : Boolean;
begin
if not Assigned(APedido) then
raise Exception.Create ('Factura no asignada (_AnadirMarcaEnvioCorreo)');
if APedido.DataTable.Active then
APedido.DataTable.Active := True;
if AnadirMarcaEnvioCorreo(nme_PedidosProveedor, APedido.ID) then
begin
DesconectarTabla(APedido.DataTable);
try
ASoloLectura := APedido.DataTable.ReadOnly;
if ASoloLectura then
SetDataTableReadOnly(APedido.DataTable, False);
try
APedido.Edit;
APedido.NUM_CORREOS := APedido.NUM_CORREOS + 1;
APedido.Post;
finally
if ASoloLectura then
SetDataTableReadOnly(APedido.DataTable, True);
end;
finally
ConectarTabla(APedido.DataTable);
end;
end;
end;
function TPedidosProveedorController._Vacio: IBizPedidoProveedor; function TPedidosProveedorController._Vacio: IBizPedidoProveedor;
begin begin
Result := Buscar(ID_NULO); Result := Buscar(ID_NULO);
@ -658,47 +705,113 @@ begin
end; end;
end; end;
procedure TPedidosProveedorController.EnviarPedidoPorEMail( function TPedidosProveedorController.EnviarEmailPedidos(
APedido: IBizPedidoProveedor); 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;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
var var
AReportController : IPedidosProveedorReportController; AReportController : IPedidosProveedorReportController;
AFicheroTMP : TFileName; AFicheroTMP : TFileName;
AEMail : String; AEMail : String;
AAsunto : String;
AListaEmail : TStringList; AListaEmail : TStringList;
begin begin
if not Assigned(APedido) then if not Assigned(APedido) then
raise Exception.Create ('Pedido no asignado (EnviarPedidoPorEMail)'); raise Exception.Create ('Pedido no asignada (EnviarPedidoPorEMail)');
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 EsCadenaVacia(APedido.Proveedor.EMAIL_ADMINISTRACION) then
AListaEmail.Add(APedido.Proveedor.EMAIL_ADMINISTRACION);
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;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Pedido ' + APedido.REFERENCIA;
ShowHourglassCursor; ShowHourglassCursor;
Application.ProcessMessages;
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(AAsunto, ATextoEMail, AFicheroTMP, '', '', APedido.Proveedor.NOMBRE, AEMail, AEnviarDirectamente);
if Result then
_AnadirMarcaEnvioCorreo(APedido);
finally finally
DeleteFile(AFicheroTMP); SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL; AReportController := NIL;
HideHourglassCursor; HideHourglassCursor;
Application.ProcessMessages;
end;
end;
procedure TPedidosProveedorController.GenerarEmailPedido(
APedido: IBizPedidoProveedor);
begin
if not Assigned(APedido) then
raise Exception.Create ('Pedidos no asignadas (GenerarEmailPedido)');
if APedido.DataTable.Active then
APedido.DataTable.Active := True;
ShowHourglassCursor;
try
RecuperarProveedor(APedido);
EnviarPedidoPorEMail(APedido, False, APedido.Proveedor.EMAIL_ADMINISTRACION);
finally
HideHourglassCursor;
end; end;
end; end;

View File

@ -91,6 +91,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.

View File

@ -49,53 +49,51 @@
<DelphiCompile Include="PedidosProveedor_view.dpk"> <DelphiCompile Include="PedidosProveedor_view.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\..\Lib\adortl.dcp" /> <DCCReference Include="adortl.dcp" />
<DCCReference Include="..\..\Lib\Almacenes_controller.dcp" /> <DCCReference Include="Almacenes_controller.dcp" />
<DCCReference Include="..\..\Lib\Almacenes_model.dcp" /> <DCCReference Include="Almacenes_model.dcp" />
<DCCReference Include="..\..\Lib\Articulos_view.dcp" /> <DCCReference Include="Articulos_view.dcp" />
<DCCReference Include="..\..\Lib\Contactos_controller.dcp" /> <DCCReference Include="Contactos_controller.dcp" />
<DCCReference Include="..\..\Lib\Contactos_model.dcp" /> <DCCReference Include="Contactos_model.dcp" />
<DCCReference Include="..\..\Lib\Contactos_view.dcp" /> <DCCReference Include="Contactos_view.dcp" />
<DCCReference Include="..\..\Lib\cxDataD11.dcp" /> <DCCReference Include="cxDataD11.dcp" />
<DCCReference Include="..\..\Lib\cxEditorsD11.dcp" /> <DCCReference Include="cxEditorsD11.dcp" />
<DCCReference Include="..\..\Lib\cxExtEditorsD11.dcp" /> <DCCReference Include="cxExtEditorsD11.dcp" />
<DCCReference Include="..\..\Lib\cxLibraryD11.dcp" /> <DCCReference Include="cxLibraryD11.dcp" />
<DCCReference Include="..\..\Lib\DataAbstract_Core_D11.dcp" /> <DCCReference Include="DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\Lib\dbrtl.dcp" /> <DCCReference Include="dbrtl.dcp" />
<DCCReference Include="..\..\Lib\designide.dcp" /> <DCCReference Include="designide.dcp" />
<DCCReference Include="..\..\Lib\dsnap.dcp" /> <DCCReference Include="dsnap.dcp" />
<DCCReference Include="..\..\Lib\dxComnD11.dcp" /> <DCCReference Include="dxComnD11.dcp" />
<DCCReference Include="..\..\Lib\dxCoreD11.dcp" /> <DCCReference Include="dxCoreD11.dcp" />
<DCCReference Include="..\..\Lib\dxGDIPlusD11.dcp" /> <DCCReference Include="dxGDIPlusD11.dcp" />
<DCCReference Include="..\..\Lib\dxLayoutControlD11.dcp" /> <DCCReference Include="dxLayoutControlD11.dcp" />
<DCCReference Include="..\..\Lib\dxThemeD11.dcp" /> <DCCReference Include="dxThemeD11.dcp" />
<DCCReference Include="..\..\Lib\GestorInformes_controller.dcp" /> <DCCReference Include="GestorInformes_controller.dcp" />
<DCCReference Include="..\..\Lib\GUIBase.dcp" /> <DCCReference Include="GUIBase.dcp" />
<DCCReference Include="..\..\Lib\GUISDK_D11R.dcp" /> <DCCReference Include="GUISDK_D11R.dcp" />
<DCCReference Include="..\..\Lib\Jcl.dcp" /> <DCCReference Include="Jcl.dcp" />
<DCCReference Include="..\..\Lib\JclVcl.dcp" /> <DCCReference Include="JclVcl.dcp" />
<DCCReference Include="..\..\Lib\JvCoreD11R.dcp" /> <DCCReference Include="JvCoreD11R.dcp" />
<DCCReference Include="..\..\Lib\JvCtrlsD11R.dcp" /> <DCCReference Include="JvCtrlsD11R.dcp" />
<DCCReference Include="..\..\Lib\JvStdCtrlsD11R.dcp" /> <DCCReference Include="JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\..\Lib\JvSystemD11R.dcp" /> <DCCReference Include="JvSystemD11R.dcp" />
<DCCReference Include="..\..\Lib\Obras_controller.dcp" /> <DCCReference Include="Obras_controller.dcp" />
<DCCReference Include="..\..\Lib\Obras_model.dcp" /> <DCCReference Include="Obras_model.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_controller.dcp" /> <DCCReference Include="PedidosCliente_controller.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_model.dcp" /> <DCCReference Include="PedidosCliente_model.dcp" />
<DCCReference Include="..\..\Lib\PedidosProveedor_controller.dcp" /> <DCCReference Include="PedidosProveedor_controller.dcp" />
<DCCReference Include="..\..\Lib\PedidosProveedor_model.dcp" /> <DCCReference Include="PedidosProveedor_model.dcp" />
<DCCReference Include="..\..\Lib\PedProv_AlbProv_relation.dcp" /> <DCCReference Include="PedProv_AlbProv_relation.dcp" />
<DCCReference Include="..\..\Lib\PedProv_FacProv_relation.dcp" /> <DCCReference Include="PedProv_FacProv_relation.dcp" />
<DCCReference Include="..\..\Lib\PngComponentsD10.dcp" /> <DCCReference Include="PngComponentsD10.dcp" />
<DCCReference Include="..\..\Lib\PNG_D10.dcp" /> <DCCReference Include="PNG_D10.dcp" />
<DCCReference Include="..\..\Lib\RemObjects_Core_D11.dcp" /> <DCCReference Include="RemObjects_Core_D11.dcp" />
<DCCReference Include="..\..\Lib\rtl.dcp" /> <DCCReference Include="rtl.dcp" />
<DCCReference Include="..\..\Lib\vcl.dcp" /> <DCCReference Include="uDialogListaPedidosProveedorEnvioEMail.pas">
<DCCReference Include="..\..\Lib\vclactnband.dcp" /> <Form>fruDialogListaPedidosProveedorEnvioEMail</Form>
<DCCReference Include="..\..\Lib\vcldb.dcp" /> <DesignClass>T</DesignClass>
<DCCReference Include="..\..\Lib\vcljpg.dcp" /> </DCCReference>
<DCCReference Include="..\..\Lib\vclx.dcp" />
<DCCReference Include="..\..\Lib\xmlrtl.dcp" />
<DCCReference Include="uDialogOpcionesImpresionPedidosProveedor.pas"> <DCCReference Include="uDialogOpcionesImpresionPedidosProveedor.pas">
<Form>fDialogOpcionesImpresionPedidosProveedor</Form> <Form>fDialogOpcionesImpresionPedidosProveedor</Form>
<DesignClass>TForm</DesignClass> <DesignClass>TForm</DesignClass>
@ -165,6 +163,12 @@
<Form>frViewProveedorPedido</Form> <Form>frViewProveedorPedido</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="vcl.dcp" />
<DCCReference Include="vclactnband.dcp" />
<DCCReference Include="vcldb.dcp" />
<DCCReference Include="vcljpg.dcp" />
<DCCReference Include="vclx.dcp" />
<DCCReference Include="xmlrtl.dcp" />
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line

View File

@ -0,0 +1,97 @@
inherited fDialogListaPedidosProveedorEnvioEMail: TfDialogListaPedidosProveedorEnvioEMail
Caption = 'Enviar pedidos por correo electr'#243'nico'
ClientHeight = 490
ClientWidth = 665
ExplicitWidth = 671
ExplicitHeight = 522
PixelsPerInch = 96
TextHeight = 13
inherited Bevel2: TBevel
Width = 665
ExplicitWidth = 627
end
inherited Bevel3: TBevel
Top = 446
Width = 665
ExplicitTop = 466
ExplicitWidth = 627
end
inherited pnlBotones: TPanel
Top = 448
Width = 665
ExplicitTop = 448
ExplicitWidth = 665
inherited btnAceptar: TButton
Left = 482
Width = 100
ExplicitLeft = 482
ExplicitWidth = 100
end
inherited btnCancelar: TButton
Left = 586
ExplicitLeft = 586
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 = 380
ExplicitWidth = 665
ExplicitHeight = 380
end
inherited ListView1: TListView
Width = 665
Height = 380
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 = 380
end
inherited ActionList1: TActionList
Top = 352
inherited actAceptar: TAction
Caption = '&Generar correos'
OnExecute = actAceptarExecute
OnUpdate = actAceptarUpdate
end
inherited actCancelar: TAction
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,157 @@
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
FPedidos : IBizPedidoProveedor;
FController : IPedidosProveedorController;
protected
function GetPedidos: IBizPedidoProveedor;
procedure SetPedidos(const Value: IBizPedidoProveedor);
procedure RellenarLista;
procedure BorrarLista;
public
constructor Create(AOwner: TComponent); override;
property Pedidos: 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
FPedidos.First;
FController.RecuperarProveedor(FPedidos);
FPedidos.Proveedor.DataTable.Active := True;
try
for i := 0 to FPedidos.DataTable.RecordCount - 1 do
begin
if not EsCadenaVacia(FPedidos.Proveedor.EMAIL_ADMINISTRACION) then
begin
if FController.EnviarPedidoPorEMail(FPedidos, True, FPedidos.Proveedor.EMAIL_ADMINISTRACION) 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;
FPedidos.Next;
FController.RecuperarProveedor(FPedidos);
FPedidos.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 := FPedidos;
end;
procedure TfDialogListaPedidosProveedorEnvioEMail.RellenarLista;
var
i : Integer;
begin
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
FPedidos.First;
FPedidos.DataTable.DisableControls;
try
for i := 0 to FPedidos.DataTable.RecordCount - 1 do
begin
FController.RecuperarProveedor(FPedidos);
FPedidos.Proveedor.DataTable.Active := True;
with ListView1.Items.Add do
begin
Caption := FPedidos.REFERENCIA;
SubItems.Add(FPedidos.NOMBRE);
SubItems.Add(FPedidos.Proveedor.EMAIL_ADMINISTRACION);
if EsCadenaVacia(FPedidos.Proveedor.EMAIL_ADMINISTRACION) then
SubItems.Add('Sin dirección e-mail administrativa')
else
SubItems.Add('')
end;
FPedidos.Next;
end;
finally
FPedidos.DataTable.EnableControls;
ListView1.Items.EndUpdate;
end;
end;
procedure TfDialogListaPedidosProveedorEnvioEMail.SetPedidos(const Value: IBizPedidoProveedor);
begin
FPedidos := Value;
if Assigned(FPedidos) then
begin
FPedidos.DataTable.Open;
RellenarLista;
end
else
BorrarLista;
end;
end.

View File

@ -75,6 +75,7 @@ type
implementation implementation
uses uses
cxControls,
uDataModulePedidosProveedor, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase, uDataModulePedidosProveedor, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase,
uGenerarAlbaranesProvUtils, uGenerarFacturasProvPedUtils, uGenerarAlbaranesProvUtils, uGenerarFacturasProvPedUtils,
// uInventarioController, uBizInventario, // uInventarioController, uBizInventario,
@ -104,9 +105,28 @@ 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(FPedidos)
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);

View File

@ -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,8 @@ 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 +35,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.

View File

@ -49,20 +49,17 @@
<DelphiCompile Include="PedidosCliente_controller.dpk"> <DelphiCompile Include="PedidosCliente_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="..\designide.dcp" />
<DCCReference Include="..\GUISDK_D11R.dcp" />
<DCCReference Include="..\PedidosCliente_data.dcp" />
<DCCReference Include="..\vcl.dcp" />
<DCCReference Include="..\vclactnband.dcp" />
<DCCReference Include="..\vclx.dcp" />
<DCCReference Include="..\xmlrtl.dcp" />
<DCCReference Include="uArticulosPedidoClienteController.pas" /> <DCCReference Include="uArticulosPedidoClienteController.pas" />
<DCCReference Include="uDetallesPedidoClienteController.pas" /> <DCCReference Include="uDetallesPedidoClienteController.pas" />
<DCCReference Include="uPedidosClienteController.pas" /> <DCCReference Include="uPedidosClienteController.pas" />
<DCCReference Include="uPedidosClienteReportController.pas" /> <DCCReference Include="uPedidosClienteReportController.pas" />
<DCCReference Include="View\Articulos_controller.dcp" />
<DCCReference Include="View\Base.dcp" />
<DCCReference Include="View\Contactos_controller.dcp" />
<DCCReference Include="View\designide.dcp" />
<DCCReference Include="View\GUISDK_D11R.dcp" />
<DCCReference Include="View\PedidosCliente_data.dcp" />
<DCCReference Include="View\uIDialogListaPedidosClienteEnvioEMail.pas" />
<DCCReference Include="View\uIDialogListaPedidosCliEnvioEMail.pas" /> <DCCReference Include="View\uIDialogListaPedidosCliEnvioEMail.pas" />
<DCCReference Include="View\uIEditorDireccionEntregaPedidoCliente.pas" /> <DCCReference Include="View\uIEditorDireccionEntregaPedidoCliente.pas" />
<DCCReference Include="View\uIEditorElegirArticulosPedidosCliente.pas" /> <DCCReference Include="View\uIEditorElegirArticulosPedidosCliente.pas" />
@ -70,6 +67,10 @@
<DCCReference Include="View\uIEditorPedidoCliente.pas" /> <DCCReference Include="View\uIEditorPedidoCliente.pas" />
<DCCReference Include="View\uIEditorPedidosCliente.pas" /> <DCCReference Include="View\uIEditorPedidosCliente.pas" />
<DCCReference Include="View\uIEditorPedidosClientePreview.pas" /> <DCCReference Include="View\uIEditorPedidosClientePreview.pas" />
<DCCReference Include="View\vcl.dcp" />
<DCCReference Include="View\vclactnband.dcp" />
<DCCReference Include="View\vclx.dcp" />
<DCCReference Include="View\xmlrtl.dcp" />
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line

View File

@ -13,4 +13,4 @@ BEGIN
END END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Controller\PedidosCliente_controller.RES */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Controller\PedidosCliente_controller.RES */
/* c:\temp\dtf277.tmp */ /* c:\temp\dtf8F.tmp */

View File

@ -0,0 +1,21 @@
unit uIDialogListaPedidosClienteEnvioEMail;
interface
uses
uBizPedidosCliente, uPedidosClienteController;
type
IDialogListaPedidosClienteEnvioEMail = interface
['{C013340C-AA3F-44DE-9DD9-3DF5BF4F9608}']
function GetPedidos: IBizPedidoCliente;
procedure SetPedidos(const Value: IBizPedidoCliente);
property Pedidos: IBizPedidoCliente read GetPedidos write SetPedidos;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -55,7 +55,13 @@ type
function ExtraerSeleccionados(APedido: IBizPedidoCliente) : IBizPedidoCliente; function ExtraerSeleccionados(APedido: IBizPedidoCliente) : IBizPedidoCliente;
function ElegirPedidos(APedido: IBizPedidoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPedidoCliente; function ElegirPedidos(APedido: IBizPedidoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPedidoCliente;
procedure RecuperarCliente(APedido: IBizPedidoCliente); procedure RecuperarCliente(APedido: IBizPedidoCliente);
procedure EnviarPedidoPorEMail(APedido: IBizPedidoCliente);
procedure GenerarEmailPedido(APedido: IBizPedidoCliente);
function EnviarEmailPedidos(APedidos : IBizPedidoCliente): Boolean;
function EnviarPedidoPorEMail(APedido: IBizPedidoCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function ArticulosPendientes(const ID : Integer): IBizPedidoClienteArticulosPend; function ArticulosPendientes(const ID : Integer): IBizPedidoClienteArticulosPend;
@ -69,6 +75,9 @@ type
end; end;
TPedidosClienteController = class(TControllerBase, IPedidosClienteController) TPedidosClienteController = class(TControllerBase, IPedidosClienteController)
private
procedure _AnadirMarcaEnvioCorreo(APedido: IBizPedidoCliente);
protected protected
FDataModule : IDataModulePedidosCliente; FDataModule : IDataModulePedidosCliente;
FClienteController : IClientesController; FClienteController : IClientesController;
@ -134,7 +143,13 @@ type
function ExtraerSeleccionados(APedido: IBizPedidoCliente) : IBizPedidoCliente; function ExtraerSeleccionados(APedido: IBizPedidoCliente) : IBizPedidoCliente;
function ElegirPedidos(APedido: IBizPedidoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPedidoCliente; function ElegirPedidos(APedido: IBizPedidoCliente; AMensaje: String; AMultiSelect: Boolean): IBizPedidoCliente;
procedure EnviarPedidoPorEMail(APedido: IBizPedidoCliente);
procedure GenerarEmailPedido(APedido: IBizPedidoCliente);
function EnviarEmailPedidos(APedidos : IBizPedidoCliente): Boolean;
function EnviarPedidoPorEMail(APedido: IBizPedidoCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
// Procedure AsignarIDObra(APedido: IBizPedidoCliente; const IDObra: Variant); // Procedure AsignarIDObra(APedido: IBizPedidoCliente; const IDObra: Variant);
// Procedure AsignarIDAlmacen(APedido: IBizPedidoCliente; const IDAlmacen: Variant); // Procedure AsignarIDAlmacen(APedido: IBizPedidoCliente; const IDAlmacen: Variant);
@ -150,10 +165,10 @@ implementation
uses uses
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorPedidosCliente, uDataModulePedidosCliente, uFactuGES_App, uIEditorPedidosCliente, uDataModulePedidosCliente, uFactuGES_App,
uBizContactos, uDataTableUtils, uDataModuleUsuarios, uBizContactos, uDataTableUtils, uDataModuleUsuarios, Forms, uDataModuleRegistroCorreos,
schPedidosClienteClient_Intf, uDAInterfaces, uPedidosClienteReportController, schPedidosClienteClient_Intf, uDAInterfaces, uPedidosClienteReportController,
uDateUtils, uIEditorPedidoCliente, uIEditorElegirPedidosCliente, uDateUtils, uIEditorPedidoCliente, uIEditorElegirPedidosCliente,
Dialogs, uIEditorDireccionEntregaPedidoCliente, Dialogs, uIEditorDireccionEntregaPedidoCliente, uIDialogListaPedidosClienteEnvioEMail,
Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils; Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils;
{ TPedidosClienteController } { TPedidosClienteController }
@ -562,6 +577,37 @@ begin
end; end;
end; end;
procedure TPedidosClienteController._AnadirMarcaEnvioCorreo(APedido: IBizPedidoCliente);
var
ASoloLectura : Boolean;
begin
if not Assigned(APedido) then
raise Exception.Create ('Pedido no asignada (_AnadirMarcaEnvioCorreo)');
if APedido.DataTable.Active then
APedido.DataTable.Active := True;
if AnadirMarcaEnvioCorreo(nme_PedidosCliente, APedido.ID) then
begin
DesconectarTabla(APedido.DataTable);
try
ASoloLectura := APedido.DataTable.ReadOnly;
if ASoloLectura then
SetDataTableReadOnly(APedido.DataTable, False);
try
APedido.Edit;
APedido.NUM_CORREOS := APedido.NUM_CORREOS + 1;
APedido.Post;
finally
if ASoloLectura then
SetDataTableReadOnly(APedido.DataTable, True);
end;
finally
ConectarTabla(APedido.DataTable);
end;
end;
end;
function TPedidosClienteController._Vacio: IBizPedidoCliente; function TPedidosClienteController._Vacio: IBizPedidoCliente;
begin begin
Result := Buscar(ID_NULO); Result := Buscar(ID_NULO);
@ -658,47 +704,113 @@ begin
end; end;
end; end;
procedure TPedidosClienteController.EnviarPedidoPorEMail( function TPedidosClienteController.EnviarEmailPedidos(
APedido: IBizPedidoCliente); APedidos: IBizPedidoCliente): Boolean;
var
ADialog : IDialogListaPedidosClienteEnvioEMail;
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('DialogListaPedidosClienteEnvioEMail', IDialogListaPedidosClienteEnvioEMail, 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 TPedidosClienteController.EnviarPedidoPorEMail(
APedido: IBizPedidoCliente; const AEnviarDirectamente: Boolean;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
var var
AReportController : IPedidosClienteReportController; AReportController : IPedidosClienteReportController;
AFicheroTMP : TFileName; AFicheroTMP : TFileName;
AEMail : String; AEMail : String;
AAsunto : String;
AListaEmail : TStringList; AListaEmail : TStringList;
begin begin
if not Assigned(APedido) then if not Assigned(APedido) then
raise Exception.Create ('Pedido no asignado (EnviarPedidoPorEMail)'); raise Exception.Create ('Pedido no asignada (EnviarPedidoPorEMail)');
if APedido.DataTable.Active then if APedido.DataTable.Active then
APedido.DataTable.Active := True; APedido.DataTable.Active := True;
RecuperarCliente(APedido);
APedido.Cliente.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APedido.REFERENCIA)); AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APedido.REFERENCIA));
AListaEmail := TStringList.Create; if not EsCadenaVacia(ADireccionEMail) then
try AEMail := ADireccionEMail
RecuperarCliente(APedido); else begin
APedido.Cliente.DataTable.Active := True; AListaEmail := TStringList.Create;
try
if not EsCadenaVacia(APedido.Cliente.EMAIL_ADMINISTRACION) then
AListaEmail.Add(APedido.Cliente.EMAIL_ADMINISTRACION);
if not APedido.Cliente.EMAIL_1IsNull then if not ElegirEMail(AListaEmail, AEMail) then
AListaEmail.Add(APedido.Cliente.EMAIL_1); Exit;
if not APedido.Cliente.EMAIL_2IsNull then finally
AListaEmail.Add(APedido.Cliente.EMAIL_2); FreeANDNIL(AListaEmail);
end;
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end; end;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Pedido ' + APedido.REFERENCIA;
ShowHourglassCursor; ShowHourglassCursor;
Application.ProcessMessages;
AReportController := TPedidosClienteReportController.Create; AReportController := TPedidosClienteReportController.Create;
try try
AReportController.ExportToPDF(APedido.ID, AFicheroTMP); AReportController.ExportToPDF(APedido.ID, AFicheroTMP);
EnviarEMailMAPI('Pedido ' + APedido.REFERENCIA, '', AFicheroTMP, '', '', APedido.Cliente.NOMBRE, AEMail); Result := EnviarEMailMAPI(AAsunto, ATextoEMail, AFicheroTMP, '', '', APedido.Cliente.NOMBRE, AEMail, AEnviarDirectamente);
if Result then
_AnadirMarcaEnvioCorreo(APedido);
finally finally
DeleteFile(AFicheroTMP); SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL; AReportController := NIL;
HideHourglassCursor; HideHourglassCursor;
Application.ProcessMessages;
end;
end;
procedure TPedidosClienteController.GenerarEmailPedido(
APedido: IBizPedidoCliente);
begin
if not Assigned(APedido) then
raise Exception.Create ('Pedidos no asignadas (GenerarEmailPedido)');
if APedido.DataTable.Active then
APedido.DataTable.Active := True;
ShowHourglassCursor;
try
RecuperarCliente(APedido);
EnviarPedidoPorEMail(APedido, False, APedido.Cliente.EMAIL_ADMINISTRACION);
finally
HideHourglassCursor;
end; end;
end; end;

View File

@ -14,4 +14,4 @@ END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Data\uDataModulePedidosCliente.dfm */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Data\uDataModulePedidosCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Data\PedidosCliente_data.RES */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Data\PedidosCliente_data.RES */
/* c:\temp\dtf275.tmp */ /* c:\temp\dtf8D.tmp */

View File

@ -13,4 +13,4 @@ BEGIN
END END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Model\PedidosCliente_model.RES */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Model\PedidosCliente_model.RES */
/* c:\temp\dtf273.tmp */ /* c:\temp\dtf8B.tmp */

View File

@ -21,6 +21,7 @@
<Projects Include="..\Contactos\Data\Contactos_data.dproj" /> <Projects Include="..\Contactos\Data\Contactos_data.dproj" />
<Projects Include="..\Contactos\Model\Contactos_model.dproj" /> <Projects Include="..\Contactos\Model\Contactos_model.dproj" />
<Projects Include="..\Contactos\Views\Contactos_view.dproj" /> <Projects Include="..\Contactos\Views\Contactos_view.dproj" />
<Projects Include="..\Facturas de cliente\Views\FacturasCliente_view.dproj" />
<Projects Include="..\Facturas de proveedor\Controller\FacturasProveedor_controller.dproj" /> <Projects Include="..\Facturas de proveedor\Controller\FacturasProveedor_controller.dproj" />
<Projects Include="..\Inventario\Controller\Inventario_controller.dproj" /> <Projects Include="..\Inventario\Controller\Inventario_controller.dproj" />
<Projects Include="..\Inventario\Data\Inventario_data.dproj" /> <Projects Include="..\Inventario\Data\Inventario_data.dproj" />
@ -301,14 +302,23 @@
<Target Name="AlbaranesProveedor_view:Make"> <Target Name="AlbaranesProveedor_view:Make">
<MSBuild Projects="..\Albaranes de proveedor\Views\AlbaranesProveedor_view.dproj" Targets="Make" /> <MSBuild Projects="..\Albaranes de proveedor\Views\AlbaranesProveedor_view.dproj" Targets="Make" />
</Target> </Target>
<Target Name="FacturasCliente_view">
<MSBuild Projects="..\Facturas de cliente\Views\FacturasCliente_view.dproj" Targets="" />
</Target>
<Target Name="FacturasCliente_view:Clean">
<MSBuild Projects="..\Facturas de cliente\Views\FacturasCliente_view.dproj" Targets="Clean" />
</Target>
<Target Name="FacturasCliente_view:Make">
<MSBuild Projects="..\Facturas de cliente\Views\FacturasCliente_view.dproj" Targets="Make" />
</Target>
<Target Name="Build"> <Target Name="Build">
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_model;Contactos_data;Contactos_controller;Contactos_view;Articulos_model;Articulos_data;Articulos_controller;Articulos_view;PedidosCliente_model;PedidosCliente_data;PedidosCliente_controller;AlbaranesProveedor_controller;Inventario_controller;PedProv_AlbProv_relation;PedCli_AlbCli_relation;PedCli_PedProv_relation;FacturasProveedor_controller;PedidosCliente_view;PedidosCliente_plugin;AlbaranesProveedor_data;AlbaranesCliente_data;FactuGES;FactuGES_Server;Inventario_data;Inventario_view;AlbaranesProveedor_view" /> <CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_model;Contactos_data;Contactos_controller;Contactos_view;Articulos_model;Articulos_data;Articulos_controller;Articulos_view;PedidosCliente_model;PedidosCliente_data;PedidosCliente_controller;AlbaranesProveedor_controller;Inventario_controller;PedProv_AlbProv_relation;PedCli_AlbCli_relation;PedCli_PedProv_relation;FacturasProveedor_controller;PedidosCliente_view;PedidosCliente_plugin;AlbaranesProveedor_data;AlbaranesCliente_data;FactuGES;FactuGES_Server;Inventario_data;Inventario_view;AlbaranesProveedor_view;FacturasCliente_view" />
</Target> </Target>
<Target Name="Clean"> <Target Name="Clean">
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_model:Clean;Contactos_data:Clean;Contactos_controller:Clean;Contactos_view:Clean;Articulos_model:Clean;Articulos_data:Clean;Articulos_controller:Clean;Articulos_view:Clean;PedidosCliente_model:Clean;PedidosCliente_data:Clean;PedidosCliente_controller:Clean;AlbaranesProveedor_controller:Clean;Inventario_controller:Clean;PedProv_AlbProv_relation:Clean;PedCli_AlbCli_relation:Clean;PedCli_PedProv_relation:Clean;FacturasProveedor_controller:Clean;PedidosCliente_view:Clean;PedidosCliente_plugin:Clean;AlbaranesProveedor_data:Clean;AlbaranesCliente_data:Clean;FactuGES:Clean;FactuGES_Server:Clean;Inventario_data:Clean;Inventario_view:Clean;AlbaranesProveedor_view:Clean" /> <CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_model:Clean;Contactos_data:Clean;Contactos_controller:Clean;Contactos_view:Clean;Articulos_model:Clean;Articulos_data:Clean;Articulos_controller:Clean;Articulos_view:Clean;PedidosCliente_model:Clean;PedidosCliente_data:Clean;PedidosCliente_controller:Clean;AlbaranesProveedor_controller:Clean;Inventario_controller:Clean;PedProv_AlbProv_relation:Clean;PedCli_AlbCli_relation:Clean;PedCli_PedProv_relation:Clean;FacturasProveedor_controller:Clean;PedidosCliente_view:Clean;PedidosCliente_plugin:Clean;AlbaranesProveedor_data:Clean;AlbaranesCliente_data:Clean;FactuGES:Clean;FactuGES_Server:Clean;Inventario_data:Clean;Inventario_view:Clean;AlbaranesProveedor_view:Clean;FacturasCliente_view:Clean" />
</Target> </Target>
<Target Name="Make"> <Target Name="Make">
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_model:Make;Contactos_data:Make;Contactos_controller:Make;Contactos_view:Make;Articulos_model:Make;Articulos_data:Make;Articulos_controller:Make;Articulos_view:Make;PedidosCliente_model:Make;PedidosCliente_data:Make;PedidosCliente_controller:Make;AlbaranesProveedor_controller:Make;Inventario_controller:Make;PedProv_AlbProv_relation:Make;PedCli_AlbCli_relation:Make;PedCli_PedProv_relation:Make;FacturasProveedor_controller:Make;PedidosCliente_view:Make;PedidosCliente_plugin:Make;AlbaranesProveedor_data:Make;AlbaranesCliente_data:Make;FactuGES:Make;FactuGES_Server:Make;Inventario_data:Make;Inventario_view:Make;AlbaranesProveedor_view:Make" /> <CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_model:Make;Contactos_data:Make;Contactos_controller:Make;Contactos_view:Make;Articulos_model:Make;Articulos_data:Make;Articulos_controller:Make;Articulos_view:Make;PedidosCliente_model:Make;PedidosCliente_data:Make;PedidosCliente_controller:Make;AlbaranesProveedor_controller:Make;Inventario_controller:Make;PedProv_AlbProv_relation:Make;PedCli_AlbCli_relation:Make;PedCli_PedProv_relation:Make;FacturasProveedor_controller:Make;PedidosCliente_view:Make;PedidosCliente_plugin:Make;AlbaranesProveedor_data:Make;AlbaranesCliente_data:Make;FactuGES:Make;FactuGES_Server:Make;Inventario_data:Make;Inventario_view:Make;AlbaranesProveedor_view:Make;FacturasCliente_view:Make" />
</Target> </Target>
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" /> <Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
</Project> </Project>

View File

@ -14,4 +14,4 @@ END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Plugin\uPluginPedidosCliente.dfm */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Plugin\uPluginPedidosCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Plugin\PedidosCliente_plugin.RES */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Plugin\PedidosCliente_plugin.RES */
/* c:\temp\dtf2DB.tmp */ /* c:\temp\dtfF3.tmp */

View File

@ -99,6 +99,7 @@ contains
uViewElegirArticulosPedidosCliente in 'uViewElegirArticulosPedidosCliente.pas' {frViewElegirArticulosPedidosCliente: TFrame}, uViewElegirArticulosPedidosCliente in 'uViewElegirArticulosPedidosCliente.pas' {frViewElegirArticulosPedidosCliente: TFrame},
uEditorDireccionEntregaPedidoCliente in 'uEditorDireccionEntregaPedidoCliente.pas' {frEditorDireccionEntregaPedidoCliente: TForm}, uEditorDireccionEntregaPedidoCliente in 'uEditorDireccionEntregaPedidoCliente.pas' {frEditorDireccionEntregaPedidoCliente: TForm},
uEditorElegirArticulosPedidoCliente in 'uEditorElegirArticulosPedidoCliente.pas' {frEditorElegirArticulosPedidoCliente: TForm}, uEditorElegirArticulosPedidoCliente in 'uEditorElegirArticulosPedidoCliente.pas' {frEditorElegirArticulosPedidoCliente: TForm},
uEditorPedidosClienteReport in 'uEditorPedidosClienteReport.pas' {frEditorPedidosClienteReport: T}; uEditorPedidosClienteReport in 'uEditorPedidosClienteReport.pas' {frEditorPedidosClienteReport: T},
uDialogListaPedidosClienteEnvioEMail in 'uDialogListaPedidosClienteEnvioEMail.pas' {frDialogListaPedidosClienteEnvioEMail: TForm};
end. end.

View File

@ -49,66 +49,70 @@
<DelphiCompile Include="PedidosCliente_view.dpk"> <DelphiCompile Include="PedidosCliente_view.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\..\Lib\adortl.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\adortl.dcp" />
<DCCReference Include="..\..\Lib\Almacenes_controller.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\Almacenes_controller.dcp" />
<DCCReference Include="..\..\Lib\Almacenes_model.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\Almacenes_model.dcp" />
<DCCReference Include="..\..\Lib\Articulos_view.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\Articulos_view.dcp" />
<DCCReference Include="..\..\Lib\bdertl.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\bdertl.dcp" />
<DCCReference Include="..\..\Lib\Contactos_controller.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\Contactos_controller.dcp" />
<DCCReference Include="..\..\Lib\Contactos_model.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\Contactos_model.dcp" />
<DCCReference Include="..\..\Lib\Contactos_view.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\Contactos_view.dcp" />
<DCCReference Include="..\..\Lib\cxDataD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\cxDataD11.dcp" />
<DCCReference Include="..\..\Lib\cxEditorsD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\cxEditorsD11.dcp" />
<DCCReference Include="..\..\Lib\cxExportD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\cxExportD11.dcp" />
<DCCReference Include="..\..\Lib\cxExtEditorsD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\cxExtEditorsD11.dcp" />
<DCCReference Include="..\..\Lib\cxGridD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\cxGridD11.dcp" />
<DCCReference Include="..\..\Lib\cxLibraryD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\cxLibraryD11.dcp" />
<DCCReference Include="..\..\Lib\cxPageControlD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\cxPageControlD11.dcp" />
<DCCReference Include="..\..\Lib\DataAbstract_Core_D11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\Lib\dbrtl.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dbrtl.dcp" />
<DCCReference Include="..\..\Lib\dclcxLibraryD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dclcxLibraryD11.dcp" />
<DCCReference Include="..\..\Lib\designide.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\designide.dcp" />
<DCCReference Include="..\..\Lib\dsnap.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dsnap.dcp" />
<DCCReference Include="..\..\Lib\dxComnD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dxComnD11.dcp" />
<DCCReference Include="..\..\Lib\dxCoreD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dxCoreD11.dcp" />
<DCCReference Include="..\..\Lib\dxGDIPlusD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dxGDIPlusD11.dcp" />
<DCCReference Include="..\..\Lib\dxLayoutControlD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dxLayoutControlD11.dcp" />
<DCCReference Include="..\..\Lib\dxPSCoreD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dxPSCoreD11.dcp" />
<DCCReference Include="..\..\Lib\dxPScxCommonD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dxPScxCommonD11.dcp" />
<DCCReference Include="..\..\Lib\dxPScxGrid6LnkD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dxPScxGrid6LnkD11.dcp" />
<DCCReference Include="..\..\Lib\dxPSLnksD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dxPSLnksD11.dcp" />
<DCCReference Include="..\..\Lib\dxThemeD11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\dxThemeD11.dcp" />
<DCCReference Include="..\..\Lib\fqb110.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\fqb110.dcp" />
<DCCReference Include="..\..\Lib\frx11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\frx11.dcp" />
<DCCReference Include="..\..\Lib\frxe11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\frxe11.dcp" />
<DCCReference Include="..\..\Lib\fs11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\fs11.dcp" />
<DCCReference Include="..\..\Lib\GestorInformes_controller.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\GestorInformes_controller.dcp" />
<DCCReference Include="..\..\Lib\GUIBase.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\GUIBase.dcp" />
<DCCReference Include="..\..\Lib\GUISDK_D11R.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\GUISDK_D11R.dcp" />
<DCCReference Include="..\..\Lib\Jcl.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\Jcl.dcp" />
<DCCReference Include="..\..\Lib\JclVcl.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\JclVcl.dcp" />
<DCCReference Include="..\..\Lib\JvCoreD11R.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\JvCoreD11R.dcp" />
<DCCReference Include="..\..\Lib\JvCtrlsD11R.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\JvCtrlsD11R.dcp" />
<DCCReference Include="..\..\Lib\JvPageCompsD11R.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\JvPageCompsD11R.dcp" />
<DCCReference Include="..\..\Lib\JvStdCtrlsD11R.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\..\Lib\JvSystemD11R.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\JvSystemD11R.dcp" />
<DCCReference Include="..\..\Lib\PedCli_AlbCli_relation.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\PedCli_AlbCli_relation.dcp" />
<DCCReference Include="..\..\Lib\PedCli_PedProv_relation.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\PedCli_PedProv_relation.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_controller.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\PedidosCliente_controller.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_model.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\PedidosCliente_model.dcp" />
<DCCReference Include="..\..\Lib\PngComponentsD10.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\PngComponentsD10.dcp" />
<DCCReference Include="..\..\Lib\PNG_D10.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\PNG_D10.dcp" />
<DCCReference Include="..\..\Lib\RemObjects_Core_D11.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\..\Lib\rtl.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\rtl.dcp" />
<DCCReference Include="..\..\Lib\tb2k_d10.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\tb2k_d10.dcp" />
<DCCReference Include="..\..\Lib\tbx_d10.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\tbx_d10.dcp" />
<DCCReference Include="..\..\Lib\vcl.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\vcl.dcp" />
<DCCReference Include="..\..\Lib\vclactnband.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\vclactnband.dcp" />
<DCCReference Include="..\..\Lib\vcldb.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\vcldb.dcp" />
<DCCReference Include="..\..\Lib\vcljpg.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\vcljpg.dcp" />
<DCCReference Include="..\..\Lib\vclshlctrls.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\vclshlctrls.dcp" />
<DCCReference Include="..\..\Lib\vclx.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\vclx.dcp" />
<DCCReference Include="..\..\Lib\xmlrtl.dcp" /> <DCCReference Include="..\..\Facturas de cliente\Views\xmlrtl.dcp" />
<DCCReference Include="uDialogListaPedidosClienteEnvioEMail.pas">
<Form>frDialogListaPedidosClienteEnvioEMail</Form>
<DesignClass>T</DesignClass>
</DCCReference>
<DCCReference Include="uDialogOpcionesImpresionPedidosCliente.pas"> <DCCReference Include="uDialogOpcionesImpresionPedidosCliente.pas">
<Form>fDialogOpcionesImpresionPedidosCliente</Form> <Form>fDialogOpcionesImpresionPedidosCliente</Form>
<DesignClass>TfEditorPedidosProveedor</DesignClass> <DesignClass>TfEditorPedidosProveedor</DesignClass>

View File

@ -21,8 +21,9 @@ END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uViewDetallesPedidoCliente.dfm */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uViewDetallesPedidoCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorPedidoCliente.dfm */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorPedidoCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorPedidosClienteReport.dfm */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorPedidosClienteReport.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uDialogListaPedidosClienteEnvioEMail.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uViewElegirArticulosPedidosCliente.dfm */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uViewElegirArticulosPedidosCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorElegirArticulosPedidoCliente.dfm */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorElegirArticulosPedidoCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorDireccionEntregaPedidoCliente.dfm */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorDireccionEntregaPedidoCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\PedidosCliente_view.RES */ /* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\PedidosCliente_view.RES */
/* c:\temp\dtf2D9.tmp */ /* c:\temp\dtfF1.tmp */

View File

@ -0,0 +1,97 @@
inherited fDialogListaPedidosClienteEnvioEMail: TfDialogListaPedidosClienteEnvioEMail
Caption = 'Enviar pedidos por correo electr'#243'nico'
ClientHeight = 490
ClientWidth = 665
ExplicitWidth = 671
ExplicitHeight = 522
PixelsPerInch = 96
TextHeight = 13
inherited Bevel2: TBevel
Width = 665
ExplicitWidth = 627
end
inherited Bevel3: TBevel
Top = 446
Width = 665
ExplicitTop = 466
ExplicitWidth = 627
end
inherited pnlBotones: TPanel
Top = 448
Width = 665
ExplicitTop = 448
ExplicitWidth = 665
inherited btnAceptar: TButton
Left = 482
Width = 100
ExplicitLeft = 482
ExplicitWidth = 100
end
inherited btnCancelar: TButton
Left = 586
ExplicitLeft = 586
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 = 380
ExplicitWidth = 665
ExplicitHeight = 380
end
inherited ListView1: TListView
Width = 665
Height = 380
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 = 380
end
inherited ActionList1: TActionList
Top = 352
inherited actAceptar: TAction
Caption = '&Generar correos'
OnExecute = actAceptarExecute
OnUpdate = actAceptarUpdate
end
inherited actCancelar: TAction
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,157 @@
unit uDialogListaPedidosClienteEnvioEMail;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls,
uDialogListaEnvioEMail, uIDialogListaPedidosClienteEnvioEMail, uPedidosClienteController,
uBizPedidosCliente;
type
TfDialogListaPedidosClienteEnvioEMail = class(TfDialogListaEnvioEMail, IDialogListaPedidosClienteEnvioEMail)
procedure actCancelarExecute(Sender: TObject);
procedure actAceptarUpdate(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
private
FPedidos : IBizPedidoCliente;
FController : IPedidosClienteController;
protected
function GetPedidos: IBizPedidoCliente;
procedure SetPedidos(const Value: IBizPedidoCliente);
procedure RellenarLista;
procedure BorrarLista;
public
constructor Create(AOwner: TComponent); override;
property Pedidos: IBizPedidoCliente read GetPedidos write SetPedidos;
end;
implementation
uses
schPedidosClienteClient_Intf, uStringsUtils, cxControls;
{$R *.dfm}
{ TfDialogListaPedidosEnvioEMail }
procedure TfDialogListaPedidosClienteEnvioEMail.actAceptarExecute(Sender: TObject);
var
i : Integer;
begin
ShowHourglassCursor;
Application.ProcessMessages;
try
FPedidos.First;
FController.RecuperarCliente(FPedidos);
FPedidos.Cliente.DataTable.Active := True;
try
for i := 0 to FPedidos.DataTable.RecordCount - 1 do
begin
if not EsCadenaVacia(FPedidos.Cliente.EMAIL_ADMINISTRACION) then
begin
if FController.EnviarPedidoPorEMail(FPedidos, True, FPedidos.Cliente.EMAIL_ADMINISTRACION) 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;
FPedidos.Next;
FController.RecuperarCliente(FPedidos);
FPedidos.Cliente.DataTable.Active := True;
end;
btnAceptar.Enabled := False;
finally
ListView1.Items.EndUpdate;
end;
finally
HideHourglassCursor;
end;
btnCancelar.SetFocus;
end;
procedure TfDialogListaPedidosClienteEnvioEMail.actAceptarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ListView1.Items.Count > 0)
end;
procedure TfDialogListaPedidosClienteEnvioEMail.actCancelarExecute(Sender: TObject);
begin
inherited;
ModalResult := mrOk;
end;
procedure TfDialogListaPedidosClienteEnvioEMail.BorrarLista;
begin
ListView1.Items.Clear;
end;
constructor TfDialogListaPedidosClienteEnvioEMail.Create(AOwner: TComponent);
begin
inherited;
ModalResult := mrCancel;
FController := TPedidosClienteController.Create;
end;
function TfDialogListaPedidosClienteEnvioEMail.GetPedidos: IBizPedidoCliente;
begin
Result := FPedidos;
end;
procedure TfDialogListaPedidosClienteEnvioEMail.RellenarLista;
var
i : Integer;
begin
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
FPedidos.First;
FPedidos.DataTable.DisableControls;
try
for i := 0 to FPedidos.DataTable.RecordCount - 1 do
begin
FController.RecuperarCliente(FPedidos);
FPedidos.Cliente.DataTable.Active := True;
with ListView1.Items.Add do
begin
Caption := FPedidos.REFERENCIA;
SubItems.Add(FPedidos.NOMBRE);
SubItems.Add(FPedidos.Cliente.EMAIL_ADMINISTRACION);
if EsCadenaVacia(FPedidos.Cliente.EMAIL_ADMINISTRACION) then
SubItems.Add('Sin dirección e-mail administrativa')
else
SubItems.Add('')
end;
FPedidos.Next;
end;
finally
FPedidos.DataTable.EnableControls;
ListView1.Items.EndUpdate;
end;
end;
procedure TfDialogListaPedidosClienteEnvioEMail.SetPedidos(const Value: IBizPedidoCliente);
begin
FPedidos := Value;
if Assigned(FPedidos) then
begin
FPedidos.DataTable.Open;
RellenarLista;
end
else
BorrarLista;
end;
end.

View File

@ -5,6 +5,7 @@ inherited fEditorPedidosCliente: TfEditorPedidosCliente
ClientWidth = 700 ClientWidth = 700
Position = poDesigned Position = poDesigned
ExplicitWidth = 708 ExplicitWidth = 708
ExplicitHeight = 240
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader inherited JvNavPanelHeader: TJvNavPanelHeader
@ -148,36 +149,34 @@ inherited fEditorPedidosCliente: TfEditorPedidosCliente
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 799
Width = 799
end end
inherited edtFechaIniFiltro: TcxDateEdit inherited edtFechaIniFiltro: TcxDateEdit
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 243 ExplicitWidth = 167
Width = 243 Width = 167
end end
inherited edtFechaFinFiltro: TcxDateEdit inherited edtFechaFinFiltro: TcxDateEdit
Left = 229 Left = 233
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 229 ExplicitLeft = 233
ExplicitWidth = 482 ExplicitWidth = 365
Width = 482 Width = 365
end end
inherited eLista: TcxComboBox inherited eLista: TcxComboBox
Left = 566 Left = 577
Style.LookAndFeel.SkinName = '' Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 566 ExplicitLeft = 577
ExplicitWidth = 215 ExplicitWidth = 140
Width = 215 Width = 140
end end
end end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel inherited TBXAlignmentPanel1: TTBXAlignmentPanel

View File

@ -85,7 +85,7 @@ uses
uDataModulePedidosCliente, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase, uDataModulePedidosCliente, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase,
// uGenerarFacturasProvPedUtils, // uGenerarFacturasProvPedUtils,
// uInventarioController, uBizInventario, // uInventarioController, uBizInventario,
uDialogUtils, uGridStatusUtils, uDBSelectionListUtils, uDialogUtils, uGridStatusUtils, uDBSelectionListUtils, cxControls,
uDialogOpcionesImpresionPedidosCliente, uGestorInformesController, uDialogOpcionesImpresionPedidosCliente, uGestorInformesController,
// uAlbaranesProveedorController, uBizAlbaranesProveedor, // uAlbaranesProveedorController, uBizAlbaranesProveedor,
uGenerarAlbaranesCliUtils, uGenerarPedidosProvUtils; uGenerarAlbaranesCliUtils, uGenerarPedidosProvUtils;
@ -111,9 +111,27 @@ begin
end; end;
procedure TfEditorPedidosCliente.actEnviarEMailExecute(Sender: TObject); procedure TfEditorPedidosCliente.actEnviarEMailExecute(Sender: TObject);
var
APedidos : IBizPedidoCliente;
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 IPedidosClienteController).ExtraerSeleccionados(Pedidos) as IBizPedidoCliente;
if Assigned(APedidos) then
if FController.EnviarEmailPedidos(APedidos) then
RefrescarInterno;
finally
APedidos := NIL;
HideHourglassCursor;
end;
end;
end; end;
procedure TfEditorPedidosCliente.actEnviarEMailUpdate(Sender: TObject); procedure TfEditorPedidosCliente.actEnviarEMailUpdate(Sender: TObject);

View File

@ -12,6 +12,7 @@ uses
uEditorPedidosCliente, uEditorPedidosCliente,
uEditorPedidoCliente, uEditorPedidoCliente,
uEditorPedidosClienteReport, uEditorPedidosClienteReport,
uDialogListaPedidosClienteEnvioEMail,
// uEditorElegirPedidosCliente, // uEditorElegirPedidosCliente,
uEditorElegirArticulosPedidoCliente, uEditorElegirArticulosPedidoCliente,
uEditorDireccionEntregaPedidoCliente; uEditorDireccionEntregaPedidoCliente;
@ -26,6 +27,8 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirArticulosPedidoCliente, 'EditorElegirArticulosPedidoCliente'); EditorRegistry.RegisterClass(TfEditorElegirArticulosPedidoCliente, 'EditorElegirArticulosPedidoCliente');
EditorRegistry.RegisterClass(TfEditorPedidosClientePreview, 'EditorPedidosClientePreview'); EditorRegistry.RegisterClass(TfEditorPedidosClientePreview, 'EditorPedidosClientePreview');
// EditorRegistry.RegisterClass(TfEditorSituacionPedidoCliente, 'EditorSituacionPedidoCliente'); // EditorRegistry.RegisterClass(TfEditorSituacionPedidoCliente, 'EditorSituacionPedidoCliente');
EditorRegistry.RegisterClass(TfDialogListaPedidosClienteEnvioEMail, 'DialogListaPedidosClienteEnvioEMail');
end; end;
procedure UnregisterViews; procedure UnregisterViews;
@ -36,6 +39,7 @@ begin
// EditorRegistry.UnRegisterClass(TfEditorElegirPedidosCliente); // EditorRegistry.UnRegisterClass(TfEditorElegirPedidosCliente);
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoCliente); EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoCliente);
EditorRegistry.UnRegisterClass(TfEditorPedidosClientePreview); EditorRegistry.UnRegisterClass(TfEditorPedidosClientePreview);
EditorRegistry.UnRegisterClass(TfDialogListaPedidosClienteEnvioEMail);
// EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoCliente); // EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoCliente);
end; end;

View File

@ -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>{c8b2fb9a-0367-4fd0-b836-4b594c06bcab}</ProjectGuid> <ProjectGuid>{c8b2fb9a-0367-4fd0-b836-4b594c06bcab}</ProjectGuid>
<MainSource>RecibosCliente_controller.dpk</MainSource> <MainSource>RecibosCliente_controller.dpk</MainSource>
@ -39,60 +40,21 @@
<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 xmlns=""> <Delphi.Personality> <Parameters> <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">RecibosCliente_controller.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
<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">RecibosCliente_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="RecibosCliente_controller.dpk"> <DelphiCompile Include="RecibosCliente_controller.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\..\Lib\Base.dcp" />
<DCCReference Include="..\..\Lib\Contactos_controller.dcp" />
<DCCReference Include="..\..\Lib\RecibosCliente_data.dcp" />
<DCCReference Include="..\..\Lib\RecibosCliente_model.dcp" />
<DCCReference Include="uPagosClienteController.pas" /> <DCCReference Include="uPagosClienteController.pas" />
<DCCReference Include="uRecibosClienteController.pas" /> <DCCReference Include="uRecibosClienteController.pas" />
<DCCReference Include="uRecibosClienteReportController.pas" /> <DCCReference Include="uRecibosClienteReportController.pas" />
<DCCReference Include="View\Base.dcp" />
<DCCReference Include="View\Contactos_controller.dcp" />
<DCCReference Include="View\RecibosCliente_data.dcp" />
<DCCReference Include="View\RecibosCliente_model.dcp" />
<DCCReference Include="View\uIDialogListaRecibosClienteEnvioEMail.pas" />
<DCCReference Include="View\uIEditorElegirRecibosCliente.pas" /> <DCCReference Include="View\uIEditorElegirRecibosCliente.pas" />
<DCCReference Include="View\uIEditorFechaPago.pas" /> <DCCReference Include="View\uIEditorFechaPago.pas" />
<DCCReference Include="View\uIEditorReciboCliente.pas" /> <DCCReference Include="View\uIEditorReciboCliente.pas" />
@ -100,10 +62,9 @@
<DCCReference Include="View\uIEditorRecibosClientePreview.pas" /> <DCCReference Include="View\uIEditorRecibosClientePreview.pas" />
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line
[Exception Log] [Exception Log]
EurekaLog Version=6006 EurekaLog Version=6011
Activate=0 Activate=0
Activate Handle=1 Activate Handle=1
Save Log File=1 Save Log File=1

View File

@ -0,0 +1,21 @@
unit uIDialogListaRecibosClienteEnvioEMail;
interface
uses
uBizRecibosCliente, uRecibosClienteController;
type
IDialogListaRecibosClienteEnvioEMail = interface
['{754151BC-5D5F-4B22-A179-DFF7A8710160}']
function GetRecibos: IBizRecibosCliente;
procedure SetRecibos(const Value: IBizRecibosCliente);
property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -81,6 +81,13 @@ type
procedure Preview(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false); procedure Preview(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false);
function Print(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false): Boolean; function Print(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false): Boolean;
procedure GenerarEmailRecibo(ARecibo : IBizRecibosCliente);
function EnviarEmailRecibos(ARecibos : IBizRecibosCliente): Boolean;
function EnviarReciboPorEMail(ARecibo: IBizRecibosCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function DarListaAnosRecibos: TStringList; function DarListaAnosRecibos: TStringList;
procedure FiltrarAno(ARecibo: IBizRecibosCliente; ADynWhereDataTable: WideString; const Ano: String); procedure FiltrarAno(ARecibo: IBizRecibosCliente; ADynWhereDataTable: WideString; const Ano: String);
end; end;
@ -92,6 +99,8 @@ type
procedure FiltrarEmpresa(ARecibo: IBizRecibosCliente); procedure FiltrarEmpresa(ARecibo: IBizRecibosCliente);
procedure _AnadirMarcaEnvioCorreo(ARecibo: IBizRecibosCliente);
protected protected
FDataModule : IDataModuleRecibosCliente; FDataModule : IDataModuleRecibosCliente;
FPagosController : IPagosClienteController; FPagosController : IPagosClienteController;
@ -151,6 +160,13 @@ type
procedure Preview(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false); procedure Preview(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false);
function Print(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false): Boolean; function Print(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false): Boolean;
procedure GenerarEmailRecibo(ARecibo : IBizRecibosCliente);
function EnviarEmailRecibos(ARecibos : IBizRecibosCliente): Boolean;
function EnviarReciboPorEMail(ARecibo: IBizRecibosCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function DarListaAnosRecibos: TStringList; function DarListaAnosRecibos: TStringList;
procedure FiltrarAno(ARecibo: IBizRecibosCliente; ADynWhereDataTable: WideString; const Ano: String); procedure FiltrarAno(ARecibo: IBizRecibosCliente; ADynWhereDataTable: WideString; const Ano: String);
end; end;
@ -159,12 +175,12 @@ implementation
uses uses
Forms, uNumUtils, cxControls, DB, uEditorRegistryUtils, Dialogs, Forms, uNumUtils, cxControls, DB, uEditorRegistryUtils, Dialogs,
uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, uDataModuleRegistroCorreos,
uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants, uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants, uIDialogListaRecibosClienteEnvioEMail,
uRecibosClienteReportController, uBizContactos, uDADelta, uIntegerListUtils, uRecibosClienteReportController, uBizContactos, uDADelta, uIntegerListUtils,
schRecibosClienteClient_Intf, uIEditorRecibosCliente, uIEditorReciboCliente, schRecibosClienteClient_Intf, uIEditorRecibosCliente, uIEditorReciboCliente,
uIEditorElegirRecibosCliente, uDataModuleRecibosCliente, uIEditorFechaPago, uIEditorElegirRecibosCliente, uDataModuleRecibosCliente, uIEditorFechaPago,
uStringsUtils; uSistemaFunc, uDialogElegirEMail, uEMailUtils, uStringsUtils;
{ TRecibosClienteController } { TRecibosClienteController }
@ -466,6 +482,37 @@ begin
end; end;
end; end;
procedure TRecibosClienteController._AnadirMarcaEnvioCorreo(ARecibo: IBizRecibosCliente);
var
ASoloLectura : Boolean;
begin
if not Assigned(ARecibo) then
raise Exception.Create ('Recibo no asignada (_AnadirMarcaEnvioCorreo)');
if ARecibo.DataTable.Active then
ARecibo.DataTable.Active := True;
if AnadirMarcaEnvioCorreo(nme_RecibosCliente, ARecibo.ID) then
begin
DesconectarTabla(ARecibo.DataTable);
try
ASoloLectura := ARecibo.DataTable.ReadOnly;
if ASoloLectura then
SetDataTableReadOnly(ARecibo.DataTable, False);
try
ARecibo.Edit;
ARecibo.NUM_CORREOS := ARecibo.NUM_CORREOS + 1;
ARecibo.Post;
finally
if ASoloLectura then
SetDataTableReadOnly(ARecibo.DataTable, True);
end;
finally
ConectarTabla(ARecibo.DataTable);
end;
end;
end;
function TRecibosClienteController._Vacio: IBizRecibosCliente; function TRecibosClienteController._Vacio: IBizRecibosCliente;
begin begin
Result := Buscar(ID_NULO); Result := Buscar(ID_NULO);
@ -708,11 +755,119 @@ begin
end; end;
end; end;
function TRecibosClienteController.EnviarEmailRecibos(ARecibos: IBizRecibosCliente): Boolean;
var
ADialog : IDialogListaRecibosClienteEnvioEMail;
ARespuesta : Integer;
begin
ADialog := NIL;
if not Assigned(ARecibos) then
raise Exception.Create ('Recibos no asignadas (EnviarRecibosPorEMail)');
if ARecibos.DataTable.Active then
ARecibos.DataTable.Active := True;
ShowHourglassCursor;
try
CreateEditor('DialogListaRecibosClienteEnvioEMail', IDialogListaRecibosClienteEnvioEMail, ADialog);
if Assigned(ADialog) then
begin
try
ADialog.Recibos := ARecibos;
ARespuesta := ADialog.ShowModal;
Result := (ARespuesta = mrOK)
finally
ADialog.Release;
end;
end;
finally
ADialog := NIL;
HideHourglassCursor;
end;
end;
function TRecibosClienteController.EnviarReciboPorEMail(
ARecibo: IBizRecibosCliente; const AEnviarDirectamente: Boolean;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
var
AReportController : IRecibosClienteReportController;
AFicheroTMP : TFileName;
AEMail : String;
AAsunto : String;
AListaEmail : TStringList;
begin
if not Assigned(ARecibo) then
raise Exception.Create ('Recibo no asignada (EnviarReciboPorEMail)');
if ARecibo.DataTable.Active then
ARecibo.DataTable.Active := True;
RecuperarCliente(ARecibo);
ARecibo.Cliente.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(ARecibo.REFERENCIA));
if not EsCadenaVacia(ADireccionEMail) then
AEMail := ADireccionEMail
else begin
AListaEmail := TStringList.Create;
try
if not EsCadenaVacia(ARecibo.Cliente.EMAIL_ADMINISTRACION) then
AListaEmail.Add(ARecibo.Cliente.EMAIL_ADMINISTRACION);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
end;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Factura ' + ARecibo.REFERENCIA;
ShowHourglassCursor;
Application.ProcessMessages;
AReportController := TRecibosClienteReportController.Create;
try
AReportController.ExportToPDF(ARecibo.ID, AFicheroTMP);
Result := EnviarEMailMAPI(AAsunto, ATextoEMail, AFicheroTMP, '', '', ARecibo.Cliente.NOMBRE, AEMail, AEnviarDirectamente);
if Result then
_AnadirMarcaEnvioCorreo(ARecibo);
finally
SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL;
HideHourglassCursor;
Application.ProcessMessages;
end;
end;
procedure TRecibosClienteController.RecuperarCliente(AReciboCliente: IBizRecibosCliente); procedure TRecibosClienteController.RecuperarCliente(AReciboCliente: IBizRecibosCliente);
begin begin
AReciboCliente._Cliente := (FClienteController.Buscar(AReciboCliente.ID_Cliente) as IBizCliente); AReciboCliente._Cliente := (FClienteController.Buscar(AReciboCliente.ID_Cliente) as IBizCliente);
end; end;
procedure TRecibosClienteController.GenerarEmailRecibo(ARecibo: IBizRecibosCliente);
begin
if not Assigned(ARecibo) then
raise Exception.Create ('Recibos no asignadas (GenerarEmailRecibo)');
if ARecibo.DataTable.Active then
ARecibo.DataTable.Active := True;
ShowHourglassCursor;
try
RecuperarCliente(ARecibo);
EnviarReciboPorEMail(ARecibo, False, ARecibo.Cliente.EMAIL_ADMINISTRACION);
finally
HideHourglassCursor;
end;
end;
function TRecibosClienteController.GetPagosController: IPagosClienteController; function TRecibosClienteController.GetPagosController: IPagosClienteController;
begin begin
Result := FPagosController; Result := FPagosController;

View File

@ -11,6 +11,7 @@ type
['{3837DFA3-0A38-4BB2-B0DB-D0615249EA49}'] ['{3837DFA3-0A38-4BB2-B0DB-D0615249EA49}']
procedure Preview(const ListaID : TIntegerList); procedure Preview(const ListaID : TIntegerList);
function Print(const ListaID : TIntegerList): Boolean; function Print(const ListaID : TIntegerList): Boolean;
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end; end;
TRecibosClienteReportController = class(TControllerBase, IRecibosClienteReportController) TRecibosClienteReportController = class(TControllerBase, IRecibosClienteReportController)
@ -23,6 +24,7 @@ type
procedure Preview(const ListaID : TIntegerList); procedure Preview(const ListaID : TIntegerList);
function Print(const ListaID : TIntegerList): Boolean; function Print(const ListaID : TIntegerList): Boolean;
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end; end;
@ -55,6 +57,28 @@ begin
inherited; inherited;
end; end;
function TRecibosClienteReportController.ExportToPDF(const AID: Integer; const AFileName: String): Boolean;
var
AStream: Binary;
begin
Result := False;
if EsCadenaVacia(AFileName) then
Exit;
ShowHourglassCursor;
try
// AStream := FDataModule.GetRptPDFRecibo(AID);
try
AStream.SaveToFile(AFileName);
Result := True;
finally
FreeAndNil(AStream);
end;
finally
HideHourglassCursor;
end;
end;
procedure TRecibosClienteReportController.Preview(const ListaID : TIntegerList); procedure TRecibosClienteReportController.Preview(const ListaID : TIntegerList);
var var
AStream: Binary; AStream: Binary;

View File

@ -14,4 +14,4 @@ END
/* C:\Codigo\Source\Modulos\Tienda web\Data\uDataModuleTiendaWeb.dfm */ /* C:\Codigo\Source\Modulos\Tienda web\Data\uDataModuleTiendaWeb.dfm */
/* C:\Codigo\Source\Modulos\Tienda web\Data\TiendaWeb_data.res */ /* C:\Codigo\Source\Modulos\Tienda web\Data\TiendaWeb_data.res */
/* c:\temp\dtf28D.tmp */ /* c:\temp\dtfA5.tmp */

View File

@ -181,8 +181,8 @@ object srvTiendaWeb: TsrvTiendaWeb
'ompany, '#10' entry_firstname, entry_lastname, entry_street_addre' + 'ompany, '#10' entry_firstname, entry_lastname, entry_street_addre' +
'ss, '#10' entry_suburb, entry_postcode, entry_city, entry_state, ' + 'ss, '#10' entry_suburb, entry_postcode, entry_city, entry_state, ' +
#10' entry_country_id, entry_zone_id, entry_telephone,'#10' rdx_a' + #10' entry_country_id, entry_zone_id, entry_telephone,'#10' rdx_a' +
'ddress_book_id_local'#10' FROM'#10' address_book'#10' WHERE {where} and' + 'ddress_book_id_local'#10' FROM'#10' address_book'#10' WHERE {where}'#10' a' +
' customers_id = :customers_id'#10 'nd customers_id = :customers_id'#10
StatementType = stSQL StatementType = stSQL
ColumnMappings = < ColumnMappings = <
item item

View File

@ -39,57 +39,17 @@
<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 xmlns=""> <Delphi.Personality> <Parameters> <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">TiendaWeb_view.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
<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">TiendaWeb_view.dpk</Source>
</Source>
</Delphi.Personality> </BorlandProject></BorlandProject>
</ProjectExtensions> </ProjectExtensions>
<ItemGroup /> <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup> <ItemGroup>
<DelphiCompile Include="TiendaWeb_view.dpk"> <DelphiCompile Include="TiendaWeb_view.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\..\Lib\Base.dcp" /> <DCCReference Include="..\Base.dcp" />
<DCCReference Include="..\..\Lib\GUIBase.dcp" /> <DCCReference Include="..\GUIBase.dcp" />
<DCCReference Include="..\..\Lib\TiendaWeb_controller.dcp" /> <DCCReference Include="..\TiendaWeb_controller.dcp" />
<DCCReference Include="..\..\Lib\TiendaWeb_model.dcp" /> <DCCReference Include="..\TiendaWeb_model.dcp" />
<DCCReference Include="uEditorActualizarTiendaWeb.pas"> <DCCReference Include="uEditorActualizarTiendaWeb.pas">
<Form>fEditorActualizarTiendaWeb</Form> <Form>fEditorActualizarTiendaWeb</Form>
</DCCReference> </DCCReference>
@ -99,9 +59,7 @@
</DCCReference> </DCCReference>
<DCCReference Include="uTiendaWebViewRegister.pas" /> <DCCReference Include="uTiendaWebViewRegister.pas" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line
[Exception Log] [Exception Log]
EurekaLog Version=6011 EurekaLog Version=6011

View File

@ -1,37 +1,46 @@
inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb
Caption = 'Contenidos a actualizar' Caption = 'Contenidos a actualizar'
ClientHeight = 425 ClientHeight = 277
ClientWidth = 638 ClientWidth = 474
ExplicitWidth = 644 ExplicitWidth = 480
ExplicitHeight = 457 ExplicitHeight = 309
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
inherited Bevel2: TBevel inherited Bevel2: TBevel
Width = 638 Width = 474
ExplicitWidth = 425 ExplicitWidth = 425
end end
inherited Bevel3: TBevel inherited Bevel3: TBevel
Top = 381 Top = 233
Width = 638 Width = 474
ExplicitTop = 381 ExplicitTop = 381
ExplicitWidth = 425 ExplicitWidth = 425
end end
inherited pnlBotones: TPanel inherited pnlBotones: TPanel
Top = 383 Top = 235
Width = 638 Width = 474
ExplicitTop = 383 ExplicitTop = 383
ExplicitWidth = 425 ExplicitWidth = 638
inherited btnAceptar: TButton
Left = 312
ExplicitLeft = 312
end
inherited btnCancelar: TButton
Left = 391
ExplicitLeft = 391
end
end end
inherited pnlHeader: TPanel inherited pnlHeader: TPanel
Width = 638 Width = 474
ExplicitWidth = 425 ExplicitWidth = 638
inherited lblInstruccion: TLabel inherited lblInstruccion: TLabel
Width = 588 Width = 424
Caption = 'Elija el contenido a actualizar' Caption = 'Elija el contenido a actualizar'
ExplicitWidth = 164 ExplicitWidth = 164
end end
inherited Label2: TLabel inherited Label2: TLabel
Width = 563 Width = 399
Height = 27
Caption = Caption =
'Elija qu'#233' informaci'#243'n de FactuGES desea actualizar en la tienda ' + 'Elija qu'#233' informaci'#243'n de FactuGES desea actualizar en la tienda ' +
'web.' 'web.'
@ -39,20 +48,104 @@ inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb
end end
end end
inherited pnlCuerpo: TPanel inherited pnlCuerpo: TPanel
Width = 638 Width = 474
Height = 315 Height = 167
ExplicitWidth = 425 ExplicitWidth = 638
ExplicitHeight = 315 ExplicitHeight = 315
object ListView1: TListView object Label1: TLabel
Left = 8 Left = 69
Top = 16 Top = 55
Width = 605 Width = 277
Height = 281 Height = 13
Columns = <> Caption = 'Actualiza los clientes con acceso permitido a la tienda web'
end
object Image1: TImage
Left = 110
Top = 29
Width = 16
Height = 20
Picture.Data = {
0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000010
0000001008060000001FF3FF61000000017352474200AECE1CE9000000046741
4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000
80E8000075300000EA6000003A98000017709CBA513C00000009704859730000
17110000171101CA26F33F000001CD49444154384FA593CB4B546118C6C73FA0
95FB961384B7390B571564428BC490C88C460261A02090A845EDDCB81235BCB4
481D8E32CE98055E20C20CAD598897C60B72B0D4F188979A066FD974D4D3E82F
BF0F66F2C310725E78E083EF3CBFF7795FBE93063852AA9E418354E410E644C5
A2E34442ED52E27CB4F60F0ED8B3E3C4AC3D36B72DA21B3F715DBD4F12200C0B
6FCA3002A50CD45D2350A9F1757E48327EC7F779A4EF28AA6F7BFB1710B76384
3F3C21A41733DA72A8E61BF457E74B88305BBB363F623BAC6FFD22B2B6CD7264
1305605BDF31BAEF60F8DD985D1E96BACAF8EC2B918084F9C404B6B586D9F780
D55E0FAB3D1ECCD77799692B66C07BEF586773659DD9C5A89A40CC291617EE2C
25FCD2CD17DF2D3EBD2862F49DAEC44E988DB96FC701C1701F7ACB75869B6E12
7C5E486D4D219DC18EE4CC47CD93332B2A201499E072A080EC864C9EBD7A488D
BF1C575D0E67CAD3E5C284D9FDB85591B2C4A7EF2BC86ACCC3E977A135E5A279
733917D0C868BC24216266115B741E9B5E6268C254131475DC26BB2A9F0CFD02
4E9F86B3FDD0ECBD4856F5150910E613139CAD382F3FFC97C4DDB8B1CCC8D4A2
ECFC716C9EC191393581789A62A6FF55F2298BC369E510BF732AFA030F32BF8A
1940D9410000000049454E44AE426082}
Transparent = True
end
object Image2: TImage
Left = 133
Top = 86
Width = 17
Height = 19
Picture.Data = {
0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000010
0000001008060000001FF3FF61000000017352474200AECE1CE9000000046741
4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000
80E8000075300000EA6000003A98000017709CBA513C00000009704859730000
17110000171101CA26F33F000001C949444154384FA593CD4B545118C6A73FC0
FF205AEA66D469C45C079A0BC1905083460461A02090B085EEDCB412952C5B68
0E373F6614C1C64584159A2EC4514713B968E974C58F1A074DB3F19AD7D15F73
0ECCE841116C5EF8C181739FE77DDE9773AF01B6946A704427156C429CA86864
8670B04722CE67EBF8E484432B46D43C6467CF24F2EB0F370B1F91341082EFEF
AAD07D150CB714E17BE6E4C7F2B8F4388A1D53A31D28BCE87C7F6A10B3A2843E
D712D4CA98EC88F3FA1E1F1BF3A589109B7F2D7E470FD8DEDD27BCB5C75A7807
C5C03237D1FD0FD0BD2E8CB76E5607AA58ECBA2F0D12E24B1358E616C6D06336
06DD6CF8DD18FD952C749631EC7978AEB3B1BECDB795889A40CC291617EAAB88
E3E26B7739D36D254C7ED094D809B1BEF4F3BC41682880D6719789F652C65E15
D3DC54CC58AF3F39F359F1978575D5201C9CC377BB88979905F4373FC1FBBC9A
16C71DAAD3AECB8509B1EBE91B0565899FEAEA69CD72E04DBF45BB331F8FB300
5F461EAD76873411338BD8A2F3D4FC2AE3B3869AA0B7C44583231BCD9E4B777A
2E3D713CF61C1AB3B3A481105F9AA0FE4686FCF022C4DD8CBE46606E45761E9D
5A6624B0A426104F53CC7455924F591CFE179BF89D53E11F96DABFE183CE91E1
0000000049454E44AE426082}
Transparent = True
end
object Label3: TLabel
Left = 69
Top = 113
Width = 289
Height = 13
Caption = 'Actualizar los proveedores de la tienda web y sus art'#237'culos'
end
object cbClientes: TCheckBox
Left = 50
Top = 32
Width = 55
Height = 17
Caption = 'Clientes'
Checked = True
State = cbChecked
TabOrder = 0 TabOrder = 0
end end
object cbProveedores: TCheckBox
Left = 50
Top = 88
Width = 79
Height = 17
Caption = 'Proveedores'
Checked = True
State = cbChecked
TabOrder = 1
end
end end
inherited ActionList1: TActionList inherited ActionList1: TActionList
Left = 392
Top = 96
inherited actAceptar: TAction inherited actAceptar: TAction
Caption = '&Actualizar' Caption = '&Actualizar'
OnExecute = actAceptarExecute OnExecute = actAceptarExecute
@ -62,7 +155,7 @@ inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb
OnExecute = actCancelarExecute OnExecute = actCancelarExecute
end end
end end
object PngImageList1: TPngImageList object img: TPngImageList
Height = 24 Height = 24
Width = 24 Width = 24
PngImages = < PngImages = <
@ -244,8 +337,8 @@ inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb
Name = 'PngImage2' Name = 'PngImage2'
Background = clWindow Background = clWindow
end> end>
Left = 48 Left = 432
Top = 384 Top = 80
Bitmap = {} Bitmap = {}
end end
end end

View File

@ -7,12 +7,17 @@ uses
Dialogs, ActnList, StdCtrls, ExtCtrls, uDialogBase, CheckLst, Dialogs, ActnList, StdCtrls, ExtCtrls, uDialogBase, CheckLst,
uIEditorActualizarTiendaWeb, uIEditorActualizarTiendaWeb,
uTiendaWebController, uBizTiendaWeb, uTiendaWebController, uBizTiendaWeb,
ImgList, PngImageList, ComCtrls; ImgList, PngImageList, ComCtrls, dxGDIPlusClasses;
type type
TfEditorActualizarTiendaWeb = class(TfDialogBase, IEditorActualizarTiendaWeb) TfEditorActualizarTiendaWeb = class(TfDialogBase, IEditorActualizarTiendaWeb)
PngImageList1: TPngImageList; img: TPngImageList;
ListView1: TListView; cbClientes: TCheckBox;
cbProveedores: TCheckBox;
Label1: TLabel;
Image1: TImage;
Image2: TImage;
Label3: TLabel;
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure actAceptarExecute(Sender: TObject); procedure actAceptarExecute(Sender: TObject);
procedure actCancelarExecute(Sender: TObject); procedure actCancelarExecute(Sender: TObject);
@ -80,39 +85,36 @@ begin
end; end;
function TfEditorActualizarTiendaWeb.GetContenidosActualizables: TContenidosActualizables; function TfEditorActualizarTiendaWeb.GetContenidosActualizables: TContenidosActualizables;
var
i: Integer;
begin begin
FContenidosAct := []; FContenidosAct := [];
{
for i := 0 to EasyListView1.Items.Count - 1 do if cbClientes.Checked then
begin FContenidosAct := FContenidosAct + [caClientes];
if EasyListview1.Items[i].Checked then
case EasyListview1.Items[i].Tag of if cbProveedores.Checked then
Ord(caClientes) : FContenidosAct := FContenidosAct + [caClientes]; FContenidosAct := FContenidosAct + [caProveedores];
Ord(caProveedores) : FContenidosAct := FContenidosAct + [caProveedores];
end;
end;
}
Result := FContenidosAct; Result := FContenidosAct;
end; end;
procedure TfEditorActualizarTiendaWeb.RellenarContenidos; procedure TfEditorActualizarTiendaWeb.RellenarContenidos;
//var var
// AItem : TEasyItem; AItem : Integer;
begin begin
inherited; inherited;
{ {
EasyListView1.BeginUpdate; // ListView1.BeginUpdate;
try try
EasyListView1.Items.Clear; CheckListBox1.Items.Clear;
EasyListView1.CellSizes.Tile.Width := EasyListview1.ClientWidth; // ListView1.CellSizes.Tile.Width := Listview1.ClientWidth;
// Clientes // Clientes
AItem := EasyListview1.Items.Add(); AItem := CheckListBox1.Items.Add('Actualiza los clientes con acceso permitido a la tienda web');
CheckListBox1.it
with AItem do with AItem do
begin begin
ImageIndex := 0; ImageIndex := 0;
Captions[0] := 'Clientes'; Captions[0] := 'Clientes';
Captions[1] := 'Actualiza los clientes con acceso permitido a la tienda web'; Captions[1] := 'Actualiza los clientes con acceso permitido a la tienda web';
DetailCount := 2; DetailCount := 2;

Binary file not shown.

View File

@ -109,8 +109,6 @@ uses
uRptRecibosProveedor_Server in '..\Modulos\Recibos de proveedor\Reports\uRptRecibosProveedor_Server.pas' {RptRecibosProveedor: TDataModule}, uRptRecibosProveedor_Server in '..\Modulos\Recibos de proveedor\Reports\uRptRecibosProveedor_Server.pas' {RptRecibosProveedor: TDataModule},
schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas',
schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas',
schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas',
schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas',
uRptAlbaranesProveedor_Server in '..\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.pas' {RptAlbaranesProveedor: TDataModule}, uRptAlbaranesProveedor_Server in '..\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.pas' {RptAlbaranesProveedor: TDataModule},
uRptWordAlbaranProveedor in '..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas' {RptWordAlbaranProveedor: TDataModule}, uRptWordAlbaranProveedor in '..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas' {RptWordAlbaranProveedor: TDataModule},
MidasSpeedFix in 'Utiles\MidasSpeedFix.pas', MidasSpeedFix in 'Utiles\MidasSpeedFix.pas',
@ -163,7 +161,9 @@ uses
uTiendaWebUtils in 'Utiles\uTiendaWebUtils.pas', uTiendaWebUtils in 'Utiles\uTiendaWebUtils.pas',
uConexionOSC in 'Configuracion\uConexionOSC.pas' {frConexionOSC: TFrame}, uConexionOSC in 'Configuracion\uConexionOSC.pas' {frConexionOSC: TFrame},
schTiendaWebClient_Intf in '..\Modulos\Tienda web\Model\schTiendaWebClient_Intf.pas', schTiendaWebClient_Intf in '..\Modulos\Tienda web\Model\schTiendaWebClient_Intf.pas',
schTiendaWebServer_Intf in '..\Modulos\Tienda web\Model\schTiendaWebServer_Intf.pas'; schTiendaWebServer_Intf in '..\Modulos\Tienda web\Model\schTiendaWebServer_Intf.pas',
schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas',
schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas';
{$R *.res} {$R *.res}
{$R ..\Servicios\RODLFile.res} {$R ..\Servicios\RODLFile.res}

View File

@ -1,392 +1,392 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<ProjectGuid>{ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}</ProjectGuid> <ProjectGuid>{ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}</ProjectGuid>
<MainSource>FactuGES_Server.dpr</MainSource> <MainSource>FactuGES_Server.dpr</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>..\..\Output\Debug\Servidor\FactuGES_Server.exe</DCC_DependencyCheckOutputName> <DCC_DependencyCheckOutputName>..\..\Output\Debug\Servidor\FactuGES_Server.exe</DCC_DependencyCheckOutputName>
<DCC_UsePackage>vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100</DCC_UsePackage> <DCC_UsePackage>vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100</DCC_UsePackage>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version> <Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation> <DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_MapFile>3</DCC_MapFile> <DCC_MapFile>3</DCC_MapFile>
<DCC_ExeOutput>..\..\Output\Release\Servidor</DCC_ExeOutput> <DCC_ExeOutput>..\..\Output\Release\Servidor</DCC_ExeOutput>
<DCC_Define>RELEASE</DCC_Define> <DCC_Define>RELEASE</DCC_Define>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version> <Version>7.0</Version>
<DCC_MapFile>3</DCC_MapFile> <DCC_MapFile>3</DCC_MapFile>
<DCC_ExeOutput>..\..\Output\Debug\Servidor</DCC_ExeOutput> <DCC_ExeOutput>..\..\Output\Debug\Servidor</DCC_ExeOutput>
<DCC_Define>DEBUG;</DCC_Define> <DCC_Define>DEBUG;</DCC_Define>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<DCC_DebugVN>True</DCC_DebugVN> <DCC_DebugVN>True</DCC_DebugVN>
<DCC_UnitSearchPath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_UnitSearchPath> <DCC_UnitSearchPath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_UnitSearchPath>
<DCC_ResourcePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_ResourcePath> <DCC_ResourcePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_ResourcePath>
<DCC_ObjPath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_ObjPath> <DCC_ObjPath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_ObjPath>
<DCC_IncludePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_IncludePath> <DCC_IncludePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_IncludePath>
</PropertyGroup> </PropertyGroup>
<ProjectExtensions> <ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType/> <Borland.ProjectType />
<BorlandProject> <BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters><Parameters Name="RunParams">/standalone</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">8</VersionInfo><VersionInfo Name="Release">3</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.3.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.3.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">jueves, 24 de junio de 2010 13:44</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">3</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.3.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.3.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">jueves, 24 de junio de 2010 13:44</VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPSCoreD11.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages> <Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPSCoreD11.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">FactuGES_Server.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> </Excluded_Packages><Source><Source Name="MainSource">FactuGES_Server.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions> </ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets"/> <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup> <ItemGroup>
<DelphiCompile Include="FactuGES_Server.dpr"> <DelphiCompile Include="FactuGES_Server.dpr">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas"/> <DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas" />
<DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas"/> <DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas" />
<DCCReference Include="..\ApplicationBase\Empresas\Model\uBizEmpresasServer.pas"/> <DCCReference Include="..\ApplicationBase\Empresas\Model\uBizEmpresasServer.pas" />
<DCCReference Include="..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas"> <DCCReference Include="..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas">
<Form>srvEmpresas</Form> <Form>srvEmpresas</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.pas"> <DCCReference Include="..\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.pas">
<Form>srvProvinciasPoblaciones_Impl</Form> <Form>srvProvinciasPoblaciones_Impl</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas"/> <DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas" />
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas"/> <DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas" />
<DCCReference Include="..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas"> <DCCReference Include="..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas">
<Form>srvUsuarios</Form> <Form>srvUsuarios</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Base\schBase_Intf.pas"/> <DCCReference Include="..\Base\schBase_Intf.pas" />
<DCCReference Include="..\Base\Utiles\uSistemaFunc.pas"/> <DCCReference Include="..\Base\Utiles\uSistemaFunc.pas" />
<DCCReference Include="..\Base\Utiles\uStringsUtils.pas"/> <DCCReference Include="..\Base\Utiles\uStringsUtils.pas" />
<DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas"/> <DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas" />
<DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas"/> <DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas" />
<DCCReference Include="..\Modulos\Albaranes de cliente\Model\uBizAlbaranClienteServer.pas"/> <DCCReference Include="..\Modulos\Albaranes de cliente\Model\uBizAlbaranClienteServer.pas" />
<DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.pas"> <DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.pas">
<Form>RptAlbaranesCliente</Form> <Form>RptAlbaranesCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptWordAlbaranCliente.pas"> <DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptWordAlbaranCliente.pas">
<Form>RptWordAlbaranCliente</Form> <Form>RptWordAlbaranCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.pas"> <DCCReference Include="..\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.pas">
<Form>srvAlbaranesCliente</Form> <Form>srvAlbaranesCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas"/> <DCCReference Include="..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas" />
<DCCReference Include="..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas"/> <DCCReference Include="..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas" />
<DCCReference Include="..\Modulos\Albaranes de proveedor\Model\uBizAlbaranProveedorServer.PAS"/> <DCCReference Include="..\Modulos\Albaranes de proveedor\Model\uBizAlbaranProveedorServer.PAS" />
<DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.pas"> <DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.pas">
<Form>RptAlbaranesProveedor</Form> <Form>RptAlbaranesProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas"> <DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas">
<Form>RptWordAlbaranProveedor</Form> <Form>RptWordAlbaranProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.pas">
<Form>srvAlbaranesProveedor</Form> <Form>srvAlbaranesProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas"/> <DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas" />
<DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesServer_Intf.pas"/> <DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesServer_Intf.pas" />
<DCCReference Include="..\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.pas"> <DCCReference Include="..\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.pas">
<Form>srvAlmacenes</Form> <Form>srvAlmacenes</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosClient_Intf.pas"/> <DCCReference Include="..\Modulos\Articulos\Model\schArticulosClient_Intf.pas" />
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosServer_Intf.pas"/> <DCCReference Include="..\Modulos\Articulos\Model\schArticulosServer_Intf.pas" />
<DCCReference Include="..\Modulos\Articulos\Model\uBizArticulosServer.pas"/> <DCCReference Include="..\Modulos\Articulos\Model\uBizArticulosServer.pas" />
<DCCReference Include="..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas"> <DCCReference Include="..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas">
<Form>srvArticulos</Form> <Form>srvArticulos</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Comisiones\Model\schComisionesClient_Intf.pas"/> <DCCReference Include="..\Modulos\Comisiones\Model\schComisionesClient_Intf.pas" />
<DCCReference Include="..\Modulos\Comisiones\Model\schComisionesServer_Intf.pas"/> <DCCReference Include="..\Modulos\Comisiones\Model\schComisionesServer_Intf.pas" />
<DCCReference Include="..\Modulos\Comisiones\Model\uBizComisionesServer.pas"/> <DCCReference Include="..\Modulos\Comisiones\Model\uBizComisionesServer.pas" />
<DCCReference Include="..\Modulos\Comisiones\Reports\uRptComisiones_Server.pas"> <DCCReference Include="..\Modulos\Comisiones\Reports\uRptComisiones_Server.pas">
<Form>RptComisiones</Form> <Form>RptComisiones</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Comisiones\Servidor\srvComisiones_Impl.pas"> <DCCReference Include="..\Modulos\Comisiones\Servidor\srvComisiones_Impl.pas">
<Form>srvComisiones</Form> <Form>srvComisiones</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Contactos\Model\schContactosClient_Intf.pas"/> <DCCReference Include="..\Modulos\Contactos\Model\schContactosClient_Intf.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\schContactosServer_Intf.pas"/> <DCCReference Include="..\Modulos\Contactos\Model\schContactosServer_Intf.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizAgentesServer.pas"/> <DCCReference Include="..\Modulos\Contactos\Model\uBizAgentesServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizClientesServer.pas"/> <DCCReference Include="..\Modulos\Contactos\Model\uBizClientesServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizContactosServer.pas"/> <DCCReference Include="..\Modulos\Contactos\Model\uBizContactosServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizEmpleadosServer.pas"/> <DCCReference Include="..\Modulos\Contactos\Model\uBizEmpleadosServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizProveedoresServer.pas"/> <DCCReference Include="..\Modulos\Contactos\Model\uBizProveedoresServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Reports\uRptEtiquetasContacto_Server.pas"> <DCCReference Include="..\Modulos\Contactos\Reports\uRptEtiquetasContacto_Server.pas">
<Form>RptEtiquetasContacto</Form> <Form>RptEtiquetasContacto</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Contactos\Reports\uRptFichasEmpleado_Server.pas"> <DCCReference Include="..\Modulos\Contactos\Reports\uRptFichasEmpleado_Server.pas">
<Form>RptFichasEmpleado</Form> <Form>RptFichasEmpleado</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Contactos\Servidor\srvContactos_Impl.pas"> <DCCReference Include="..\Modulos\Contactos\Servidor\srvContactos_Impl.pas">
<Form>srvContactos</Form> <Form>srvContactos</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesClient_Intf.pas"/> <DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesClient_Intf.pas" />
<DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesServer_Intf.pas"/> <DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesServer_Intf.pas" />
<DCCReference Include="..\Modulos\Fabricantes\Servidor\srvFabricantes_Impl.pas"> <DCCReference Include="..\Modulos\Fabricantes\Servidor\srvFabricantes_Impl.pas">
<Form>srvFabricantes</Form> <Form>srvFabricantes</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas"/> <DCCReference Include="..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas" />
<DCCReference Include="..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas"/> <DCCReference Include="..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas" />
<DCCReference Include="..\Modulos\Facturas de cliente\Model\uBizFacturasClienteServer.pas"/> <DCCReference Include="..\Modulos\Facturas de cliente\Model\uBizFacturasClienteServer.pas" />
<DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas"> <DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas">
<Form>RptFacturasCliente</Form> <Form>RptFacturasCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptWordFacturaCliente.pas"> <DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptWordFacturaCliente.pas">
<Form>RptWordFacturaCliente</Form> <Form>RptWordFacturaCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas"> <DCCReference Include="..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas">
<Form>srvFacturasCliente</Form> <Form>srvFacturasCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas"/> <DCCReference Include="..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas" />
<DCCReference Include="..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas"/> <DCCReference Include="..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas" />
<DCCReference Include="..\Modulos\Facturas de proveedor\Model\uBizFacturasProveedorServer.pas"/> <DCCReference Include="..\Modulos\Facturas de proveedor\Model\uBizFacturasProveedorServer.pas" />
<DCCReference Include="..\Modulos\Facturas de proveedor\Reports\uRptFacturasProveedor_Server.pas"> <DCCReference Include="..\Modulos\Facturas de proveedor\Reports\uRptFacturasProveedor_Server.pas">
<Form>RptFacturasProveedor</Form> <Form>RptFacturasProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas">
<Form>srvFacturasProveedor</Form> <Form>srvFacturasProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Familias\Model\schFamiliasClient_Intf.pas"/> <DCCReference Include="..\Modulos\Familias\Model\schFamiliasClient_Intf.pas" />
<DCCReference Include="..\Modulos\Familias\Model\schFamiliasServer_Intf.pas"/> <DCCReference Include="..\Modulos\Familias\Model\schFamiliasServer_Intf.pas" />
<DCCReference Include="..\Modulos\Familias\Servidor\srvFamilias_Impl.pas"> <DCCReference Include="..\Modulos\Familias\Servidor\srvFamilias_Impl.pas">
<Form>srvFamilias</Form> <Form>srvFamilias</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoClient_Intf.pas"/> <DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoClient_Intf.pas" />
<DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas"/> <DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas" />
<DCCReference Include="..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas"> <DCCReference Include="..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas">
<Form>srvFormasPago</Form> <Form>srvFormasPago</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Gestion de documentos\Servidor\srvGestorDocumentos_Impl.pas"> <DCCReference Include="..\Modulos\Gestion de documentos\Servidor\srvGestorDocumentos_Impl.pas">
<Form>srvGestorDocumentos</Form> <Form>srvGestorDocumentos</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Gestor de informes\Servidor\srvGestorInformes_Impl.pas"> <DCCReference Include="..\Modulos\Gestor de informes\Servidor\srvGestorInformes_Impl.pas">
<Form>srvGestorInformes</Form> <Form>srvGestorInformes</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosClient_Intf.pas"/> <DCCReference Include="..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosClient_Intf.pas" />
<DCCReference Include="..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas"/> <DCCReference Include="..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas" />
<DCCReference Include="..\Modulos\Historico de movimientos\Servidor\srvHistoricoMovimientos_Impl.pas"> <DCCReference Include="..\Modulos\Historico de movimientos\Servidor\srvHistoricoMovimientos_Impl.pas">
<Form>srvHistoricoMovimientos</Form> <Form>srvHistoricoMovimientos</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Impresiones\Model\schImpresionesClient_Intf.pas"/> <DCCReference Include="..\Modulos\Impresiones\Model\schImpresionesClient_Intf.pas" />
<DCCReference Include="..\Modulos\Impresiones\Model\schImpresionesServer_Intf.pas"/> <DCCReference Include="..\Modulos\Impresiones\Model\schImpresionesServer_Intf.pas" />
<DCCReference Include="..\Modulos\Impresiones\Servidor\srvImpresiones_Impl.pas"> <DCCReference Include="..\Modulos\Impresiones\Servidor\srvImpresiones_Impl.pas">
<Form>srvImpresiones</Form> <Form>srvImpresiones</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Inventario\Model\schInventarioClient_Intf.pas"/> <DCCReference Include="..\Modulos\Inventario\Model\schInventarioClient_Intf.pas" />
<DCCReference Include="..\Modulos\Inventario\Model\schInventarioServer_Intf.pas"/> <DCCReference Include="..\Modulos\Inventario\Model\schInventarioServer_Intf.pas" />
<DCCReference Include="..\Modulos\Inventario\Servidor\srvInventario_Impl.pas"> <DCCReference Include="..\Modulos\Inventario\Servidor\srvInventario_Impl.pas">
<Form>srvInventario</Form> <Form>srvInventario</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Obras\Model\schObrasClient_Intf.pas"/> <DCCReference Include="..\Modulos\Obras\Model\schObrasClient_Intf.pas" />
<DCCReference Include="..\Modulos\Obras\Model\schObrasServer_Intf.pas"/> <DCCReference Include="..\Modulos\Obras\Model\schObrasServer_Intf.pas" />
<DCCReference Include="..\Modulos\Obras\Model\uBizObrasServer.pas"/> <DCCReference Include="..\Modulos\Obras\Model\uBizObrasServer.pas" />
<DCCReference Include="..\Modulos\Obras\Servidor\srvObras_Impl.pas"> <DCCReference Include="..\Modulos\Obras\Servidor\srvObras_Impl.pas">
<Form>srvObras</Form> <Form>srvObras</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas"/> <DCCReference Include="..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas"/> <DCCReference Include="..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Model\uBizPedidosProveedorServer.pas"/> <DCCReference Include="..\Modulos\Pedidos a proveedor\Model\uBizPedidosProveedorServer.pas" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas"> <DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas">
<Form>RptPedidosProveedor</Form> <Form>RptPedidosProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptWordPedidoProveedor.pas"> <DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptWordPedidoProveedor.pas">
<Form>RptWordPedidoProveedor</Form> <Form>RptWordPedidoProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas">
<Form>srvPedidosProveedor</Form> <Form>srvPedidosProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Pedidos de cliente\Model\schPedidosClienteClient_Intf.pas"/> <DCCReference Include="..\Modulos\Pedidos de cliente\Model\schPedidosClienteClient_Intf.pas" />
<DCCReference Include="..\Modulos\Pedidos de cliente\Model\schPedidosClienteServer_Intf.pas"/> <DCCReference Include="..\Modulos\Pedidos de cliente\Model\schPedidosClienteServer_Intf.pas" />
<DCCReference Include="..\Modulos\Pedidos de cliente\Model\uBizPedidosClienteServer.pas"/> <DCCReference Include="..\Modulos\Pedidos de cliente\Model\uBizPedidosClienteServer.pas" />
<DCCReference Include="..\Modulos\Pedidos de cliente\Reports\uRptPedidosCliente_Server.pas"> <DCCReference Include="..\Modulos\Pedidos de cliente\Reports\uRptPedidosCliente_Server.pas">
<Form>RptPedidosCliente</Form> <Form>RptPedidosCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Pedidos de cliente\Servidor\srvPedidosCliente_Impl.pas"> <DCCReference Include="..\Modulos\Pedidos de cliente\Servidor\srvPedidosCliente_Impl.pas">
<Form>srvPedidosCliente</Form> <Form>srvPedidosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas"/> <DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas"/> <DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\uBizPresupuestosClienteServer.pas"/> <DCCReference Include="..\Modulos\Presupuestos de cliente\Model\uBizPresupuestosClienteServer.pas" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas"> <DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas">
<Form>RptPresupuestosCliente</Form> <Form>RptPresupuestosCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordCertificadoTrabajo_Server.pas"> <DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordCertificadoTrabajo_Server.pas">
<Form>RptWordCertificadoTrabajo</Form> <Form>RptWordCertificadoTrabajo</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas"> <DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas">
<Form>RptWordPresupuestoCliente</Form> <Form>RptWordPresupuestoCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas"> <DCCReference Include="..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas">
<Form>srvPresupuestosCliente</Form> <Form>srvPresupuestosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas"/> <DCCReference Include="..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas" />
<DCCReference Include="..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas"/> <DCCReference Include="..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas" />
<DCCReference Include="..\Modulos\Recibos de cliente\Reports\uRptRecibosCliente_Server.pas"> <DCCReference Include="..\Modulos\Recibos de cliente\Reports\uRptRecibosCliente_Server.pas">
<Form>RptRecibosCliente</Form> <Form>RptRecibosCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Recibos de cliente\Servidor\srvRecibosCliente_Impl.pas"> <DCCReference Include="..\Modulos\Recibos de cliente\Servidor\srvRecibosCliente_Impl.pas">
<Form>srvRecibosCliente</Form> <Form>srvRecibosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas"/> <DCCReference Include="..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas" />
<DCCReference Include="..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas"/> <DCCReference Include="..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas" />
<DCCReference Include="..\Modulos\Recibos de proveedor\Reports\uRptRecibosProveedor_Server.pas"> <DCCReference Include="..\Modulos\Recibos de proveedor\Reports\uRptRecibosProveedor_Server.pas">
<Form>RptRecibosProveedor</Form> <Form>RptRecibosProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.pas">
<Form>srvRecibosProveedor</Form> <Form>srvRecibosProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Referencias\Model\schReferenciasClient_Intf.pas"/> <DCCReference Include="..\Modulos\Referencias\Model\schReferenciasClient_Intf.pas" />
<DCCReference Include="..\Modulos\Referencias\Model\schReferenciasServer_Intf.pas"/> <DCCReference Include="..\Modulos\Referencias\Model\schReferenciasServer_Intf.pas" />
<DCCReference Include="..\Modulos\Referencias\Servidor\srvReferencias_Impl.pas"> <DCCReference Include="..\Modulos\Referencias\Servidor\srvReferencias_Impl.pas">
<Form>srvReferencias</Form> <Form>srvReferencias</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Registro de correos\Servidor\srvRegistroCorreos_Impl.pas"> <DCCReference Include="..\Modulos\Registro de correos\Servidor\srvRegistroCorreos_Impl.pas">
<Form>srvRegistroCorreos</Form> <Form>srvRegistroCorreos</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Remesas de cliente\Model\schRemesasClienteClient_Intf.pas"/> <DCCReference Include="..\Modulos\Remesas de cliente\Model\schRemesasClienteClient_Intf.pas" />
<DCCReference Include="..\Modulos\Remesas de cliente\Model\schRemesasClienteServer_Intf.pas"/> <DCCReference Include="..\Modulos\Remesas de cliente\Model\schRemesasClienteServer_Intf.pas" />
<DCCReference Include="..\Modulos\Remesas de cliente\Model\uBizRemesasClienteServer.pas"/> <DCCReference Include="..\Modulos\Remesas de cliente\Model\uBizRemesasClienteServer.pas" />
<DCCReference Include="..\Modulos\Remesas de cliente\Reports\uRptRemesasCliente_Server.pas"> <DCCReference Include="..\Modulos\Remesas de cliente\Reports\uRptRemesasCliente_Server.pas">
<Form>RptRemesasCliente</Form> <Form>RptRemesasCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.pas"> <DCCReference Include="..\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.pas">
<Form>srvRemesasCliente</Form> <Form>srvRemesasCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Remesas de proveedor\Model\schRemesasProveedorClient_Intf.pas"/> <DCCReference Include="..\Modulos\Remesas de proveedor\Model\schRemesasProveedorClient_Intf.pas" />
<DCCReference Include="..\Modulos\Remesas de proveedor\Model\schRemesasProveedorServer_Intf.pas"/> <DCCReference Include="..\Modulos\Remesas de proveedor\Model\schRemesasProveedorServer_Intf.pas" />
<DCCReference Include="..\Modulos\Remesas de proveedor\Model\uBizRemesasProveedorServer.pas"/> <DCCReference Include="..\Modulos\Remesas de proveedor\Model\uBizRemesasProveedorServer.pas" />
<DCCReference Include="..\Modulos\Remesas de proveedor\Reports\uRptRemesasProveedor_Server.pas"> <DCCReference Include="..\Modulos\Remesas de proveedor\Reports\uRptRemesasProveedor_Server.pas">
<Form>RptRemesasProveedor</Form> <Form>RptRemesasProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Remesas de proveedor\Servidor\srvRemesasProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Remesas de proveedor\Servidor\srvRemesasProveedor_Impl.pas">
<Form>srvRemesasProveedor</Form> <Form>srvRemesasProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Tienda web\Model\schTiendaWebClient_Intf.pas"/> <DCCReference Include="..\Modulos\Tienda web\Model\schTiendaWebClient_Intf.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\schTiendaWebServer_Intf.pas"/> <DCCReference Include="..\Modulos\Tienda web\Model\schTiendaWebServer_Intf.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscAddressBookServer.pas"/> <DCCReference Include="..\Modulos\Tienda web\Model\uBizOscAddressBookServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscCustomerServer.pas"/> <DCCReference Include="..\Modulos\Tienda web\Model\uBizOscCustomerServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscManufacturerServer.pas"/> <DCCReference Include="..\Modulos\Tienda web\Model\uBizOscManufacturerServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscOrderServer.pas"/> <DCCReference Include="..\Modulos\Tienda web\Model\uBizOscOrderServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscProductServer.pas"/> <DCCReference Include="..\Modulos\Tienda web\Model\uBizOscProductServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizTiendaWebServer.pas"/> <DCCReference Include="..\Modulos\Tienda web\Model\uBizTiendaWebServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Servidor\srvTiendaWeb_Impl.pas"> <DCCReference Include="..\Modulos\Tienda web\Servidor\srvTiendaWeb_Impl.pas">
<Form>srvTiendaWeb</Form> <Form>srvTiendaWeb</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas"/> <DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas" />
<DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAServer_Intf.pas"/> <DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAServer_Intf.pas" />
<DCCReference Include="..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas"> <DCCReference Include="..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas">
<Form>srvTiposIVA</Form> <Form>srvTiposIVA</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Unidades de medida\Model\schUnidadesMedidaClient_Intf.pas"/> <DCCReference Include="..\Modulos\Unidades de medida\Model\schUnidadesMedidaClient_Intf.pas" />
<DCCReference Include="..\Modulos\Unidades de medida\Model\schUnidadesMedidaServer_Intf.pas"/> <DCCReference Include="..\Modulos\Unidades de medida\Model\schUnidadesMedidaServer_Intf.pas" />
<DCCReference Include="..\Modulos\Unidades de medida\Servidor\srvUnidadesMedida_Impl.pas"> <DCCReference Include="..\Modulos\Unidades de medida\Servidor\srvUnidadesMedida_Impl.pas">
<Form>srvUnidadesMedida</Form> <Form>srvUnidadesMedida</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Servicios\FactuGES_Intf.pas"/> <DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
<DCCReference Include="..\Servicios\FactuGES_Invk.pas"/> <DCCReference Include="..\Servicios\FactuGES_Invk.pas" />
<DCCReference Include="Configuracion\srvConfiguracion_Impl.pas"> <DCCReference Include="Configuracion\srvConfiguracion_Impl.pas">
<Form>srvConfiguracion</Form> <Form>srvConfiguracion</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Configuracion\uConexionBD.pas"> <DCCReference Include="Configuracion\uConexionBD.pas">
<Form>frConexionBD</Form> <Form>frConexionBD</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Configuracion\uConexionOSC.pas"> <DCCReference Include="Configuracion\uConexionOSC.pas">
<Form>frConexionOSC</Form> <Form>frConexionOSC</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Configuracion\uConfGeneral.pas"> <DCCReference Include="Configuracion\uConfGeneral.pas">
<Form>frConfGeneral</Form> <Form>frConfGeneral</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Configuracion\uConfiguracion.pas"> <DCCReference Include="Configuracion\uConfiguracion.pas">
<Form>fConfiguracion</Form> <Form>fConfiguracion</Form>
<DesignClass>TForm</DesignClass> <DesignClass>TForm</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Configuracion\uFrameConfiguracion.pas"> <DCCReference Include="Configuracion\uFrameConfiguracion.pas">
<Form>FrameConfiguracion</Form> <Form>FrameConfiguracion</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="srvLogin_Impl.pas"> <DCCReference Include="srvLogin_Impl.pas">
<Form>srvLogin</Form> <Form>srvLogin</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uAcercaDe.pas"> <DCCReference Include="uAcercaDe.pas">
<Form>fAcercaDe</Form> <Form>fAcercaDe</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uDataModuleServer.pas"> <DCCReference Include="uDataModuleServer.pas">
<Form>dmServer</Form> <Form>dmServer</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uServerMainForm.pas"> <DCCReference Include="uServerMainForm.pas">
<Form>fServerForm</Form> <Form>fServerForm</Form>
</DCCReference> </DCCReference>
<DCCReference Include="Utiles\AHWord97.pas"/> <DCCReference Include="Utiles\AHWord97.pas" />
<DCCReference Include="Utiles\MidasSpeedFix.pas"/> <DCCReference Include="Utiles\MidasSpeedFix.pas" />
<DCCReference Include="Utiles\RegExpr.pas"/> <DCCReference Include="Utiles\RegExpr.pas" />
<DCCReference Include="Utiles\uBusinessUtils.pas"/> <DCCReference Include="Utiles\uBusinessUtils.pas" />
<DCCReference Include="Utiles\uDatabaseUtils.pas"/> <DCCReference Include="Utiles\uDatabaseUtils.pas" />
<DCCReference Include="Utiles\uReferenciasUtils.pas"/> <DCCReference Include="Utiles\uReferenciasUtils.pas" />
<DCCReference Include="Utiles\uRestriccionesUsuarioUtils.pas"/> <DCCReference Include="Utiles\uRestriccionesUsuarioUtils.pas" />
<DCCReference Include="Utiles\uSchemaUtilsServer.pas"/> <DCCReference Include="Utiles\uSchemaUtilsServer.pas" />
<DCCReference Include="Utiles\uServerAppUtils.pas"/> <DCCReference Include="Utiles\uServerAppUtils.pas" />
<DCCReference Include="Utiles\uSesionesUtils.pas"/> <DCCReference Include="Utiles\uSesionesUtils.pas" />
<DCCReference Include="Utiles\uTiendaWebUtils.pas"/> <DCCReference Include="Utiles\uTiendaWebUtils.pas" />
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line
[Exception Log] [Exception Log]

View File

@ -14,7 +14,7 @@ BEGIN
BEGIN BEGIN
VALUE "FileVersion", "1.8.3.0\0" VALUE "FileVersion", "1.8.3.0\0"
VALUE "ProductVersion", "1.8.3.0\0" VALUE "ProductVersion", "1.8.3.0\0"
VALUE "CompileDate", "viernes, 17 de septiembre de 2010 19:01\0" VALUE "CompileDate", "miércoles, 22 de septiembre de 2010 11:37\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"