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>
<DesignClass>TDataModule</DesignClass>
</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">
<Form>DataModuleRegistroCorreos</Form>
<DesignClass>TDataModule</DesignClass>
</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="Conexion\uConfigurarConexion.pas">
<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>
<ProjectGuid>{7ed85635-c723-4c0b-bf1d-f719e0ea33ad}</ProjectGuid>
<MainSource>AlbaranesCliente_controller.dpk</MainSource>
@ -48,14 +49,15 @@
<DelphiCompile Include="AlbaranesCliente_controller.dpk">
<MainSource>MainSource</MainSource>
</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="uAlbaranesClienteReportController.pas" />
<DCCReference Include="uArticulosAlbaranClienteController.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\uIEditorAlbaranDevCliente.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;
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);
function CambiarSituacion(AAlbaran : IBizAlbaranCliente;
ANuevaSituacion: String; AFechaEnvio : TDateTime = 0;
@ -76,6 +83,9 @@ type
end;
TAlbaranesClienteController = class(TControllerBase, IAlbaranesClienteController)
private
procedure _AnadirMarcaEnvioCorreo(AAlbaran: IBizAlbaranCliente);
protected
FDataModule : IDataModuleAlbaranesCliente;
FClienteController : IClientesController;
@ -133,7 +143,7 @@ type
const AHeaderText: String = '');
procedure VerDireccionEntrega(AAlbaran : IBizAlbaranCliente);
function Duplicar(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente;
function GenerarOrdenDev(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente;
function GenerarOrdenDev(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente;
procedure CopiarDireccionEnvio (const ADireccionEnvio: IBizDireccionesContacto;
AAlbaran: IBizAlbaranCliente);
@ -147,7 +157,13 @@ type
function EsModificable(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;
ANuevaSituacion: String; AFechaEnvio : TDateTime = 0;
AFechaRecibido : TDateTime = 0;
@ -172,16 +188,16 @@ implementation
uses
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorAlbaranesCliente, uIEditorAlbaranesDevCliente, uIEditorAlbaranDevCliente,
uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente,
uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente, uDataModuleRegistroCorreos,
uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App,
schAlbaranesClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranCliente,
uIEditorElegirAlbaranesCliente, uIEditorDireccionEntregaAlbaranCliente,
schContactosClient_Intf, uAlbaranesClienteReportController, uControllerDetallesBase,
// Pedidos no estará en TECSITEL
// Pedidos no estará en TECSITEL
// uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, schPedidosClienteClient_Intf,
uDialogUtils, Windows, Forms, Dialogs, uGUIBase, uIntegerListUtils,
uDialogUtils, Windows, Forms, Dialogs, uGUIBase, uIntegerListUtils, uIDialogListaAlbaranesClienteEnvioEMail,
uSistemaFunc, uEMailUtils, uDialogElegirEMail, uStringsUtils;
@ -710,6 +726,38 @@ begin
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;
begin
Result := Buscar(ID_NULO);
@ -802,50 +850,97 @@ begin
end;
end;
procedure TAlbaranesClienteController.EnviarAlbaranPorEMail(
AAlbaran: IBizAlbaranCliente);
function TAlbaranesClienteController.EnviarAlbaranPorEMail(
AAlbaran: IBizAlbaranCliente; const AEnviarDirectamente: Boolean;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
var
AReportController : IAlbaranesClienteReportController;
AFicheroTMP : TFileName;
AEMail : String;
AAsunto : String;
AListaEmail : TStringList;
begin
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
AAlbaran.DataTable.Active := True;
RecuperarCliente(AAlbaran);
AAlbaran.Cliente.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AAlbaran.REFERENCIA));
AListaEmail := TStringList.Create;
try
RecuperarCliente(AAlbaran);
AAlbaran.Cliente.DataTable.Active := True;
if not EsCadenaVacia(ADireccionEMail) then
AEMail := ADireccionEMail
else begin
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
AListaEmail.Add(AAlbaran.Cliente.EMAIL_1);
if not AAlbaran.Cliente.EMAIL_2IsNull then
AListaEmail.Add(AAlbaran.Cliente.EMAIL_2);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
end;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Albaran ' + AAlbaran.REFERENCIA;
ShowHourglassCursor;
Application.ProcessMessages;
AReportController := TAlbaranesClienteReportController.Create;
try
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
SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL;
HideHourglassCursor;
Application.ProcessMessages;
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;
begin
@ -1177,6 +1272,24 @@ begin
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;
var
AOrden : IBizAlbaranCliente;

View File

@ -39,7 +39,12 @@ requires
PedidosCliente_model,
Inventario_controller,
FacturasCliente_model,
FacturasCliente_controller;
FacturasCliente_controller,
cxLibraryD11,
dxThemeD11,
dxGDIPlusD11,
dxCoreD11,
vclx;
contains
uAlbaranesClienteViewRegister in 'uAlbaranesClienteViewRegister.pas',
@ -58,6 +63,7 @@ contains
uEditorAlbaranDevCliente in 'uEditorAlbaranDevCliente.pas' {fEditorAlbaranDevCliente: TCustomEditor},
uViewAlbaranDevCliente in 'uViewAlbaranDevCliente.pas' {frViewAlbaranDevCliente: 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.

View File

@ -43,6 +43,10 @@
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">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\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>
@ -54,22 +58,29 @@
<DelphiCompile Include="AlbaranesCliente_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\..\Lib\AlbaranesCliente_controller.dcp" />
<DCCReference Include="..\..\Lib\AlbaranesCliente_model.dcp" />
<DCCReference Include="..\..\Lib\AlbCli_FacCli_relation.dcp" />
<DCCReference Include="..\..\Lib\Almacenes_controller.dcp" />
<DCCReference Include="..\..\Lib\ApplicationBase.dcp" />
<DCCReference Include="..\..\Lib\Articulos_view.dcp" />
<DCCReference Include="..\..\Lib\Base.dcp" />
<DCCReference Include="..\..\Lib\FacturasCliente_controller.dcp" />
<DCCReference Include="..\..\Lib\FacturasCliente_model.dcp" />
<DCCReference Include="..\..\Lib\GUIBase.dcp" />
<DCCReference Include="..\..\Lib\Inventario_controller.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_controller.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_model.dcp" />
<DCCReference Include="..\..\Lib\rtl.dcp" />
<DCCReference Include="..\..\Lib\vcl.dcp" />
<DCCReference Include="AlbaranesCliente_controller.dcp" />
<DCCReference Include="AlbaranesCliente_model.dcp" />
<DCCReference Include="AlbCli_FacCli_relation.dcp" />
<DCCReference Include="Almacenes_controller.dcp" />
<DCCReference Include="ApplicationBase.dcp" />
<DCCReference Include="Articulos_view.dcp" />
<DCCReference Include="Base.dcp" />
<DCCReference Include="cxLibraryD11.dcp" />
<DCCReference Include="dxCoreD11.dcp" />
<DCCReference Include="dxGDIPlusD11.dcp" />
<DCCReference Include="dxThemeD11.dcp" />
<DCCReference Include="FacturasCliente_controller.dcp" />
<DCCReference Include="FacturasCliente_model.dcp" />
<DCCReference Include="GUIBase.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="uDialogListaAlbaranesClienteEnvioEMail.pas">
<Form>fruDialogListaAlbaranesClienteEnvioEMail</Form>
<DesignClass>T</DesignClass>
</DCCReference>
<DCCReference Include="uDialogOpcionesImpresionAlbaranesCliente.pas">
<Form>frDialogOpcionesImpresionAlbaranesCliente</Form>
<DesignClass>T</DesignClass>
@ -134,6 +145,8 @@
<Form>frViewElegirArticulosAlbaranesCliente</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="vcl.dcp" />
<DCCReference Include="vclx.dcp" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line

View File

@ -10,7 +10,8 @@ implementation
uses
uEditorRegistryUtils, uEditorAlbaranesCliente, uEditorAlbaranCliente,
uEditorElegirArticulosAlbaranCliente, uEditorAlbaranesClienteReport,
uEditorElegirAlbaranesCliente, uEditorAlbaranesDevCliente, uEditorAlbaranDevCliente;
uEditorElegirAlbaranesCliente, uEditorAlbaranesDevCliente, uEditorAlbaranDevCliente,
uDialogListaAlbaranesClienteEnvioEMail;
procedure RegisterViews;
begin
@ -21,6 +22,7 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirArticulosAlbaranCliente, 'EditorElegirArticulosAlbaranesCliente');
EditorRegistry.RegisterClass(TfEditorAlbaranesClientePreview, 'EditorAlbaranesClientePreview');
EditorRegistry.RegisterClass(TfEditorElegirAlbaranesCliente, 'EditorElegirAlbaranesCliente');
EditorRegistry.RegisterClass(TfDialogListaAlbaranesClienteEnvioEMail, 'DialogListaAlbaranesClienteEnvioEMail');
end;
procedure UnregisterViews;
@ -32,6 +34,7 @@ begin
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlbaranCliente);
EditorRegistry.UnRegisterClass(TfEditorAlbaranesClientePreview);
EditorRegistry.UnRegisterClass(TfEditorElegirAlbaranesCliente);
EditorRegistry.UnRegisterClass(TfDialogListaAlbaranesClienteEnvioEMail);
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
object TBXSeparatorItem17: TTBXSeparatorItem [10]
end
object TBXItem41: TTBXItem [14]
Action = actEnviarEMail
end
end
inherited tbxFiltro: TTBXToolbar
ExplicitWidth = 427

View File

@ -42,6 +42,7 @@ type
TBXItem39: TTBXItem;
actGenerarOrden: TAction;
TBXItem40: TTBXItem;
TBXItem41: TTBXItem;
procedure FormShow(Sender: TObject);
procedure actGenerarFacturaUpdate(Sender: TObject);
procedure actGenerarFacturaExecute(Sender: TObject);
@ -92,6 +93,7 @@ type
implementation
uses
cxControls,
uDataModuleAlbaranesCliente, uDataModuleUsuarios, uFactuGES_App,
uGenerarFacturasCliAlbCliUtils,
//En tecsitel no estaran habilitados los pedidos
@ -209,9 +211,27 @@ begin
end;
procedure TfEditorAlbaranesCliente.actEnviarEMailExecute(Sender: TObject);
var
AAlbaranes : IBizAlbaranCliente;
begin
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;
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>
<ProjectGuid>{7ed85635-c723-4c0b-bf1d-f719e0ea33ad}</ProjectGuid>
<MainSource>AlbaranesProveedor_controller.dpk</MainSource>
@ -48,18 +49,19 @@
<DelphiCompile Include="AlbaranesProveedor_controller.dpk">
<MainSource>MainSource</MainSource>
</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="uAlbaranesProveedorReportController.pas" />
<DCCReference Include="uArticulosAlbaranProveedorController.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\uIEditorAlbaranesDevProveedor.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;
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;
procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
@ -71,6 +78,9 @@ type
end;
TAlbaranesProveedorController = class(TControllerBase, IAlbaranesProveedorController)
private
procedure _AnadirMarcaEnvioCorreo(AAlbaran: IBizAlbaranProveedor);
protected
FDataModule : IDataModuleAlbaranesProveedor;
FProveedorController : IProveedoresController;
@ -145,6 +155,13 @@ type
function Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false;
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;
procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
@ -160,11 +177,13 @@ uses
schAlbaranesProveedorClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranProveedor,
uIEditorElegirAlbaranesProveedor, uIEditorDireccionEntregaAlbaranProveedor,
schContactosClient_Intf, Forms, schPedidosProveedorClient_Intf, uFactuGES_App,
uBizPedidosProveedor, uPedidosProveedorController,
uBizPedidosProveedor, uPedidosProveedorController, uDataModuleRegistroCorreos,
schInventarioClient_Intf, uStringsUtils, uIntegerListUtils,
uArticulosController, uBizArticulos, uControllerDetallesBase,
uArticulosController, uBizArticulos, uControllerDetallesBase,
schArticulosClient_Intf, uControllerDetallesArticulos, Variants, uDialogUtils,
uIEditorAlbaranDevProveedor, uAlbaranesProveedorReportController;
uIEditorAlbaranDevProveedor, uAlbaranesProveedorReportController,
uIDialogListaAlbaranesProveedorEnvioEMail,
uSistemaFunc, uEMailUtils, uDialogElegirEMail;
{ Métodos auxiliares }
@ -796,6 +815,37 @@ begin
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;
begin
Result := Buscar(ID_NULO);
@ -887,6 +937,98 @@ begin
HideHourglassCursor;
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;
begin
if not Assigned(AAlbaran) then
@ -1212,6 +1354,24 @@ begin
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;
begin
Result := FDetallesController;

View File

@ -36,7 +36,12 @@ requires
AlbProv_FacProv_relation,
PedProv_AlbProv_relation,
rtl,
vcl;
vcl,
cxLibraryD11,
dxThemeD11,
dxGDIPlusD11,
dxCoreD11,
vclx;
contains
uAlbaranesProveedorViewRegister in 'uAlbaranesProveedorViewRegister.pas',
@ -56,6 +61,7 @@ contains
uViewAlbaranesDevProveedor in 'uViewAlbaranesDevProveedor.pas' {frViewAlbaranesDevProveedor: TCustomView},
uEditorAlbaranesProveedorReport in 'uEditorAlbaranesProveedorReport.pas' {fEditorAlbaranesProveedorReport: TEditorAlbaranesProveedorReport},
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.

View File

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

View File

@ -11,7 +11,7 @@ uses
uEditorRegistryUtils, uEditorAlbaranesProveedor, uEditorAlbaranProveedor,
uEditorElegirArticulosAlbaranProveedor, uEditorDireccionEntregaAlbaranProveedor,
uEditorElegirAlbaranesProveedor, uEditorAlbaranesDevProveedor, uEditorAlbaranDevProveedor,
uEditorAlbaranesProveedorReport;
uEditorAlbaranesProveedorReport, uDialogListaAlbaranesProveedorEnvioEMail;
procedure RegisterViews;
begin
@ -23,6 +23,8 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirArticulosAlbaranProveedor, 'EditorElegirArticulosAlbaranesProveedor');
EditorRegistry.RegisterClass(TfEditorElegirAlbaranesProveedor, 'EditorElegirAlbaranesProveedor');
EditorRegistry.RegisterClass(TfEditorAlbaranesProveedorPreview, 'EditorAlbaranesProveedorPreview');
EditorRegistry.RegisterClass(TfDialogListaAlbaranesProveedorEnvioEMail, 'DialogListaAlbaranesProveedorEnvioEMail');
end;
procedure UnregisterViews;
@ -35,6 +37,7 @@ begin
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosAlbaranProveedor);
EditorRegistry.UnRegisterClass(TfEditorElegirAlbaranesProveedor);
EditorRegistry.UnRegisterClass(TfEditorAlbaranesProveedorPreview);
EditorRegistry.UnRegisterClass(TfDialogListaAlbaranesProveedorEnvioEMail);
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
inherited tbxMain: TTBXToolbar
ExplicitWidth = 606
object TBXItem42: TTBXItem [13]
Action = actEnviarEMail
end
end
inherited tbxFiltro: TTBXToolbar
ExplicitWidth = 427
@ -202,6 +205,12 @@ inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor
OnExecute = actGenerarDevolucionExecute
OnUpdate = actGenerarDevolucionUpdate
end
object actEnviarEMail: TAction
Category = 'Acciones'
Caption = 'Enviar por e-mail...'
OnExecute = actEnviarEMailExecute
OnUpdate = actEnviarEMailUpdate
end
end
inherited SmallImages: TPngImageList
PngImages = <

