#12 -> Enviar documentos por correo electrónico. Pedidos a proveedor.

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@532 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
David Arranz 2008-08-25 14:47:12 +00:00
parent 1b741365bc
commit d0b836c6f8
9 changed files with 1511 additions and 72 deletions

View File

@ -48,6 +48,7 @@ type
function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor;
function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor;
procedure RecuperarProveedor(APedido: IBizPedidoProveedor);
procedure EnviarPedidoPorEMail(APedido: IBizPedidoProveedor);
end;
@ -111,6 +112,7 @@ type
function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor;
function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor;
procedure EnviarPedidoPorEMail(APedido: IBizPedidoProveedor);
end;
implementation
@ -122,7 +124,7 @@ uses
schPedidosProveedorClient_Intf, uDAInterfaces, uPedidosProveedorReportController,
uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor,
Dialogs, uIEditorDireccionEntregaPedidoProveedor, Classes, uIEditorSituacionPedidoProveedor,
Variants, uIntegerListUtils;
Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils;
{ TPedidosProveedorController }
@ -573,6 +575,50 @@ begin
end;
end;
procedure TPedidosProveedorController.EnviarPedidoPorEMail(
APedido: IBizPedidoProveedor);
var
AReportController : IPedidosProveedorReportController;
AFicheroTMP : TFileName;
AEMail : String;
AListaEmail : TStringList;
begin
if not Assigned(APedido) then
raise Exception.Create ('Pedido no asignado (EnviarPedidoPorEMail)');
if APedido.DataTable.Active then
APedido.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APedido.REFERENCIA));
AListaEmail := TStringList.Create;
try
RecuperarProveedor(APedido);
APedido.Proveedor.DataTable.Active := True;
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);
end;
ShowHourglassCursor;
AReportController := TPedidosProveedorReportController.Create;
try
AReportController.ExportToPDF(APedido.ID, AFicheroTMP);
SendMailMAPI('Pedido ' + APedido.REFERENCIA, '', AFicheroTMP, '', '', APedido.Proveedor.NOMBRE, AEMail);
finally
DeleteFile(AFicheroTMP);
AReportController := NIL;
HideHourglassCursor;
end;
end;
function TPedidosProveedorController.EsEliminable(APedido: IBizPedidoProveedor): Boolean;
begin
if not Assigned(APedido) then

View File

@ -13,6 +13,7 @@ type
procedure Preview(const AListaID : TIntegerList);
procedure Print(const AListaID : TIntegerList);
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end;
TPedidosProveedorReportController = class(TControllerBase, IPedidosProveedorReportController)
@ -26,6 +27,7 @@ type
procedure Preview(const AListaID : TIntegerList);
procedure Print(const AListaID : TIntegerList);
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end;
@ -56,6 +58,29 @@ begin
inherited;
end;
function TPedidosProveedorReportController.ExportToPDF(const AID: Integer;
const AFileName: String): Boolean;
var
AStream: Binary;
begin
Result := False;
if EsCadenaVacia(AFileName) then
Exit;
ShowHourglassCursor;
try
AStream := FDataModule.GetRptPDFPedido(AID);
try
AStream.SaveToFile(AFileName);
Result := True;
finally
FreeAndNil(AStream);
end;
finally
HideHourglassCursor;
end;
end;
function TPedidosProveedorReportController.ExportToWord(const AID: Integer;
const AFileName: String): Boolean;
var

View File

