Tarea #1178 -> Al enviar por email un albarán de proveedor, preguntar si se quiere con precios o no (como al imprimir)

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@182 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
This commit is contained in:
David Arranz 2013-05-03 14:11:33 +00:00
parent ac3fa65c56
commit 87562cd1b4
4 changed files with 86 additions and 18 deletions

View File

@ -11,6 +11,15 @@ type
function GetAlbaranes: IBizAlbaranProveedor;
procedure SetAlbaranes(const Value: IBizAlbaranProveedor);
property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes;
function GetVerPrecios: Boolean;
procedure SetVerPrecios(const Value: Boolean);
property VerPrecios: Boolean read GetVerPrecios write SetVerPrecios;
function GetVerRefProveedor: Boolean;
procedure SetVerRefProveedor(const Value: Boolean);
property VerRefProveedor: Boolean read GetVerRefProveedor write SetVerRefProveedor;
function ShowModal : Integer;
procedure Release;
end;

View File

@ -65,12 +65,15 @@ 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;
procedure GenerarEmailAlbaran(AAlbaran : IBizAlbaranProveedor;
const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True);
function EnviarEmailAlbaranes(AAlbaranes : IBizAlbaranProveedor;
const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean;
function EnviarAlbaranPorEMail(AAlbaran: IBizAlbaranProveedor;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
const ATextoEMail: String = ''; const VerPrecios: Boolean = True;
const VerRefProveedor: Boolean = True): Boolean;
function DarListaAnosAlbaranes: TStringList;
procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
@ -158,12 +161,15 @@ 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;
procedure GenerarEmailAlbaran(AAlbaran : IBizAlbaranProveedor;
const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True);
function EnviarEmailAlbaranes(AAlbaranes : IBizAlbaranProveedor;
const VerPrecios: Boolean = True; const VerRefProveedor: Boolean = True): Boolean;
function EnviarAlbaranPorEMail(AAlbaran: IBizAlbaranProveedor;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
const ATextoEMail: String = ''; const VerPrecios: Boolean = True;
const VerRefProveedor: Boolean = True): Boolean;
function DarListaAnosAlbaranes: TStringList;
procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
@ -947,9 +953,11 @@ begin
HideHourglassCursor;
end;
end;
function TAlbaranesProveedorController.EnviarAlbaranPorEMail(
AAlbaran: IBizAlbaranProveedor; const AEnviarDirectamente: Boolean;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String): Boolean;
const ADireccionEMail, AAsuntoEMail, ATextoEMail: String;
const VerPrecios: Boolean; const VerRefProveedor: Boolean): Boolean;
var
AReportController : IAlbaranesProveedorReportController;
AFicheroTMP : TFileName;
@ -957,6 +965,8 @@ var
AAsunto : String;
AListaEmail : TStringList;
begin
Result := False;
if not Assigned(AAlbaran) then
raise Exception.Create ('Albaran no asignada (EnviarAlbaranPorEMail)');
@ -996,7 +1006,7 @@ begin
AReportController := TAlbaranesProveedorReportController.Create;
try
AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP);
AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP, VerPrecios, VerRefProveedor);
Result := EnviarEMailMAPI(AAsunto, ATextoEMail, AFicheroTMP, '', '', AAlbaran.Proveedor.NOMBRE, AEMail, AEnviarDirectamente);
if Result then
_AnadirMarcaEnvioCorreo(AAlbaran);
@ -1009,12 +1019,14 @@ begin
end;
function TAlbaranesProveedorController.EnviarEmailAlbaranes(
AAlbaranes: IBizAlbaranProveedor): Boolean;
AAlbaranes: IBizAlbaranProveedor; const VerPrecios: Boolean;
const VerRefProveedor: Boolean): Boolean;
var
ADialog : IDialogListaAlbaranesProveedorEnvioEMail;
ARespuesta : Integer;
begin
ADialog := NIL;
Result := False;
if not Assigned(AAlbaranes) then
raise Exception.Create ('Albaranes no asignadas (EnviarAlbaranesPorEMail)');
@ -1030,6 +1042,8 @@ begin
begin
try
ADialog.Albaranes := AAlbaranes;
ADialog.VerPrecios := VerPrecios;
ADialog.VerRefProveedor := VerRefProveedor;
ARespuesta := ADialog.ShowModal;
Result := (ARespuesta = mrOK)
finally
@ -1281,8 +1295,6 @@ var
AReportController : IAlbaranesProveedorReportController;
ID_Albaranes: TIntegerList;
begin
Result := False;
AReportController := TAlbaranesProveedorReportController.Create;
ID_Albaranes := TIntegerList.Create;
@ -1375,7 +1387,8 @@ begin
end;
procedure TAlbaranesProveedorController.GenerarEmailAlbaran(
AAlbaran: IBizAlbaranProveedor);
AAlbaran: IBizAlbaranProveedor; const VerPrecios: Boolean;
const VerRefProveedor: Boolean);
begin
if not Assigned(AAlbaran) then
raise Exception.Create ('Albaranes no asignadas (GenerarEmailAlbaran)');
@ -1387,7 +1400,9 @@ begin
try
RecuperarProveedor(AAlbaran);
RecuperarClienteFinal(AAlbaran);
EnviarAlbaranPorEMail(AAlbaran, False, AAlbaran.Proveedor.EMAIL_ADMINISTRACION);
EnviarAlbaranPorEMail(AAlbaran, False,
AAlbaran.Proveedor.EMAIL_ADMINISTRACION, '', '',
VerPrecios, VerRefProveedor);
finally
HideHourglassCursor;
end;