View File

@ -30,6 +30,8 @@ type
TBXItem38: TTBXItem;
TBXItem40: TTBXItem;
TBXItem41: TTBXItem;
actEnviarEMail: TAction;
TBXItem42: TTBXItem;
procedure FormShow(Sender: TObject);
procedure actGenerarFacturaExecute(Sender: TObject);
procedure actGenerarFacturaUpdate(Sender: TObject);
@ -37,6 +39,8 @@ type
procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure actGenerarDevolucionUpdate(Sender: TObject);
procedure actGenerarDevolucionExecute(Sender: TObject);
procedure actEnviarEMailUpdate(Sender: TObject);
procedure actEnviarEMailExecute(Sender: TObject);
protected
FAlbaranes: IBizAlbaranProveedor;
@ -71,6 +75,7 @@ type
implementation
uses
cxControls,
uDataModuleAlbaranesProveedor, uDataModuleUsuarios, uFactuGES_App,
uGenerarFacturasProvAlbProvUtils,
uGenerarAlbaranesProvUtils, uDialogOpcionesImpresionAlbaranesProveedor,
@ -89,6 +94,41 @@ begin
(Sender as TAction).Enabled := not (FAlbaranes.ID_FACTURA > 0)
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(
Sender: TObject);
var

View File

@ -98,7 +98,8 @@ begin
ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1];
ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2];
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;
end;
finally
@ -141,8 +142,8 @@ begin
ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1];
ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2];
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;
end;
finally

View File

@ -99,6 +99,9 @@ type
function GetFELICITACIONValue: 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 NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue;
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 DESCUENTO: Double read GetDESCUENTOValue write SetDESCUENTOValue;
property FELICITACION: Integer read GetFELICITACIONValue write SetFELICITACIONValue;
property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue;
end;
IBizProveedor = interface (IBizContacto)
@ -159,6 +163,9 @@ type
procedure SetVENCIMIENTO_FACTURAS_2Value(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 DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
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_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value;
property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value;
property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue;
end;
IBizEmpleado = interface (IBizContacto)
@ -321,6 +329,10 @@ type
function GetFELICITACIONValue: Integer;
procedure SetFELICITACIONValue(const aValue: Integer);
function GetEMAIL_ADMINISTRACIONValue: String;
procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String);
public
procedure IniciarValoresContactoNuevo; override;
constructor Create(aDataTable: TDADataTable); override;
@ -340,6 +352,7 @@ type
property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
property DESCUENTO: Double read GetDESCUENTOValue write SetDESCUENTOValue;
property FELICITACION: Integer read GetFELICITACIONValue write SetFELICITACIONValue;
property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue;
end;
@ -386,6 +399,9 @@ type
procedure SetVENCIMIENTO_FACTURAS_2Value(const Value: Smallint);
procedure SetVENCIMIENTO_FACTURAS_3Value(const Value: Smallint);
function GetEMAIL_ADMINISTRACIONValue: String;
procedure SetEMAIL_ADMINISTRACIONValue(const aValue: String);
public
procedure IniciarValoresContactoNuevo; override;
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_2: Smallint read GetVENCIMIENTO_FACTURAS_2Value write SetVENCIMIENTO_FACTURAS_2Value;
property VENCIMIENTO_FACTURAS_3: Smallint read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value;
property EMAIL_ADMINISTRACION: String read GetEMAIL_ADMINISTRACIONValue write SetEMAIL_ADMINISTRACIONValue;
end;
@ -594,6 +611,11 @@ begin
result := DataTable.Fields[idx_ClientesDESCUENTO].AsFloat;
end;
function TBizCliente.GetEMAIL_ADMINISTRACIONValue: String;
begin
result := DataTable.Fields[idx_ClientesEMAIL_ADMINISTRACION].AsString;
end;
function TBizCliente.GetFELICITACIONValue: Integer;
begin
result := DataTable.Fields[idx_ClientesFELICITACION].AsInteger;
@ -640,6 +662,11 @@ begin
DataTable.Fields[idx_ClientesDESCUENTO].AsFloat := aValue;
end;
procedure TBizCliente.SetEMAIL_ADMINISTRACIONValue(const aValue: String);
begin
DataTable.Fields[idx_ClientesEMAIL_ADMINISTRACION].AsString := aValue;
end;
procedure TBizCliente.SetFELICITACIONValue(const aValue: Integer);
begin
DataTable.Fields[idx_ClientesFELICITACION].AsInteger := aValue;
@ -824,6 +851,11 @@ begin
result := DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat;
end;
function TBizProveedor.GetEMAIL_ADMINISTRACIONValue: String;
begin
result := DataTable.Fields[idx_ProveedoresEMAIL_ADMINISTRACION].AsString;
end;
procedure TBizProveedor.SetCERTIFICACIONValue(const aValue: String);
begin
DataTable.Fields[idx_ProveedoresCERTIFICACION].AsString := aValue;
@ -844,6 +876,11 @@ begin
DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat := aValue;
end;
procedure TBizProveedor.SetEMAIL_ADMINISTRACIONValue(const aValue: String);
begin
DataTable.Fields[idx_ProveedoresEMAIL_ADMINISTRACION].AsString := aValue;
end;
procedure TBizProveedor.SetGRUPO_PROVEEDORValue(const aValue: String);
begin
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_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2];
ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3];
ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ProveedoresEMAIL_ADMINISTRACION];
Execute;
end;
@ -136,7 +137,8 @@ begin
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_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3];
ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ProveedoresEMAIL_ADMINISTRACION];
Execute;
end;
finally

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>
<ProjectGuid>{7ed85635-c723-4c0b-bf1d-f719e0ea33ad}</ProjectGuid>
<MainSource>FacturasCliente_controller.dpk</MainSource>
@ -41,26 +42,27 @@
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">True</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">FacturasCliente_controller.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">FacturasCliente_controller.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="FacturasCliente_controller.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\AlbaranesCliente_controller.dcp" />
<DCCReference Include="..\AlbaranesCliente_model.dcp" />
<DCCReference Include="..\ApplicationBase.dcp" />
<DCCReference Include="..\Articulos_controller.dcp" />
<DCCReference Include="..\Contactos_controller.dcp" />
<DCCReference Include="..\FacturasCliente_data.dcp" />
<DCCReference Include="..\FacturasCliente_model.dcp" />
<DCCReference Include="..\FormasPago_controller.dcp" />
<DCCReference Include="..\RecibosCliente_controller.dcp" />
<DCCReference Include="uArticulosFacturaClienteController.pas" />
<DCCReference Include="uDetallesFacturaClienteController.pas" />
<DCCReference Include="uFacturasClienteController.pas" />
<DCCReference Include="uFacturasClienteReportController.pas" />
<DCCReference Include="View\AlbaranesCliente_controller.dcp" />
<DCCReference Include="View\AlbaranesCliente_model.dcp" />
<DCCReference Include="View\ApplicationBase.dcp" />
<DCCReference Include="View\Articulos_controller.dcp" />
<DCCReference Include="View\Contactos_controller.dcp" />
<DCCReference Include="View\FacturasCliente_data.dcp" />
<DCCReference Include="View\FacturasCliente_model.dcp" />
<DCCReference Include="View\FormasPago_controller.dcp" />
<DCCReference Include="View\RecibosCliente_controller.dcp" />
<DCCReference Include="View\uIDialogListaFacturasEnvioEMail.pas" />
<DCCReference Include="View\uIEditorElegirArticulosFacturasCliente.pas" />
<DCCReference Include="View\uIEditorElegirFacturasCliente.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 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;
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
@ -78,6 +84,8 @@ type
function ValidarFactura(AFactura: IBizFacturaCliente): Boolean;
procedure GenerarRecibos(AFactura: IBizFacturaCliente);
procedure _AnadirMarcaEnvioCorreo(AFactura: IBizFacturaCliente);
protected
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
@ -121,7 +129,13 @@ type
function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): 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;
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
@ -135,11 +149,11 @@ uses
uDataModuleFacturasCliente, uBizDetallesFacturaCliente, uControllerDetallesBase,
uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uDateUtils, uNumUtils,
uAlbaranesClienteController, schAlbaranesClienteClient_Intf, uROTypes, uDetallesAlbaranClienteController,
uBizDetallesAlbaranCliente, uFacturasClienteReportController,
uBizDetallesAlbaranCliente, uFacturasClienteReportController, uDataModuleRegistroCorreos,
DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente,
uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils,
uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uStringsUtils,
uROXMLIntf;
uROXMLIntf, uIDialogListaFacturasEnvioEMail;
{procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente;
@ -705,6 +719,37 @@ begin
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;
begin
Result := Buscar(ID_NULO);
@ -808,47 +853,112 @@ begin
end;
end;
procedure TFacturasClienteController.EnviarFacturaPorEMail(
AFactura: IBizFacturaCliente);
function TFacturasClienteController.EnviarEmailFacturas(AFacturas: IBizFacturaCliente): Boolean;
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
AReportController : IFacturasClienteReportController;
AFicheroTMP : TFileName;
AEMail : String;
AAsunto : String;
AListaEmail : TStringList;
begin
if not Assigned(AFactura) then
raise Exception.Create ('Factura no asignado (EnviarFacturaPorEMail)');
raise Exception.Create ('Factura no asignada (EnviarFacturaPorEMail)');
if AFactura.DataTable.Active then
AFactura.DataTable.Active := True;
RecuperarCliente(AFactura);
AFactura.Cliente.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AFactura.REFERENCIA));
AListaEmail := TStringList.Create;
try
RecuperarCliente(AFactura);
AFactura.Cliente.DataTable.Active := True;
if not EsCadenaVacia(ADireccionEMail) then
AEMail := ADireccionEMail
else begin
AListaEmail := TStringList.Create;
try
if not EsCadenaVacia(AFactura.Cliente.EMAIL_ADMINISTRACION) then
AListaEmail.Add(AFactura.Cliente.EMAIL_ADMINISTRACION);
if not AFactura.Cliente.EMAIL_1IsNull then
AListaEmail.Add(AFactura.Cliente.EMAIL_1);
if not AFactura.Cliente.EMAIL_2IsNull then
AListaEmail.Add(AFactura.Cliente.EMAIL_2);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
end;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Factura ' + AFactura.REFERENCIA;
ShowHourglassCursor;
Application.ProcessMessages;
AReportController := TFacturasClienteReportController.Create;
try
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
SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL;
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;