@ -49,64 +49,64 @@
<DelphiCompile Include="PedidosProveedor_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\..\Facturas de proveedor\adortl.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\Almacenes_controller.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\Almacenes_model.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\Articulos_view.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\ccpackD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\cfpack_d11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\Contactos_controller.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\Contactos_model.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\Contactos_view.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\cxDataD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\cxEditorsD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\cxLibraryD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dbrtl.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\designide.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dsnap.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxComnD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxGDIPlusD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxLayoutControlD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinBlackD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinBlueD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinCaramelD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinCoffeeD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinGlassOceansD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkiniMaginaryD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinLilianD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinLiquidSkyD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinLondonLiquidSkyD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinMcSkinD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinMoneyTwinsD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinOffice2007BlackD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinOffice2007BlueD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinOffice2007GreenD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinOffice2007PinkD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinOffice2007SilverD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinsCoreD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinsdxLCPainterD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinSilverD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinStardustD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinValentineD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxSkinXmas2008BlueD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\dxThemeD11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\GUIBase.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\GUISDK_D11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\Obras_controller.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\Obras_model.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\PedidosProveedor_controller.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\PedidosProveedor_model.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\PedProv_AlbProv_relation.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\PedProv_FacProv_relation.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\rtl.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\vcl.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\vclactnband.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\vcldb.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\vcljpg.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\vclx.dcp" />
<DCCReference Include="..\..\Facturas de proveedor\xmlrtl.dcp" />
<DCCReference Include="..\..\Inventario\Controller\adortl.dcp" />
<DCCReference Include="..\..\Inventario\Controller\Almacenes_controller.dcp" />
<DCCReference Include="..\..\Inventario\Controller\Almacenes_model.dcp" />
<DCCReference Include="..\..\Inventario\Controller\Articulos_view.dcp" />
<DCCReference Include="..\..\Inventario\Controller\ccpackD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\cfpack_d11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\Contactos_controller.dcp" />
<DCCReference Include="..\..\Inventario\Controller\Contactos_model.dcp" />
<DCCReference Include="..\..\Inventario\Controller\Contactos_view.dcp" />
<DCCReference Include="..\..\Inventario\Controller\cxDataD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\cxEditorsD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\cxLibraryD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dbrtl.dcp" />
<DCCReference Include="..\..\Inventario\Controller\designide.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dsnap.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxComnD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxGDIPlusD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxLayoutControlD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinBlackD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinBlueD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinCaramelD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinCoffeeD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinGlassOceansD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkiniMaginaryD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinLilianD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinLiquidSkyD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinLondonLiquidSkyD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinMcSkinD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinMoneyTwinsD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinOffice2007BlackD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinOffice2007BlueD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinOffice2007GreenD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinOffice2007PinkD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinOffice2007SilverD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinsCoreD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinsdxLCPainterD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinSilverD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinStardustD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinValentineD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxSkinXmas2008BlueD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\dxThemeD11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\GUIBase.dcp" />
<DCCReference Include="..\..\Inventario\Controller\GUISDK_D11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\Obras_controller.dcp" />
<DCCReference Include="..\..\Inventario\Controller\Obras_model.dcp" />
<DCCReference Include="..\..\Inventario\Controller\PedidosProveedor_controller.dcp" />
<DCCReference Include="..\..\Inventario\Controller\PedidosProveedor_model.dcp" />
<DCCReference Include="..\..\Inventario\Controller\PedProv_AlbProv_relation.dcp" />
<DCCReference Include="..\..\Inventario\Controller\PedProv_FacProv_relation.dcp" />
<DCCReference Include="..\..\Inventario\Controller\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\..\Inventario\Controller\rtl.dcp" />
<DCCReference Include="..\..\Inventario\Controller\vcl.dcp" />
<DCCReference Include="..\..\Inventario\Controller\vclactnband.dcp" />
<DCCReference Include="..\..\Inventario\Controller\vcldb.dcp" />
<DCCReference Include="..\..\Inventario\Controller\vcljpg.dcp" />
<DCCReference Include="..\..\Inventario\Controller\vclx.dcp" />
<DCCReference Include="..\..\Inventario\Controller\xmlrtl.dcp" />
<DCCReference Include="uEditorDireccionEntregaPedidoProveedor.pas">
<Form>fEditorDireccionEntregaPedidoProveedor </Form>
<DesignClass>TfEditorDireccionEntregaPedidoProveedor</DesignClass>

View File