View File

@ -16,15 +16,25 @@ type
private
FAlbaranes : IBizAlbaranProveedor;
FController : IAlbaranesProveedorController;
FVerPrecios : Boolean;
FVerRefProveedor : Boolean;
protected
function GetAlbaranes: IBizAlbaranProveedor;
procedure SetAlbaranes(const Value: IBizAlbaranProveedor);
function GetVerPrecios: Boolean;
procedure SetVerPrecios(const Value: Boolean);
function GetVerRefProveedor: Boolean;
procedure SetVerRefProveedor(const Value: Boolean);
procedure RellenarLista;
procedure BorrarLista;
public
constructor Create(AOwner: TComponent); override;
property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes;
property VerPrecios: Boolean read GetVerPrecios write SetVerPrecios;
property VerRefProveedor: Boolean read GetVerRefProveedor write SetVerRefProveedor;
end;
implementation
@ -52,7 +62,9 @@ begin
begin
if not EsCadenaVacia(FAlbaranes.Proveedor.EMAIL_ADMINISTRACION) then
begin
if FController.EnviarAlbaranPorEMail(FAlbaranes, True, FAlbaranes.Proveedor.EMAIL_ADMINISTRACION) then
if FController.EnviarAlbaranPorEMail(FAlbaranes, True,
FAlbaranes.Proveedor.EMAIL_ADMINISTRACION, '', '',
FVerPrecios, FVerRefProveedor) then
begin
ListView1.Items[i].SubItems[2] := 'Correo generado';
ModalResult := mrOk;
@ -100,6 +112,8 @@ begin
inherited;
ModalResult := mrCancel;
FController := TAlbaranesProveedorController.Create;
FVerPrecios := True;
FVerRefProveedor := True;
end;
function TfDialogListaAlbaranesProveedorEnvioEMail.GetAlbaranes: IBizAlbaranProveedor;
@ -107,6 +121,16 @@ begin
Result := FAlbaranes;
end;
function TfDialogListaAlbaranesProveedorEnvioEMail.GetVerPrecios: Boolean;
begin
Result := FVerPrecios;
end;
function TfDialogListaAlbaranesProveedorEnvioEMail.GetVerRefProveedor: Boolean;
begin
Result := FVerRefProveedor;
end;
procedure TfDialogListaAlbaranesProveedorEnvioEMail.RellenarLista;
var
i : Integer;
@ -163,4 +187,16 @@ begin
BorrarLista;
end;
procedure TfDialogListaAlbaranesProveedorEnvioEMail.SetVerPrecios(
const Value: Boolean);
begin
FVerPrecios := Value;
end;
procedure TfDialogListaAlbaranesProveedorEnvioEMail.SetVerRefProveedor(
const Value: Boolean);
begin
FVerRefProveedor := Value;
end;
end.

View File

@ -97,21 +97,29 @@ end;
procedure TfEditorAlbaranesProveedor.actEnviarEMailExecute(Sender: TObject);
var
AAlbaranes : IBizAlbaranProveedor;
FImprimirPrecios : Boolean;
FImprimirRefProveedor : Boolean;
begin
inherited;
FImprimirPrecios := True;
FImprimirRefProveedor := True;
if ViewGrid.NumSeleccionados = 1 then
FController.GenerarEmailAlbaran(FAlbaranes)
if ViewGrid.NumSeleccionados = 1 then begin
if ElegirOpcionesImpresionAlbaranProveedor(FImprimirPrecios, FImprimirRefProveedor) then
FController.GenerarEmailAlbaran(FAlbaranes, FImprimirPrecios, FImprimirRefProveedor)
end
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
if Assigned(AAlbaranes) then begin
if ElegirOpcionesImpresionAlbaranProveedor(FImprimirPrecios, FImprimirRefProveedor) then
if FController.EnviarEmailAlbaranes(AAlbaranes, FImprimirPrecios, FImprimirRefProveedor) then
RefrescarInterno;
end;
finally
AAlbaranes := NIL;
HideHourglassCursor;