View File

@ -35,7 +35,12 @@ requires
AlbCli_FacCli_relation,
GestorInformes_controller,
rtl,
vcl;
vcl,
cxLibraryD11,
dxThemeD11,
dxGDIPlusD11,
dxCoreD11,
vclx;
contains
uFacturasClienteViewRegister in 'uFacturasClienteViewRegister.pas',
@ -49,6 +54,7 @@ contains
uViewElegirArticulosFacturasCliente in 'uViewElegirArticulosFacturasCliente.pas' {frViewElegirArticulosFacturasCliente: TFrame},
uEditorElegirFacturasCliente in 'uEditorElegirFacturasCliente.pas' {fEditorElegirFacturasCliente: TfEditorElegirFacturasCliente},
uViewDatosYSeleccionClienteFacturaCliente in 'uViewDatosYSeleccionClienteFacturaCliente.pas' {frViewDatosYSeleccionClienteFacturaCliente: TFrame},
uDialogOpcionesImpresionFacturasCliente in 'uDialogOpcionesImpresionFacturasCliente.pas' {fDialogOpcionesImpresionFacturasCliente: TfEditorElegirFacturasCliente};
uDialogOpcionesImpresionFacturasCliente in 'uDialogOpcionesImpresionFacturasCliente.pas' {fDialogOpcionesImpresionFacturasCliente: TfEditorElegirFacturasCliente},
uDialogListaFacturasEnvioEMail in 'uDialogListaFacturasEnvioEMail.pas' {fDialogListaFacturasEnvioEMail: TForm};
end.

View File

@ -49,17 +49,24 @@
<DelphiCompile Include="FacturasCliente_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\AlbCli_FacCli_relation.dcp" />
<DCCReference Include="..\ApplicationBase.dcp" />
<DCCReference Include="..\Articulos_view.dcp" />
<DCCReference Include="..\Base.dcp" />
<DCCReference Include="..\Contactos_view.dcp" />
<DCCReference Include="..\FacturasCliente_controller.dcp" />
<DCCReference Include="..\FacturasCliente_model.dcp" />
<DCCReference Include="..\GestorInformes_controller.dcp" />
<DCCReference Include="..\GUIBase.dcp" />
<DCCReference Include="..\rtl.dcp" />
<DCCReference Include="..\vcl.dcp" />
<DCCReference Include="AlbCli_FacCli_relation.dcp" />
<DCCReference Include="ApplicationBase.dcp" />
<DCCReference Include="Articulos_view.dcp" />
<DCCReference Include="Base.dcp" />
<DCCReference Include="Contactos_view.dcp" />
<DCCReference Include="cxLibraryD11.dcp" />
<DCCReference Include="dxCoreD11.dcp" />
<DCCReference Include="dxGDIPlusD11.dcp" />
<DCCReference Include="dxThemeD11.dcp" />
<DCCReference Include="FacturasCliente_controller.dcp" />
<DCCReference Include="FacturasCliente_model.dcp" />
<DCCReference Include="GestorInformes_controller.dcp" />
<DCCReference Include="GUIBase.dcp" />
<DCCReference Include="rtl.dcp" />
<DCCReference Include="uDialogListaFacturasEnvioEMail.pas">
<Form>DialogListaFacturasEnvioEMail</Form>
<DesignClass>TForm</DesignClass>
</DCCReference>
<DCCReference Include="uDialogOpcionesImpresionFacturasCliente.pas">
<Form>fDialogOpcionesImpresionFacturasCliente</Form>
<DesignClass>TfEditorElegirFacturasCliente</DesignClass>
@ -104,6 +111,8 @@
<Form>frViewFacturasCliente</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="vcl.dcp" />
<DCCReference Include="vclx.dcp" />
</ItemGroup>
</Project>
<!-- 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
290)
inherited Label1: TLabel
Left = 412
ExplicitLeft = 412
Left = 383
Width = 311
ExplicitLeft = 383
ExplicitWidth = 311
end
inherited eReferencia: TcxDBTextEdit
Style.LookAndFeel.SkinName = ''
@ -160,8 +162,8 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
Width = 111
end
inherited bFormasPago: TButton
Left = 230
ExplicitLeft = 230
Left = 201
ExplicitLeft = 201
end
inherited cbCuentaBancaria: TcxDBComboBox
Style.LookAndFeel.SkinName = ''
@ -172,26 +174,27 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
Width = 249
end
inherited cbClienteFinal: TcxDBTextEdit
Left = 412
Left = 383
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 412
ExplicitLeft = 383
ExplicitWidth = 339
Width = 339
end
inherited bElegirClienteFinal: TButton
Left = 736
ExplicitLeft = 736
end
inherited frViewDatosYSeleccionClienteFacturaCliente1: TfrViewDatosYSeleccionClienteFacturaCliente
Left = 401
Left = 372
Width = 505
ExplicitLeft = 401
ExplicitLeft = 372
ExplicitWidth = 505
inherited dxLayoutControl1: TdxLayoutControl
Width = 505
ExplicitWidth = 505
ExplicitHeight = 170
inherited edtlNombre: TcxDBTextEdit
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
@ -201,26 +204,28 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
Width = 224
end
inherited edtNIFCIF: TcxDBTextEdit
Left = 256
Left = 285
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 256
ExplicitLeft = 285
end
inherited Button3: TBitBtn
Left = 167
ExplicitLeft = 167
Left = 196
ExplicitLeft = 196
end
inherited Button4: TButton
Left = 336
ExplicitLeft = 336
Left = 365
ExplicitLeft = 365
end
inherited edtDireccion: TcxMemo
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 121
Width = 121
end
end
end
@ -229,6 +234,8 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 275
Width = 275
end
end
end
@ -236,6 +243,10 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
object pagContenido: TTabSheet
Caption = 'Contenido'
ImageIndex = 1
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
inline frViewDetallesFacturaCliente1: TfrViewDetallesFacturaCliente
Left = 0
Top = 0
@ -256,9 +267,9 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
ExplicitHeight = 290
inherited ToolBar1: TToolBar
Width = 809
Height = 73
Height = 46
ExplicitWidth = 809
ExplicitHeight = 73
ExplicitHeight = 46
inherited ToolButton3: TToolButton
Wrap = False
end
@ -268,58 +279,87 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
ExplicitLeft = 278
ExplicitTop = 0
end
inherited FontName: TJvFontComboBox
inherited ToolButton14: TToolButton
Left = 334
Top = 0
ExplicitLeft = 334
ExplicitTop = 0
end
inherited ToolButton14: TToolButton
Left = 479
Top = 0
Wrap = True
ExplicitLeft = 479
ExplicitTop = 0
inherited FontName: TJvFontComboBox
Top = 22
ExplicitTop = 22
end
inherited FontSize: TEdit
Left = 0
Top = 22
Width = 296
ExplicitLeft = 0
ExplicitTop = 22
ExplicitWidth = 296
end
inherited UpDown1: TUpDown
Left = 312
ExplicitLeft = 312
Left = 441
Top = 22
ExplicitLeft = 441
ExplicitTop = 22
end
inherited ToolButton13: TToolButton
Left = 329
ExplicitLeft = 329
Left = 458
Top = 22
ExplicitLeft = 458
ExplicitTop = 22
end
inherited ToolButton11: TToolButton
Left = 337
ExplicitLeft = 337
inherited ToolButton6: TToolButton
Left = 466
Top = 22
ExplicitLeft = 466
ExplicitTop = 22
end
inherited ToolButton7: TToolButton
Wrap = False
Left = 532
Top = 22
ExplicitLeft = 532
ExplicitTop = 22
end
inherited ToolButton8: TToolButton
Left = 403
Top = 49
ExplicitLeft = 403
ExplicitTop = 49
Left = 599
Top = 22
ExplicitLeft = 599
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
inherited cxGrid: TcxGrid
Top = 99
Top = 72
Width = 809
Height = 191
Height = 218
ExplicitWidth = 809
ExplicitHeight = 191
end
inherited TBXDock1: TTBXDock
Top = 73
Top = 46
Width = 809
ExplicitTop = 73
ExplicitWidth = 809
inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 566

View File

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

View File

@ -100,9 +100,28 @@ begin
end;
procedure TfEditorFacturasCliente.actEnviarEMailExecute(Sender: TObject);
var
AFacturas : IBizFacturaCliente;
begin
inherited;
FController.EnviarFacturaPorEMail(FFacturas);
if ViewGrid.NumSeleccionados = 1 then
FController.GenerarEmailFactura(FFacturas)
else begin
ShowHourglassCursor;
try
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords);
AFacturas := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente;
if Assigned(AFacturas) then
if FController.EnviarEmailFacturas(AFacturas) then
RefrescarInterno;
finally
AFacturas := NIL;
HideHourglassCursor;
end;
end;
end;
procedure TfEditorFacturasCliente.actEnviarEMailUpdate(Sender: TObject);

View File