@ -1,5 +1,6 @@
inherited fEditorElegirArticulosPedidoProveedor: TfEditorElegirArticulosPedidoProveedor
Caption = 'fEditorElegirArticulosPedidoProveedor'
ExplicitWidth = 320
PixelsPerInch = 96
TextHeight = 13
end

View File

@ -25,12 +25,19 @@ type
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
frViewTotales1: TfrViewTotales;
TBXSubmenuItem2: TTBXSubmenuItem;
TBXItem7: TTBXItem;
actEnviarEMail: TAction;
TBXSeparatorItem6: TTBXSeparatorItem;
TBXItem33: TTBXItem;
procedure FormShow(Sender: TObject);
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean);
procedure frViewTotales1ePortePropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure actEnviarEMailUpdate(Sender: TObject);
procedure actEnviarEMailExecute(Sender: TObject);
private
procedure RecalcularPortePorUnidad;
@ -83,6 +90,18 @@ uses
**************************** TfEditorPedidoProveedor ****************************
}
procedure TfEditorPedidoProveedor.actEnviarEMailExecute(Sender: TObject);
begin
inherited;
FController.EnviarPedidoPorEMail(Pedido);
end;
procedure TfEditorPedidoProveedor.actEnviarEMailUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorPedidoProveedor.AsignarVista;
var
AViewPedidoProveedor: TfrViewPedidoProveedor;

View File

@ -45,6 +45,9 @@ inherited fEditorPedidosProveedor: TfEditorPedidosProveedor
ExplicitWidth = 700
inherited tbxMain: TTBXToolbar
ExplicitWidth = 700
object TBXItem40: TTBXItem [13]
Action = actEnviarEMail
end
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 700
@ -205,6 +208,12 @@ inherited fEditorPedidosProveedor: TfEditorPedidosProveedor
OnExecute = actFacturarPedidoExecute
OnUpdate = actFacturarPedidoUpdate
end
object actEnviarEMail: TAction
Category = 'Acciones'
Caption = 'Enviar por e-mail...'
OnExecute = actEnviarEMailExecute
OnUpdate = actEnviarEMailUpdate
end
end
inherited SmallImages: TPngImageList [5]
PngImages = <
@ -1579,6 +1588,9 @@ inherited fEditorPedidosProveedor: TfEditorPedidosProveedor
object N4: TMenuItem [5]
Caption = '-'
end
object Acercade1: TMenuItem [11]
Action = actEnviarEMail
end
end
object JsNuevoPedidoProveedorDialog: TJSDialog
Content.Strings = (

View File

@ -27,6 +27,9 @@ type
JsListaPedidosNoEliminados: TJSDialog;
actFacturarPedido: TAction;
TBXItem38: TTBXItem;
actEnviarEMail: TAction;
TBXItem40: TTBXItem;
Acercade1: TMenuItem;
procedure FormShow(Sender: TObject);
procedure actCambiarSituacionExecute(Sender: TObject);
procedure actRecibirPedidoUpdate(Sender: TObject);
@ -34,6 +37,8 @@ type
procedure actEliminarUpdate(Sender: TObject);
procedure actFacturarPedidoExecute(Sender: TObject);
procedure actFacturarPedidoUpdate(Sender: TObject);
procedure actEnviarEMailExecute(Sender: TObject);
procedure actEnviarEMailUpdate(Sender: TObject);
protected
FPedidos: IBizPedidoProveedor;
@ -90,6 +95,22 @@ begin
(Sender as TAction).Enabled := (FPedidos.SITUACION = SITUACION_PEDIDO_PENDIENTE);
end;
procedure TfEditorPedidosProveedor.actEnviarEMailExecute(Sender: TObject);
begin
inherited;
FController.EnviarPedidoPorEMail(FPedidos);
end;
procedure TfEditorPedidosProveedor.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 TfEditorPedidosProveedor.actFacturarPedidoExecute(Sender: TObject);
begin
inherited;