@ -10,7 +10,8 @@ implementation
uses
uEditorRegistryUtils, uEditorFacturasCliente, uEditorFacturaCliente,
uEditorFacturasClienteReport, uEditorElegirArticulosFacturaCliente,
uEditorElegirFacturasCliente, uDialogOpcionesImpresionFacturasCliente;
uEditorElegirFacturasCliente, uDialogOpcionesImpresionFacturasCliente,
uDialogListaFacturasEnvioEMail;
procedure RegisterViews;
begin
@ -20,6 +21,7 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirFacturasCliente, 'EditorElegirFacturasCliente');
EditorRegistry.RegisterClass(TfEditorFacturasClientePreview, 'EditorFacturasClientePreview');
EditorRegistry.RegisterClass(TfDialogOpcionesImpresionFacturasCliente, 'DialogOpcionesImpresionFacturasCliente');
EditorRegistry.RegisterClass(TfDialogListaFacturasEnvioEMail, 'DialogListaFacturasEnvioEMail');
end;
procedure UnregisterViews;
@ -30,6 +32,7 @@ begin
EditorRegistry.UnRegisterClass(TfEditorElegirFacturasCliente);
EditorRegistry.UnRegisterClass(TfEditorFacturasClientePreview);
EditorRegistry.UnRegisterClass(TfDialogOpcionesImpresionFacturasCliente);
EditorRegistry.UnRegisterClass(TfDialogListaFacturasEnvioEMail);
end;
end.

View File

@ -61,6 +61,7 @@
<DCCReference Include="View\FacturasProveedor_model.dcp" />
<DCCReference Include="View\FormasPago_controller.dcp" />
<DCCReference Include="View\RecibosProveedor_controller.dcp" />
<DCCReference Include="View\uIDialogListaFacturasProveedorEnvioEMail.pas" />
<DCCReference Include="View\uIEditorElegirArticulosFacturasProveedor.pas" />
<DCCReference Include="View\uIEditorElegirDomiciliacion.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;
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;
end;
@ -77,6 +84,8 @@ type
function ValidarFactura(AFactura: IBizFacturaProveedor): Boolean;
procedure GenerarRecibos(AFactura: IBizFacturaProveedor);
procedure _AnadirMarcaEnvioCorreo(AFactura: IBizFacturaProveedor);
protected
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
@ -122,6 +131,13 @@ type
function DarListaAnosFacturas: TStringList;
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;
end;
@ -136,11 +152,10 @@ uses
uBizPedidosProveedor, uPedidosProveedorController, uBizDetallesPedidoProveedor,
uRecibosProveedorController, uBizRecibosProveedor, uNumUtils,
uFacturasProveedorReportController, DateUtils, Forms, Dialogs,
uFacturasProveedorReportController, DateUtils, Forms, Dialogs, uIDialogListaFacturasProveedorEnvioEMail,
uFormasPagoController, uBizFormasPago, uStringsUtils, uIntegerListUtils,
uIEditorElegirDomiciliacion,
cxEdit;
uIEditorElegirDomiciliacion, uDataModuleRegistroCorreos,
uSistemaFunc, uDialogElegirEMail, uEMailUtils, cxEdit;
procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoProveedor;
ADestino : IBizDetallesFacturaProveedor);
@ -600,6 +615,37 @@ begin
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;
begin
Result := Buscar(ID_NULO);
@ -707,6 +753,98 @@ begin
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;
begin
Result := EsModificable(AFactura);
@ -989,6 +1127,24 @@ begin
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);
var
AFormasPagoController : IFormasPagoController;

View File

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

View File

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

View File

@ -41,6 +41,12 @@
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">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><Source><Source Name="MainSource">FacturasProveedor_view.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
@ -49,30 +55,40 @@
<DelphiCompile Include="FacturasProveedor_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="adortl.dcp" />
<DCCReference Include="AlbProv_FacProv_relation.dcp" />
<DCCReference Include="Articulos_view.dcp" />
<DCCReference Include="cxDataD11.dcp" />
<DCCReference Include="cxEditorsD11.dcp" />
<DCCReference Include="cxExportD11.dcp" />
<DCCReference Include="cxExtEditorsD11.dcp" />
<DCCReference Include="cxGridD11.dcp" />
<DCCReference Include="cxLibraryD11.dcp" />
<DCCReference Include="cxPageControlD11.dcp" />
<DCCReference Include="DataAbstract_Core_D11.dcp" />
<DCCReference Include="dbrtl.dcp" />
<DCCReference Include="dsnap.dcp" />
<DCCReference Include="dxGDIPlusD11.dcp" />
<DCCReference Include="dxThemeD11.dcp" />
<DCCReference Include="FacturasProveedor_controller.dcp" />
<DCCReference Include="FacturasProveedor_model.dcp" />
<DCCReference Include="GestorInformes_controller.dcp" />
<DCCReference Include="GUIBase.dcp" />
<DCCReference Include="PedProv_FacProv_relation.dcp" />
<DCCReference Include="PngComponentsD10.dcp" />
<DCCReference Include="PNG_D10.dcp" />
<DCCReference Include="RemObjects_Core_D11.dcp" />
<DCCReference Include="rtl.dcp" />
<DCCReference Include="..\Controller\View\adortl.dcp" />
<DCCReference Include="..\Controller\View\AlbProv_FacProv_relation.dcp" />
<DCCReference Include="..\Controller\View\Articulos_view.dcp" />
<DCCReference Include="..\Controller\View\cxDataD11.dcp" />
<DCCReference Include="..\Controller\View\cxEditorsD11.dcp" />
<DCCReference Include="..\Controller\View\cxExportD11.dcp" />
<DCCReference Include="..\Controller\View\cxExtEditorsD11.dcp" />
<DCCReference Include="..\Controller\View\cxGridD11.dcp" />
<DCCReference Include="..\Controller\View\cxLibraryD11.dcp" />
<DCCReference Include="..\Controller\View\cxPageControlD11.dcp" />
<DCCReference Include="..\Controller\View\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Controller\View\dbrtl.dcp" />
<DCCReference Include="..\Controller\View\dsnap.dcp" />
<DCCReference Include="..\Controller\View\dxCoreD11.dcp" />
<DCCReference Include="..\Controller\View\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Controller\View\dxThemeD11.dcp" />
<DCCReference Include="..\Controller\View\FacturasProveedor_controller.dcp" />
<DCCReference Include="..\Controller\View\FacturasProveedor_model.dcp" />
<DCCReference Include="..\Controller\View\GestorInformes_controller.dcp" />
<DCCReference Include="..\Controller\View\GUIBase.dcp" />
<DCCReference Include="..\Controller\View\PedProv_FacProv_relation.dcp" />
<DCCReference Include="..\Controller\View\PngComponentsD10.dcp" />
<DCCReference Include="..\Controller\View\PNG_D10.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">
<Form>fEditorElegirArticulosFacturaProveedor</Form>
<DesignClass>TfEditorElegirArticulosFacturaProveedor</DesignClass>
@ -114,11 +130,6 @@
<Form>frViewPedidosFacturaProveedor</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="vcl.dcp" />
<DCCReference Include="vclactnband.dcp" />
<DCCReference Include="vcldb.dcp" />
<DCCReference Include="vcljpg.dcp" />
<DCCReference Include="vclx.dcp" />
</ItemGroup>
</Project>
<!-- 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
ExplicitWidth = 849
inherited tbxMain: TTBXToolbar
ExplicitWidth = 632
ExplicitWidth = 740
object TBXSubmenuItem2: TTBXSubmenuItem [0]
Caption = 'Nuevo'
DisplayMode = nbdmImageAndText
@ -57,6 +57,9 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor
inherited TBXItem2: TTBXItem
Visible = False
end
object TBXItem42: TTBXItem [14]
Action = actEnviarEMail
end
end
inherited tbxFiltro: TTBXToolbar
ExplicitWidth = 427
@ -282,6 +285,12 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor
OnExecute = actDomiciliacionExecute
OnUpdate = actDomiciliacionUpdate
end
object actEnviarEMail: TAction
Category = 'Acciones'
Caption = 'Enviar por e-mail...'
OnExecute = actEnviarEMailExecute
OnUpdate = actEnviarEMailUpdate
end
end
inherited SmallImages: TPngImageList [5]
PngImages = <

View File

@ -38,6 +38,8 @@ type
TBXItem41: TTBXItem;
TBXSeparatorItem17: TTBXSeparatorItem;
JsListaFacturasNoModificables: TJSDialog;
actEnviarEMail: TAction;
TBXItem42: TTBXItem;
procedure FormShow(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actNuevaFacturaExecute(Sender: TObject);
@ -46,6 +48,8 @@ type
procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure actDomiciliacionExecute(Sender: TObject);
procedure actDomiciliacionUpdate(Sender: TObject);
procedure actEnviarEMailExecute(Sender: TObject);
procedure actEnviarEMailUpdate(Sender: TObject);
private
FFacturas: IBizFacturaProveedor;
@ -139,6 +143,41 @@ begin
(Sender as TAction).Enabled := (FFacturas.SITUACION = CTE_PENDIENTE);
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);
var
Respuesta : Integer;

View File

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

View File

@ -49,14 +49,15 @@
<DelphiCompile Include="PedidosProveedor_controller.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Articulos_controller.dcp" />
<DCCReference Include="..\Base.dcp" />
<DCCReference Include="..\Contactos_controller.dcp" />
<DCCReference Include="..\PedidosProveedor_data.dcp" />
<DCCReference Include="uArticulosPedidoProveedorController.pas" />
<DCCReference Include="uDetallesPedidoProveedorController.pas" />
<DCCReference Include="uPedidosProveedorController.pas" />
<DCCReference Include="uPedidosProveedorReportController.pas" />
<DCCReference Include="View\Articulos_controller.dcp" />
<DCCReference Include="View\Base.dcp" />
<DCCReference Include="View\Contactos_controller.dcp" />
<DCCReference Include="View\PedidosProveedor_data.dcp" />
<DCCReference Include="View\uIDialogListaPedidosProveedorEnvioEMail.pas" />
<DCCReference Include="View\uIEditorDireccionEntregaPedidoProveedor.pas" />
<DCCReference Include="View\uIEditorElegirArticulosPedidosProveedor.pas" />
<DCCReference Include="View\uIEditorElegirPedidosProveedor.pas" />

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 ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): 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 AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant);
@ -63,6 +69,9 @@ type
end;
TPedidosProveedorController = class(TControllerBase, IPedidosProveedorController)
private
procedure _AnadirMarcaEnvioCorreo(APedido: IBizPedidoProveedor);
protected
FDataModule : IDataModulePedidosProveedor;
FProveedorController : IProveedoresController;
@ -128,7 +137,13 @@ type
function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : 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 AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant);
@ -141,11 +156,12 @@ implementation
uses
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorPedidosProveedor, uDataModulePedidosProveedor, uFactuGES_App,
uIEditorPedidosProveedor, uDataModulePedidosProveedor, uFactuGES_App, Forms,
uBizDetallesPedidoProveedor, uBizContactos, uDataTableUtils, uDataModuleUsuarios,
schPedidosProveedorClient_Intf, uDAInterfaces, uPedidosProveedorReportController,
uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor,
uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor, uIDialogListaPedidosProveedorEnvioEMail,
Dialogs, uIEditorDireccionEntregaPedidoProveedor, uIEditorSituacionPedidoProveedor,
uDataModuleRegistroCorreos,
Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils;
{ TPedidosProveedorController }
@ -562,6 +578,37 @@ begin
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;
begin
Result := Buscar(ID_NULO);
@ -658,47 +705,113 @@ begin
end;
end;
procedure TPedidosProveedorController.EnviarPedidoPorEMail(
APedido: IBizPedidoProveedor);
function TPedidosProveedorController.EnviarEmailPedidos(
APedidos: IBizPedidoProveedor): Boolean;
var
ADialog : IDialogListaPedidosProveedorEnvioEMail;
ARespuesta : Integer;
begin
ADialog := NIL;
if not Assigned(APedidos) then
raise Exception.Create ('Pedidos no asignadas (EnviarPedidosPorEMail)');
if APedidos.DataTable.Active then
APedidos.DataTable.Active := True;
ShowHourglassCursor;
try
CreateEditor('DialogListaPedidosProveedorEnvioEMail', IDialogListaPedidosProveedorEnvioEMail, ADialog);
if Assigned(ADialog) then
begin
try
ADialog.Pedidos := APedidos;
ARespuesta := ADialog.ShowModal;
Result := (ARespuesta = mrOK)
finally
ADialog.Release;
end;
end;
finally
ADialog := NIL;
HideHourglassCursor;
end;
end;
function TPedidosProveedorController.EnviarPedidoPorEMail(
APedido: IBizPedidoProveedor; const AEnviarDirectamente: Boolean;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
var
AReportController : IPedidosProveedorReportController;
AFicheroTMP : TFileName;
AEMail : String;
AAsunto : String;
AListaEmail : TStringList;
begin
if not Assigned(APedido) then
raise Exception.Create ('Pedido no asignado (EnviarPedidoPorEMail)');
raise Exception.Create ('Pedido no asignada (EnviarPedidoPorEMail)');
if APedido.DataTable.Active then
APedido.DataTable.Active := True;
RecuperarProveedor(APedido);
APedido.Proveedor.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APedido.REFERENCIA));
AListaEmail := TStringList.Create;
try
RecuperarProveedor(APedido);
APedido.Proveedor.DataTable.Active := True;
if not EsCadenaVacia(ADireccionEMail) then
AEMail := ADireccionEMail
else begin
AListaEmail := TStringList.Create;
try
if not EsCadenaVacia(APedido.Proveedor.EMAIL_ADMINISTRACION) then
AListaEmail.Add(APedido.Proveedor.EMAIL_ADMINISTRACION);
if not APedido.Proveedor.EMAIL_1IsNull then
AListaEmail.Add(APedido.Proveedor.EMAIL_1);
if not APedido.Proveedor.EMAIL_2IsNull then
AListaEmail.Add(APedido.Proveedor.EMAIL_2);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
end;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Pedido ' + APedido.REFERENCIA;
ShowHourglassCursor;
Application.ProcessMessages;
AReportController := TPedidosProveedorReportController.Create;
try
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
DeleteFile(AFicheroTMP);
SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL;
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;

View File

@ -91,6 +91,7 @@ contains
uEditorElegirPersonaContactoPedido in 'uEditorElegirPersonaContactoPedido.pas' {fEditorElegirPersonaContactoPedido: TfEditorSituacionPedidoProveedor},
uViewObraReserva in 'uViewObraReserva.pas' {frViewObraReserva: TFrame},
uDialogOpcionesImpresionPedidosProveedor in 'uDialogOpcionesImpresionPedidosProveedor.pas' {fDialogOpcionesImpresionPedidosProveedor: TForm},
uViewDatosYSeleccionProveedorPedido in 'uViewDatosYSeleccionProveedorPedido.pas' {frViewDatosYSeleccionProveedorPedido: TFrame};
uViewDatosYSeleccionProveedorPedido in 'uViewDatosYSeleccionProveedorPedido.pas' {frViewDatosYSeleccionProveedorPedido: TFrame},
uDialogListaPedidosProveedorEnvioEMail in 'uDialogListaPedidosProveedorEnvioEMail.pas' {frDialogListaPedidosProveedorEnvioEMail: Tform};
end.

View File

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

@ -62,7 +62,7 @@ type
procedure ImprimirInterno; override;
procedure PrevisualizarInterno; override;
procedure RefrescarInterno; override;
public
procedure PonerTitulos(const ATitulo: string = ''); override;
@ -75,6 +75,7 @@ type
implementation
uses
cxControls,
uDataModulePedidosProveedor, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase,
uGenerarAlbaranesProvUtils, uGenerarFacturasProvPedUtils,
// uInventarioController, uBizInventario,
@ -104,9 +105,28 @@ begin
end;
procedure TfEditorPedidosProveedor.actEnviarEMailExecute(Sender: TObject);
var
APedidos : IBizPedidoProveedor;
begin
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;
procedure TfEditorPedidosProveedor.actEnviarEMailUpdate(Sender: TObject);

View File

@ -11,7 +11,7 @@ uses
uEditorRegistryUtils, uEditorPedidosProveedor, uEditorPedidoProveedor,
uEditorPedidosProveedorReport, uEditorElegirPedidosProveedor,
uEditorElegirArticulosPedidoProveedor, uEditorDireccionEntregaPedidoProveedor,
uEditorSituacionPedidoProveedor;
uEditorSituacionPedidoProveedor, uDialogListaPedidosProveedorEnvioEMail;
procedure RegisterViews;
begin
@ -21,7 +21,9 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirPedidosProveedor, 'EditorElegirPedidosProveedor');
EditorRegistry.RegisterClass(TfEditorElegirArticulosPedidoProveedor, 'EditorElegirArticulosPedidoProveedor');
EditorRegistry.RegisterClass(TfEditorPedidosProveedorPreview, 'EditorPedidosProveedorPreview');
EditorRegistry.RegisterClass(TfEditorSituacionPedidoProveedor, 'EditorSituacionPedidoProveedor');
EditorRegistry.RegisterClass(TfEditorSituacionPedidoProveedor, 'EditorSituacionPedidoProveedor');
EditorRegistry.RegisterClass(TfDialogListaPedidosProveedorEnvioEMail, 'DialogListaPedidosProveedorEnvioEMail');
end;
procedure UnregisterViews;
@ -30,9 +32,10 @@ begin
EditorRegistry.UnRegisterClass(TfEditorPedidosProveedor);
EditorRegistry.UnRegisterClass(TfEditorPedidoProveedor);
EditorRegistry.UnRegisterClass(TfEditorElegirPedidosProveedor);
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoProveedor);
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoProveedor);
EditorRegistry.UnRegisterClass(TfEditorPedidosProveedorPreview);
EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoProveedor);
EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoProveedor);
EditorRegistry.UnRegisterClass(TfDialogListaPedidosProveedorEnvioEMail);
end;
end.

View File

@ -49,20 +49,17 @@
<DelphiCompile Include="PedidosCliente_controller.dpk">
<MainSource>MainSource</MainSource>
</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="uDetallesPedidoClienteController.pas" />
<DCCReference Include="uPedidosClienteController.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\uIEditorDireccionEntregaPedidoCliente.pas" />
<DCCReference Include="View\uIEditorElegirArticulosPedidosCliente.pas" />
@ -70,6 +67,10 @@
<DCCReference Include="View\uIEditorPedidoCliente.pas" />
<DCCReference Include="View\uIEditorPedidosCliente.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>
</Project>
<!-- EurekaLog First Line

View File

@ -13,4 +13,4 @@ BEGIN
END
/* 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 ElegirPedidos(APedido: IBizPedidoCliente; AMensaje: String; AMultiSelect: Boolean): 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;
@ -69,6 +75,9 @@ type
end;
TPedidosClienteController = class(TControllerBase, IPedidosClienteController)
private
procedure _AnadirMarcaEnvioCorreo(APedido: IBizPedidoCliente);
protected
FDataModule : IDataModulePedidosCliente;
FClienteController : IClientesController;
@ -134,7 +143,13 @@ type
function ExtraerSeleccionados(APedido: IBizPedidoCliente) : 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 AsignarIDAlmacen(APedido: IBizPedidoCliente; const IDAlmacen: Variant);
@ -142,7 +157,7 @@ type
function DarListaAnosPedidos: TStringList;
procedure FiltrarAno(APedido: IBizPedidoCliente; ADynWhereDataTable: WideString; const Ano: String);
function Localizar(APedidos: IBizPedidoCliente; const ID : Integer): Boolean;
function Localizar(APedidos: IBizPedidoCliente; const ID : Integer): Boolean;
end;
implementation
@ -150,10 +165,10 @@ implementation
uses
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorPedidosCliente, uDataModulePedidosCliente, uFactuGES_App,
uBizContactos, uDataTableUtils, uDataModuleUsuarios,
uBizContactos, uDataTableUtils, uDataModuleUsuarios, Forms, uDataModuleRegistroCorreos,
schPedidosClienteClient_Intf, uDAInterfaces, uPedidosClienteReportController,
uDateUtils, uIEditorPedidoCliente, uIEditorElegirPedidosCliente,
Dialogs, uIEditorDireccionEntregaPedidoCliente,
Dialogs, uIEditorDireccionEntregaPedidoCliente, uIDialogListaPedidosClienteEnvioEMail,
Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils;
{ TPedidosClienteController }
@ -562,6 +577,37 @@ begin
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;
begin
Result := Buscar(ID_NULO);
@ -658,47 +704,113 @@ begin
end;
end;
procedure TPedidosClienteController.EnviarPedidoPorEMail(
APedido: IBizPedidoCliente);
function TPedidosClienteController.EnviarEmailPedidos(
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
AReportController : IPedidosClienteReportController;
AFicheroTMP : TFileName;
AEMail : String;
AAsunto : String;
AListaEmail : TStringList;
begin
if not Assigned(APedido) then
raise Exception.Create ('Pedido no asignado (EnviarPedidoPorEMail)');
raise Exception.Create ('Pedido no asignada (EnviarPedidoPorEMail)');
if APedido.DataTable.Active then
APedido.DataTable.Active := True;
RecuperarCliente(APedido);
APedido.Cliente.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APedido.REFERENCIA));
AListaEmail := TStringList.Create;
try
RecuperarCliente(APedido);
APedido.Cliente.DataTable.Active := True;
if not EsCadenaVacia(ADireccionEMail) then
AEMail := ADireccionEMail
else begin
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
AListaEmail.Add(APedido.Cliente.EMAIL_1);
if not APedido.Cliente.EMAIL_2IsNull then
AListaEmail.Add(APedido.Cliente.EMAIL_2);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
end;
if not EsCadenaVacia(AAsuntoEMail) then
AAsunto := AAsuntoEMail
else
AAsunto := 'Pedido ' + APedido.REFERENCIA;
ShowHourglassCursor;
Application.ProcessMessages;
AReportController := TPedidosClienteReportController.Create;
try
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
DeleteFile(AFicheroTMP);
SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL;
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;

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\PedidosCliente_data.RES */
/* c:\temp\dtf275.tmp */
/* c:\temp\dtf8D.tmp */

View File

@ -13,4 +13,4 @@ BEGIN
END
/* 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\Model\Contactos_model.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="..\Inventario\Controller\Inventario_controller.dproj" />
<Projects Include="..\Inventario\Data\Inventario_data.dproj" />
@ -301,14 +302,23 @@
<Target Name="AlbaranesProveedor_view:Make">
<MSBuild Projects="..\Albaranes de proveedor\Views\AlbaranesProveedor_view.dproj" Targets="Make" />
</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">
<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 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 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>
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
</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\PedidosCliente_plugin.RES */
/* c:\temp\dtf2DB.tmp */
/* c:\temp\dtfF3.tmp */

View File

@ -99,6 +99,7 @@ contains
uViewElegirArticulosPedidosCliente in 'uViewElegirArticulosPedidosCliente.pas' {frViewElegirArticulosPedidosCliente: TFrame},
uEditorDireccionEntregaPedidoCliente in 'uEditorDireccionEntregaPedidoCliente.pas' {frEditorDireccionEntregaPedidoCliente: 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.

View File

@ -49,66 +49,70 @@
<DelphiCompile Include="PedidosCliente_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\..\Lib\adortl.dcp" />
<DCCReference Include="..\..\Lib\Almacenes_controller.dcp" />
<DCCReference Include="..\..\Lib\Almacenes_model.dcp" />
<DCCReference Include="..\..\Lib\Articulos_view.dcp" />
<DCCReference Include="..\..\Lib\bdertl.dcp" />
<DCCReference Include="..\..\Lib\Contactos_controller.dcp" />
<DCCReference Include="..\..\Lib\Contactos_model.dcp" />
<DCCReference Include="..\..\Lib\Contactos_view.dcp" />
<DCCReference Include="..\..\Lib\cxDataD11.dcp" />
<DCCReference Include="..\..\Lib\cxEditorsD11.dcp" />
<DCCReference Include="..\..\Lib\cxExportD11.dcp" />
<DCCReference Include="..\..\Lib\cxExtEditorsD11.dcp" />
<DCCReference Include="..\..\Lib\cxGridD11.dcp" />
<DCCReference Include="..\..\Lib\cxLibraryD11.dcp" />
<DCCReference Include="..\..\Lib\cxPageControlD11.dcp" />
<DCCReference Include="..\..\Lib\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\Lib\dbrtl.dcp" />
<DCCReference Include="..\..\Lib\dclcxLibraryD11.dcp" />
<DCCReference Include="..\..\Lib\designide.dcp" />
<DCCReference Include="..\..\Lib\dsnap.dcp" />
<DCCReference Include="..\..\Lib\dxComnD11.dcp" />
<DCCReference Include="..\..\Lib\dxCoreD11.dcp" />
<DCCReference Include="..\..\Lib\dxGDIPlusD11.dcp" />
<DCCReference Include="..\..\Lib\dxLayoutControlD11.dcp" />
<DCCReference Include="..\..\Lib\dxPSCoreD11.dcp" />
<DCCReference Include="..\..\Lib\dxPScxCommonD11.dcp" />
<DCCReference Include="..\..\Lib\dxPScxGrid6LnkD11.dcp" />
<DCCReference Include="..\..\Lib\dxPSLnksD11.dcp" />
<DCCReference Include="..\..\Lib\dxThemeD11.dcp" />
<DCCReference Include="..\..\Lib\fqb110.dcp" />
<DCCReference Include="..\..\Lib\frx11.dcp" />
<DCCReference Include="..\..\Lib\frxe11.dcp" />
<DCCReference Include="..\..\Lib\fs11.dcp" />
<DCCReference Include="..\..\Lib\GestorInformes_controller.dcp" />
<DCCReference Include="..\..\Lib\GUIBase.dcp" />
<DCCReference Include="..\..\Lib\GUISDK_D11R.dcp" />
<DCCReference Include="..\..\Lib\Jcl.dcp" />
<DCCReference Include="..\..\Lib\JclVcl.dcp" />
<DCCReference Include="..\..\Lib\JvCoreD11R.dcp" />
<DCCReference Include="..\..\Lib\JvCtrlsD11R.dcp" />
<DCCReference Include="..\..\Lib\JvPageCompsD11R.dcp" />
<DCCReference Include="..\..\Lib\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\..\Lib\JvSystemD11R.dcp" />
<DCCReference Include="..\..\Lib\PedCli_AlbCli_relation.dcp" />
<DCCReference Include="..\..\Lib\PedCli_PedProv_relation.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_controller.dcp" />
<DCCReference Include="..\..\Lib\PedidosCliente_model.dcp" />
<DCCReference Include="..\..\Lib\PngComponentsD10.dcp" />
<DCCReference Include="..\..\Lib\PNG_D10.dcp" />
<DCCReference Include="..\..\Lib\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\..\Lib\rtl.dcp" />
<DCCReference Include="..\..\Lib\tb2k_d10.dcp" />
<DCCReference Include="..\..\Lib\tbx_d10.dcp" />
<DCCReference Include="..\..\Lib\vcl.dcp" />
<DCCReference Include="..\..\Lib\vclactnband.dcp" />
<DCCReference Include="..\..\Lib\vcldb.dcp" />
<DCCReference Include="..\..\Lib\vcljpg.dcp" />
<DCCReference Include="..\..\Lib\vclshlctrls.dcp" />
<DCCReference Include="..\..\Lib\vclx.dcp" />
<DCCReference Include="..\..\Lib\xmlrtl.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\adortl.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\Almacenes_controller.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\Almacenes_model.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\Articulos_view.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\bdertl.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\Contactos_controller.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\Contactos_model.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\Contactos_view.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\cxDataD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\cxEditorsD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\cxExportD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\cxExtEditorsD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\cxGridD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\cxLibraryD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\cxPageControlD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dbrtl.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dclcxLibraryD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\designide.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dsnap.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dxComnD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dxCoreD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dxGDIPlusD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dxLayoutControlD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dxPSCoreD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dxPScxCommonD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dxPScxGrid6LnkD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dxPSLnksD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\dxThemeD11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\fqb110.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\frx11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\frxe11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\fs11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\GestorInformes_controller.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\GUIBase.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\GUISDK_D11R.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\Jcl.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\JclVcl.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\JvCoreD11R.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\JvCtrlsD11R.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\JvPageCompsD11R.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\JvSystemD11R.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\PedCli_AlbCli_relation.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\PedCli_PedProv_relation.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\PedidosCliente_controller.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\PedidosCliente_model.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\PngComponentsD10.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\PNG_D10.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\rtl.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\tb2k_d10.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\tbx_d10.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\vcl.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\vclactnband.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\vcldb.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\vcljpg.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\vclshlctrls.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\vclx.dcp" />
<DCCReference Include="..\..\Facturas de cliente\Views\xmlrtl.dcp" />
<DCCReference Include="uDialogListaPedidosClienteEnvioEMail.pas">
<Form>frDialogListaPedidosClienteEnvioEMail</Form>
<DesignClass>T</DesignClass>
</DCCReference>
<DCCReference Include="uDialogOpcionesImpresionPedidosCliente.pas">
<Form>fDialogOpcionesImpresionPedidosCliente</Form>
<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\uEditorPedidoCliente.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\uEditorElegirArticulosPedidoCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorDireccionEntregaPedidoCliente.dfm */
/* 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
Position = poDesigned
ExplicitWidth = 708
ExplicitHeight = 240
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
@ -148,36 +149,34 @@ inherited fEditorPedidosCliente: TfEditorPedidosCliente
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 799
Width = 799
end
inherited edtFechaIniFiltro: TcxDateEdit
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 243
Width = 243
ExplicitWidth = 167
Width = 167
end
inherited edtFechaFinFiltro: TcxDateEdit
Left = 229
Left = 233
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 229
ExplicitWidth = 482
Width = 482
ExplicitLeft = 233
ExplicitWidth = 365
Width = 365
end
inherited eLista: TcxComboBox
Left = 566
Left = 577
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 566
ExplicitWidth = 215
Width = 215
ExplicitLeft = 577
ExplicitWidth = 140
Width = 140
end
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel

View File

@ -85,7 +85,7 @@ uses
uDataModulePedidosCliente, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase,
// uGenerarFacturasProvPedUtils,
// uInventarioController, uBizInventario,
uDialogUtils, uGridStatusUtils, uDBSelectionListUtils,
uDialogUtils, uGridStatusUtils, uDBSelectionListUtils, cxControls,
uDialogOpcionesImpresionPedidosCliente, uGestorInformesController,
// uAlbaranesProveedorController, uBizAlbaranesProveedor,
uGenerarAlbaranesCliUtils, uGenerarPedidosProvUtils;
@ -111,9 +111,27 @@ begin
end;
procedure TfEditorPedidosCliente.actEnviarEMailExecute(Sender: TObject);
var
APedidos : IBizPedidoCliente;
begin
inherited;
FController.EnviarPedidoPorEMail(FPedidos);
if ViewGrid.NumSeleccionados = 1 then
FController.GenerarEmailPedido(Pedidos)
else begin
ShowHourglassCursor;
try
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Pedidos as ISeleccionable).SelectedRecords);
APedidos := (Controller as IPedidosClienteController).ExtraerSeleccionados(Pedidos) as IBizPedidoCliente;
if Assigned(APedidos) then
if FController.EnviarEmailPedidos(APedidos) then
RefrescarInterno;
finally
APedidos := NIL;
HideHourglassCursor;
end;
end;
end;
procedure TfEditorPedidosCliente.actEnviarEMailUpdate(Sender: TObject);

View File

@ -12,6 +12,7 @@ uses
uEditorPedidosCliente,
uEditorPedidoCliente,
uEditorPedidosClienteReport,
uDialogListaPedidosClienteEnvioEMail,
// uEditorElegirPedidosCliente,
uEditorElegirArticulosPedidoCliente,
uEditorDireccionEntregaPedidoCliente;
@ -26,6 +27,8 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirArticulosPedidoCliente, 'EditorElegirArticulosPedidoCliente');
EditorRegistry.RegisterClass(TfEditorPedidosClientePreview, 'EditorPedidosClientePreview');
// EditorRegistry.RegisterClass(TfEditorSituacionPedidoCliente, 'EditorSituacionPedidoCliente');
EditorRegistry.RegisterClass(TfDialogListaPedidosClienteEnvioEMail, 'DialogListaPedidosClienteEnvioEMail');
end;
procedure UnregisterViews;
@ -36,6 +39,7 @@ begin
// EditorRegistry.UnRegisterClass(TfEditorElegirPedidosCliente);
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoCliente);
EditorRegistry.UnRegisterClass(TfEditorPedidosClientePreview);
EditorRegistry.UnRegisterClass(TfDialogListaPedidosClienteEnvioEMail);
// EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoCliente);
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>
<ProjectGuid>{c8b2fb9a-0367-4fd0-b836-4b594c06bcab}</ProjectGuid>
<MainSource>RecibosCliente_controller.dpk</MainSource>
@ -39,60 +40,21 @@
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject xmlns=""> <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">RecibosCliente_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">RecibosCliente_controller.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="RecibosCliente_controller.dpk">
<MainSource>MainSource</MainSource>
</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="uRecibosClienteController.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\uIEditorFechaPago.pas" />
<DCCReference Include="View\uIEditorReciboCliente.pas" />
@ -100,10 +62,9 @@
<DCCReference Include="View\uIEditorRecibosClientePreview.pas" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=6006
EurekaLog Version=6011
Activate=0
Activate Handle=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);
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;
procedure FiltrarAno(ARecibo: IBizRecibosCliente; ADynWhereDataTable: WideString; const Ano: String);
end;
@ -92,6 +99,8 @@ type
procedure FiltrarEmpresa(ARecibo: IBizRecibosCliente);
procedure _AnadirMarcaEnvioCorreo(ARecibo: IBizRecibosCliente);
protected
FDataModule : IDataModuleRecibosCliente;
FPagosController : IPagosClienteController;
@ -151,6 +160,13 @@ type
procedure Preview(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false);
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;
procedure FiltrarAno(ARecibo: IBizRecibosCliente; ADynWhereDataTable: WideString; const Ano: String);
end;
@ -159,12 +175,12 @@ implementation
uses
Forms, uNumUtils, cxControls, DB, uEditorRegistryUtils, Dialogs,
uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App,
uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants,
uRecibosClienteReportController, uBizContactos, uDADelta, uIntegerListUtils,
uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, uDataModuleRegistroCorreos,
uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants, uIDialogListaRecibosClienteEnvioEMail,
uRecibosClienteReportController, uBizContactos, uDADelta, uIntegerListUtils,
schRecibosClienteClient_Intf, uIEditorRecibosCliente, uIEditorReciboCliente,
uIEditorElegirRecibosCliente, uDataModuleRecibosCliente, uIEditorFechaPago,
uStringsUtils;
uSistemaFunc, uDialogElegirEMail, uEMailUtils, uStringsUtils;
{ TRecibosClienteController }
@ -466,6 +482,37 @@ begin
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;
begin
Result := Buscar(ID_NULO);
@ -708,11 +755,119 @@ begin
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);
begin
AReciboCliente._Cliente := (FClienteController.Buscar(AReciboCliente.ID_Cliente) as IBizCliente);
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;
begin
Result := FPagosController;

View File

@ -11,6 +11,7 @@ type
['{3837DFA3-0A38-4BB2-B0DB-D0615249EA49}']
procedure Preview(const ListaID : TIntegerList);
function Print(const ListaID : TIntegerList): Boolean;
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end;
TRecibosClienteReportController = class(TControllerBase, IRecibosClienteReportController)
@ -23,6 +24,7 @@ type
procedure Preview(const ListaID : TIntegerList);
function Print(const ListaID : TIntegerList): Boolean;
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end;
@ -55,6 +57,28 @@ begin
inherited;
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);
var
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\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' +
'ss, '#10' entry_suburb, entry_postcode, entry_city, entry_state, ' +
#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' +
' customers_id = :customers_id'#10
'ddress_book_id_local'#10' FROM'#10' address_book'#10' WHERE {where}'#10' a' +
'nd customers_id = :customers_id'#10
StatementType = stSQL
ColumnMappings = <
item

View File

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

View File

@ -1,37 +1,46 @@
inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb
Caption = 'Contenidos a actualizar'
ClientHeight = 425
ClientWidth = 638
ExplicitWidth = 644
ExplicitHeight = 457
ClientHeight = 277
ClientWidth = 474
ExplicitWidth = 480
ExplicitHeight = 309
PixelsPerInch = 96
TextHeight = 13
inherited Bevel2: TBevel
Width = 638
Width = 474
ExplicitWidth = 425
end
inherited Bevel3: TBevel
Top = 381
Width = 638
Top = 233
Width = 474
ExplicitTop = 381
ExplicitWidth = 425
end
inherited pnlBotones: TPanel
Top = 383
Width = 638
Top = 235
Width = 474
ExplicitTop = 383
ExplicitWidth = 425
ExplicitWidth = 638
inherited btnAceptar: TButton
Left = 312
ExplicitLeft = 312
end
inherited btnCancelar: TButton
Left = 391
ExplicitLeft = 391
end
end
inherited pnlHeader: TPanel
Width = 638
ExplicitWidth = 425
Width = 474
ExplicitWidth = 638
inherited lblInstruccion: TLabel
Width = 588
Width = 424
Caption = 'Elija el contenido a actualizar'
ExplicitWidth = 164
end
inherited Label2: TLabel
Width = 563
Width = 399
Height = 27
Caption =
'Elija qu'#233' informaci'#243'n de FactuGES desea actualizar en la tienda ' +
'web.'
@ -39,20 +48,104 @@ inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb
end
end
inherited pnlCuerpo: TPanel
Width = 638
Height = 315
ExplicitWidth = 425
Width = 474
Height = 167
ExplicitWidth = 638
ExplicitHeight = 315
object ListView1: TListView
Left = 8
Top = 16
Width = 605
Height = 281
Columns = <>
object Label1: TLabel
Left = 69
Top = 55
Width = 277
Height = 13
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
end
object cbProveedores: TCheckBox
Left = 50
Top = 88
Width = 79
Height = 17
Caption = 'Proveedores'
Checked = True
State = cbChecked
TabOrder = 1
end
end
inherited ActionList1: TActionList
Left = 392
Top = 96
inherited actAceptar: TAction
Caption = '&Actualizar'
OnExecute = actAceptarExecute
@ -62,7 +155,7 @@ inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb
OnExecute = actCancelarExecute
end
end
object PngImageList1: TPngImageList
object img: TPngImageList
Height = 24
Width = 24
PngImages = <
@ -244,8 +337,8 @@ inherited fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb
Name = 'PngImage2'
Background = clWindow
end>
Left = 48
Top = 384
Left = 432
Top = 80
Bitmap = {}
end
end

View File

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

Binary file not shown.

View File

@ -109,8 +109,6 @@ uses
uRptRecibosProveedor_Server in '..\Modulos\Recibos de proveedor\Reports\uRptRecibosProveedor_Server.pas' {RptRecibosProveedor: TDataModule},
schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_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},
uRptWordAlbaranProveedor in '..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas' {RptWordAlbaranProveedor: TDataModule},
MidasSpeedFix in 'Utiles\MidasSpeedFix.pas',
@ -163,7 +161,9 @@ uses
uTiendaWebUtils in 'Utiles\uTiendaWebUtils.pas',
uConexionOSC in 'Configuracion\uConexionOSC.pas' {frConexionOSC: TFrame},
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 ..\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">
<PropertyGroup>
<ProjectGuid>{ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}</ProjectGuid>
<MainSource>FactuGES_Server.dpr</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<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>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_MapFile>3</DCC_MapFile>
<DCC_ExeOutput>..\..\Output\Release\Servidor</DCC_ExeOutput>
<DCC_Define>RELEASE</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version>
<DCC_MapFile>3</DCC_MapFile>
<DCC_ExeOutput>..\..\Output\Debug\Servidor</DCC_ExeOutput>
<DCC_Define>DEBUG;</DCC_Define>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<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_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_IncludePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_IncludePath>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType/>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters><Parameters Name="RunParams">/standalone</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">8</VersionInfo><VersionInfo Name="Release">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><Source><Source Name="MainSource">FactuGES_Server.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets"/>
<ItemGroup>
<DelphiCompile Include="FactuGES_Server.dpr">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas"/>
<DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas"/>
<DCCReference Include="..\ApplicationBase\Empresas\Model\uBizEmpresasServer.pas"/>
<DCCReference Include="..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas">
<Form>srvEmpresas</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.pas">
<Form>srvProvinciasPoblaciones_Impl</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas"/>
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas"/>
<DCCReference Include="..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas">
<Form>srvUsuarios</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Base\schBase_Intf.pas"/>
<DCCReference Include="..\Base\Utiles\uSistemaFunc.pas"/>
<DCCReference Include="..\Base\Utiles\uStringsUtils.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\uBizAlbaranClienteServer.pas"/>
<DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.pas">
<Form>RptAlbaranesCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptWordAlbaranCliente.pas">
<Form>RptWordAlbaranCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.pas">
<Form>srvAlbaranesCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizAlbaranProveedorServer.PAS"/>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.pas">
<Form>RptAlbaranesProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas">
<Form>RptWordAlbaranProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.pas">
<Form>srvAlbaranesProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.pas">
<Form>srvAlmacenes</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Articulos\Model\uBizArticulosServer.pas"/>
<DCCReference Include="..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas">
<Form>srvArticulos</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Comisiones\Model\schComisionesClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Comisiones\Model\schComisionesServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Comisiones\Model\uBizComisionesServer.pas"/>
<DCCReference Include="..\Modulos\Comisiones\Reports\uRptComisiones_Server.pas">
<Form>RptComisiones</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Comisiones\Servidor\srvComisiones_Impl.pas">
<Form>srvComisiones</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Contactos\Model\schContactosClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\schContactosServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\uBizAgentesServer.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\uBizClientesServer.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\uBizContactosServer.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\uBizEmpleadosServer.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\uBizProveedoresServer.pas"/>
<DCCReference Include="..\Modulos\Contactos\Reports\uRptEtiquetasContacto_Server.pas">
<Form>RptEtiquetasContacto</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Contactos\Reports\uRptFichasEmpleado_Server.pas">
<Form>RptFichasEmpleado</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Contactos\Servidor\srvContactos_Impl.pas">
<Form>srvContactos</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Fabricantes\Servidor\srvFabricantes_Impl.pas">
<Form>srvFabricantes</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizFacturasClienteServer.pas"/>
<DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas">
<Form>RptFacturasCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptWordFacturaCliente.pas">
<Form>RptWordFacturaCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas">
<Form>srvFacturasCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizFacturasProveedorServer.pas"/>
<DCCReference Include="..\Modulos\Facturas de proveedor\Reports\uRptFacturasProveedor_Server.pas">
<Form>RptFacturasProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas">
<Form>srvFacturasProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Familias\Model\schFamiliasClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Familias\Model\schFamiliasServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Familias\Servidor\srvFamilias_Impl.pas">
<Form>srvFamilias</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Servidor\srvFormasPago_Impl.pas">
<Form>srvFormasPago</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Gestion de documentos\Servidor\srvGestorDocumentos_Impl.pas">
<Form>srvGestorDocumentos</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Gestor de informes\Servidor\srvGestorInformes_Impl.pas">
<Form>srvGestorInformes</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Servidor\srvHistoricoMovimientos_Impl.pas">
<Form>srvHistoricoMovimientos</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Impresiones\Model\schImpresionesClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Impresiones\Model\schImpresionesServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Impresiones\Servidor\srvImpresiones_Impl.pas">
<Form>srvImpresiones</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Inventario\Model\schInventarioClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Inventario\Model\schInventarioServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Inventario\Servidor\srvInventario_Impl.pas">
<Form>srvInventario</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Obras\Model\schObrasClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Obras\Model\schObrasServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Obras\Model\uBizObrasServer.pas"/>
<DCCReference Include="..\Modulos\Obras\Servidor\srvObras_Impl.pas">
<Form>srvObras</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizPedidosProveedorServer.pas"/>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas">
<Form>RptPedidosProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptWordPedidoProveedor.pas">
<Form>RptWordPedidoProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas">
<Form>srvPedidosProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizPedidosClienteServer.pas"/>
<DCCReference Include="..\Modulos\Pedidos de cliente\Reports\uRptPedidosCliente_Server.pas">
<Form>RptPedidosCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Pedidos de cliente\Servidor\srvPedidosCliente_Impl.pas">
<Form>srvPedidosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizPresupuestosClienteServer.pas"/>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas">
<Form>RptPresupuestosCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordCertificadoTrabajo_Server.pas">
<Form>RptWordCertificadoTrabajo</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas">
<Form>RptWordPresupuestoCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas">
<Form>srvPresupuestosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Reports\uRptRecibosCliente_Server.pas">
<Form>RptRecibosCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Recibos de cliente\Servidor\srvRecibosCliente_Impl.pas">
<Form>srvRecibosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Reports\uRptRecibosProveedor_Server.pas">
<Form>RptRecibosProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.pas">
<Form>srvRecibosProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Referencias\Model\schReferenciasClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Referencias\Model\schReferenciasServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Referencias\Servidor\srvReferencias_Impl.pas">
<Form>srvReferencias</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Registro de correos\Servidor\srvRegistroCorreos_Impl.pas">
<Form>srvRegistroCorreos</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizRemesasClienteServer.pas"/>
<DCCReference Include="..\Modulos\Remesas de cliente\Reports\uRptRemesasCliente_Server.pas">
<Form>RptRemesasCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.pas">
<Form>srvRemesasCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizRemesasProveedorServer.pas"/>
<DCCReference Include="..\Modulos\Remesas de proveedor\Reports\uRptRemesasProveedor_Server.pas">
<Form>RptRemesasProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Remesas de proveedor\Servidor\srvRemesasProveedor_Impl.pas">
<Form>srvRemesasProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Tienda web\Model\schTiendaWebClient_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\uBizOscCustomerServer.pas"/>
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscManufacturerServer.pas"/>
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscOrderServer.pas"/>
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscProductServer.pas"/>
<DCCReference Include="..\Modulos\Tienda web\Model\uBizTiendaWebServer.pas"/>
<DCCReference Include="..\Modulos\Tienda web\Servidor\srvTiendaWeb_Impl.pas">
<Form>srvTiendaWeb</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Servidor\srvTiposIVA_Impl.pas">
<Form>srvTiposIVA</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Servidor\srvUnidadesMedida_Impl.pas">
<Form>srvUnidadesMedida</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Servicios\FactuGES_Intf.pas"/>
<DCCReference Include="..\Servicios\FactuGES_Invk.pas"/>
<DCCReference Include="Configuracion\srvConfiguracion_Impl.pas">
<Form>srvConfiguracion</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uConexionBD.pas">
<Form>frConexionBD</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uConexionOSC.pas">
<Form>frConexionOSC</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uConfGeneral.pas">
<Form>frConfGeneral</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uConfiguracion.pas">
<Form>fConfiguracion</Form>
<DesignClass>TForm</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uFrameConfiguracion.pas">
<Form>FrameConfiguracion</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="srvLogin_Impl.pas">
<Form>srvLogin</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="uAcercaDe.pas">
<Form>fAcercaDe</Form>
</DCCReference>
<DCCReference Include="uDataModuleServer.pas">
<Form>dmServer</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="uServerMainForm.pas">
<Form>fServerForm</Form>
</DCCReference>
<DCCReference Include="Utiles\AHWord97.pas"/>
<DCCReference Include="Utiles\MidasSpeedFix.pas"/>
<DCCReference Include="Utiles\RegExpr.pas"/>
<DCCReference Include="Utiles\uBusinessUtils.pas"/>
<DCCReference Include="Utiles\uDatabaseUtils.pas"/>
<DCCReference Include="Utiles\uReferenciasUtils.pas"/>
<DCCReference Include="Utiles\uRestriccionesUsuarioUtils.pas"/>
<DCCReference Include="Utiles\uSchemaUtilsServer.pas"/>
<DCCReference Include="Utiles\uServerAppUtils.pas"/>
<DCCReference Include="Utiles\uSesionesUtils.pas"/>
<DCCReference Include="Utiles\uTiendaWebUtils.pas"/>
</ItemGroup>
<PropertyGroup>
<ProjectGuid>{ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}</ProjectGuid>
<MainSource>FactuGES_Server.dpr</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<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>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_MapFile>3</DCC_MapFile>
<DCC_ExeOutput>..\..\Output\Release\Servidor</DCC_ExeOutput>
<DCC_Define>RELEASE</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version>
<DCC_MapFile>3</DCC_MapFile>
<DCC_ExeOutput>..\..\Output\Debug\Servidor</DCC_ExeOutput>
<DCC_Define>DEBUG;</DCC_Define>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<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_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_IncludePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_IncludePath>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType />
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters><Parameters Name="RunParams">/standalone</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">8</VersionInfo><VersionInfo Name="Release">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><Source><Source Name="MainSource">FactuGES_Server.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="FactuGES_Server.dpr">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas" />
<DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas" />
<DCCReference Include="..\ApplicationBase\Empresas\Model\uBizEmpresasServer.pas" />
<DCCReference Include="..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas">
<Form>srvEmpresas</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.pas">
<Form>srvProvinciasPoblaciones_Impl</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas" />
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas" />
<DCCReference Include="..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas">
<Form>srvUsuarios</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Base\schBase_Intf.pas" />
<DCCReference Include="..\Base\Utiles\uSistemaFunc.pas" />
<DCCReference Include="..\Base\Utiles\uStringsUtils.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\uBizAlbaranClienteServer.pas" />
<DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.pas">
<Form>RptAlbaranesCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptWordAlbaranCliente.pas">
<Form>RptWordAlbaranCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.pas">
<Form>srvAlbaranesCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizAlbaranProveedorServer.PAS" />
<DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.pas">
<Form>RptAlbaranesProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas">
<Form>RptWordAlbaranProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.pas">
<Form>srvAlbaranesProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas" />
<DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesServer_Intf.pas" />
<DCCReference Include="..\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.pas">
<Form>srvAlmacenes</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosClient_Intf.pas" />
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosServer_Intf.pas" />
<DCCReference Include="..\Modulos\Articulos\Model\uBizArticulosServer.pas" />
<DCCReference Include="..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas">
<Form>srvArticulos</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Comisiones\Model\schComisionesClient_Intf.pas" />
<DCCReference Include="..\Modulos\Comisiones\Model\schComisionesServer_Intf.pas" />
<DCCReference Include="..\Modulos\Comisiones\Model\uBizComisionesServer.pas" />
<DCCReference Include="..\Modulos\Comisiones\Reports\uRptComisiones_Server.pas">
<Form>RptComisiones</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Comisiones\Servidor\srvComisiones_Impl.pas">
<Form>srvComisiones</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Contactos\Model\schContactosClient_Intf.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\schContactosServer_Intf.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizAgentesServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizClientesServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizContactosServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizEmpleadosServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizProveedoresServer.pas" />
<DCCReference Include="..\Modulos\Contactos\Reports\uRptEtiquetasContacto_Server.pas">
<Form>RptEtiquetasContacto</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Contactos\Reports\uRptFichasEmpleado_Server.pas">
<Form>RptFichasEmpleado</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Contactos\Servidor\srvContactos_Impl.pas">
<Form>srvContactos</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesClient_Intf.pas" />
<DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesServer_Intf.pas" />
<DCCReference Include="..\Modulos\Fabricantes\Servidor\srvFabricantes_Impl.pas">
<Form>srvFabricantes</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizFacturasClienteServer.pas" />
<DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas">
<Form>RptFacturasCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptWordFacturaCliente.pas">
<Form>RptWordFacturaCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas">
<Form>srvFacturasCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizFacturasProveedorServer.pas" />
<DCCReference Include="..\Modulos\Facturas de proveedor\Reports\uRptFacturasProveedor_Server.pas">
<Form>RptFacturasProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas">
<Form>srvFacturasProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Familias\Model\schFamiliasClient_Intf.pas" />
<DCCReference Include="..\Modulos\Familias\Model\schFamiliasServer_Intf.pas" />
<DCCReference Include="..\Modulos\Familias\Servidor\srvFamilias_Impl.pas">
<Form>srvFamilias</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Servidor\srvFormasPago_Impl.pas">
<Form>srvFormasPago</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Gestion de documentos\Servidor\srvGestorDocumentos_Impl.pas">
<Form>srvGestorDocumentos</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Gestor de informes\Servidor\srvGestorInformes_Impl.pas">
<Form>srvGestorInformes</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Servidor\srvHistoricoMovimientos_Impl.pas">
<Form>srvHistoricoMovimientos</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Impresiones\Model\schImpresionesClient_Intf.pas" />
<DCCReference Include="..\Modulos\Impresiones\Model\schImpresionesServer_Intf.pas" />
<DCCReference Include="..\Modulos\Impresiones\Servidor\srvImpresiones_Impl.pas">
<Form>srvImpresiones</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Inventario\Model\schInventarioClient_Intf.pas" />
<DCCReference Include="..\Modulos\Inventario\Model\schInventarioServer_Intf.pas" />
<DCCReference Include="..\Modulos\Inventario\Servidor\srvInventario_Impl.pas">
<Form>srvInventario</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Obras\Model\schObrasClient_Intf.pas" />
<DCCReference Include="..\Modulos\Obras\Model\schObrasServer_Intf.pas" />
<DCCReference Include="..\Modulos\Obras\Model\uBizObrasServer.pas" />
<DCCReference Include="..\Modulos\Obras\Servidor\srvObras_Impl.pas">
<Form>srvObras</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizPedidosProveedorServer.pas" />
<DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas">
<Form>RptPedidosProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptWordPedidoProveedor.pas">
<Form>RptWordPedidoProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas">
<Form>srvPedidosProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizPedidosClienteServer.pas" />
<DCCReference Include="..\Modulos\Pedidos de cliente\Reports\uRptPedidosCliente_Server.pas">
<Form>RptPedidosCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Pedidos de cliente\Servidor\srvPedidosCliente_Impl.pas">
<Form>srvPedidosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizPresupuestosClienteServer.pas" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas">
<Form>RptPresupuestosCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordCertificadoTrabajo_Server.pas">
<Form>RptWordCertificadoTrabajo</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas">
<Form>RptWordPresupuestoCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas">
<Form>srvPresupuestosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Reports\uRptRecibosCliente_Server.pas">
<Form>RptRecibosCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Recibos de cliente\Servidor\srvRecibosCliente_Impl.pas">
<Form>srvRecibosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Reports\uRptRecibosProveedor_Server.pas">
<Form>RptRecibosProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.pas">
<Form>srvRecibosProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Referencias\Model\schReferenciasClient_Intf.pas" />
<DCCReference Include="..\Modulos\Referencias\Model\schReferenciasServer_Intf.pas" />
<DCCReference Include="..\Modulos\Referencias\Servidor\srvReferencias_Impl.pas">
<Form>srvReferencias</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Registro de correos\Servidor\srvRegistroCorreos_Impl.pas">
<Form>srvRegistroCorreos</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizRemesasClienteServer.pas" />
<DCCReference Include="..\Modulos\Remesas de cliente\Reports\uRptRemesasCliente_Server.pas">
<Form>RptRemesasCliente</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.pas">
<Form>srvRemesasCliente</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\uBizRemesasProveedorServer.pas" />
<DCCReference Include="..\Modulos\Remesas de proveedor\Reports\uRptRemesasProveedor_Server.pas">
<Form>RptRemesasProveedor</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Remesas de proveedor\Servidor\srvRemesasProveedor_Impl.pas">
<Form>srvRemesasProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Modulos\Tienda web\Model\schTiendaWebClient_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\uBizOscCustomerServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscManufacturerServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscOrderServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizOscProductServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Model\uBizTiendaWebServer.pas" />
<DCCReference Include="..\Modulos\Tienda web\Servidor\srvTiendaWeb_Impl.pas">
<Form>srvTiendaWeb</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Servidor\srvTiposIVA_Impl.pas">
<Form>srvTiposIVA</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<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\Servidor\srvUnidadesMedida_Impl.pas">
<Form>srvUnidadesMedida</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
<DCCReference Include="..\Servicios\FactuGES_Invk.pas" />
<DCCReference Include="Configuracion\srvConfiguracion_Impl.pas">
<Form>srvConfiguracion</Form>
<DesignClass>TDataAbstractService</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uConexionBD.pas">
<Form>frConexionBD</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uConexionOSC.pas">
<Form>frConexionOSC</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uConfGeneral.pas">
<Form>frConfGeneral</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uConfiguracion.pas">
<Form>fConfiguracion</Form>
<DesignClass>TForm</DesignClass>
</DCCReference>
<DCCReference Include="Configuracion\uFrameConfiguracion.pas">
<Form>FrameConfiguracion</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="srvLogin_Impl.pas">
<Form>srvLogin</Form>
<DesignClass>TDARemoteService</DesignClass>
</DCCReference>
<DCCReference Include="uAcercaDe.pas">
<Form>fAcercaDe</Form>
</DCCReference>
<DCCReference Include="uDataModuleServer.pas">
<Form>dmServer</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="uServerMainForm.pas">
<Form>fServerForm</Form>
</DCCReference>
<DCCReference Include="Utiles\AHWord97.pas" />
<DCCReference Include="Utiles\MidasSpeedFix.pas" />
<DCCReference Include="Utiles\RegExpr.pas" />
<DCCReference Include="Utiles\uBusinessUtils.pas" />
<DCCReference Include="Utiles\uDatabaseUtils.pas" />
<DCCReference Include="Utiles\uReferenciasUtils.pas" />
<DCCReference Include="Utiles\uRestriccionesUsuarioUtils.pas" />
<DCCReference Include="Utiles\uSchemaUtilsServer.pas" />
<DCCReference Include="Utiles\uServerAppUtils.pas" />
<DCCReference Include="Utiles\uSesionesUtils.pas" />
<DCCReference Include="Utiles\uTiendaWebUtils.pas" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line
[Exception Log]

View File

@ -14,7 +14,7 @@ BEGIN
BEGIN
VALUE "FileVersion", "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
BLOCK "VarFileInfo"