Primera subida de envio por e-mail (sin terminar todos los documentos).

git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@312 f4e31baf-9722-1c47-927c-6f952f962d4b
This commit is contained in:
David Arranz 2008-10-03 17:15:51 +00:00
parent 2d5918b06b
commit cd3f8276cb
49 changed files with 2338 additions and 429 deletions

Binary file not shown.

View File

@ -58,76 +58,76 @@
<DelphiCompile Include="Base.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Modulos\Recibos de cliente\adortl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\cxIntl6D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\cxLibraryD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dclIndyCore.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\designide.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dsnap.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxDockingD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxNavBarD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinBlackD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinBlueD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinCaramelD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinCoffeeD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinGlassOceansD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkiniMaginaryD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinLilianD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinLiquidSkyD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinLondonLiquidSkyD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinMcSkinD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinMoneyTwinsD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007BlackD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007BlueD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007GreenD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007PinkD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinOffice2007SilverD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinsCoreD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinscxPCPainterD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinsdxLCPainterD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinsdxNavBar2PainterD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinSilverD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinStardustD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinValentineD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxSkinXmas2008BlueD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\GUISDK_D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\IndyCore.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\IndyProtocols.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\IndySystem.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\Jcl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JclVcl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JSDialog100.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvCmpD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvCoreD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvDlgsD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvMMD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvNetD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\JvSystemD11R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\pckMD5.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\pckUCDataConnector.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\pckUserControl_RT.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\PluginSDK_D10R.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\PngComponentsD10.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\PNG_D10.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\rtl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\TB2k_D10.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\tbx_d10.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vcl.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vclactnband.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vcldb.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\VclSmp.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\vclx.dcp" />
<DCCReference Include="..\Modulos\Recibos de cliente\xmlrtl.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\adortl.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\cxIntl6D11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\cxLibraryD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dclIndyCore.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\designide.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dsnap.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxDockingD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxNavBarD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinBlackD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinBlueD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinCaramelD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinCoffeeD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinGlassOceansD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkiniMaginaryD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinLilianD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinLiquidSkyD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinLondonLiquidSkyD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinMcSkinD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinMoneyTwinsD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007BlackD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007BlueD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007GreenD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007PinkD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinOffice2007SilverD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinsCoreD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinscxPCPainterD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinsdxLCPainterD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinsdxNavBar2PainterD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinSilverD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinStardustD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinValentineD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxSkinXmas2008BlueD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\GUISDK_D11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\IndyCore.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\IndyProtocols.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\IndySystem.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\Jcl.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JclVcl.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JSDialog100.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JvCmpD11R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JvCoreD11R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JvDlgsD11R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JvMMD11R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JvNetD11R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\JvSystemD11R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\pckMD5.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\pckUCDataConnector.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\pckUserControl_RT.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\PluginSDK_D10R.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\PngComponentsD10.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\PNG_D10.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\rtl.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\TB2k_D10.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\tbx_d10.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\vcl.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\vclactnband.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\vcldb.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\VclSmp.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\vclx.dcp" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\xmlrtl.dcp" />
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
<DCCReference Include="Conexion\uConfigurarConexion.pas">
<Form>fConfigurarConexion</Form>
@ -163,6 +163,7 @@
<DCCReference Include="Utiles\uDateUtils.pas" />
<DCCReference Include="Utiles\uDBSelectionListUtils.pas" />
<DCCReference Include="Utiles\uDialogUtils.pas" />
<DCCReference Include="Utiles\uEMailUtils.pas" />
<DCCReference Include="Utiles\uGridUtils.pas" />
<DCCReference Include="Utiles\uInfoProjectUtils.pas" />
<DCCReference Include="Utiles\uIntegerListUtils.pas" />

View File

@ -3,7 +3,7 @@ unit uIntegerListUtils;
interface
uses
Classes;
Classes, FactuGES_Intf;
type
TIntegerList = class(TList)
@ -14,6 +14,7 @@ type
procedure Add(Value: integer); reintroduce;
function Find(Value: integer; var Index: Integer): Boolean;
property Integers[index: integer]: integer read GetInteger write SetInteger; default;
function ToIntegerArray : TIntegerArray;
end;
implementation
@ -28,6 +29,15 @@ begin
Items[index] := Pointer(Value);
end;
function TIntegerList.ToIntegerArray: TIntegerArray;
var
i : Integer;
begin
Result := TIntegerArray.Create;
for i := 0 to Count - 1 do
Result.Add(Integers[i]);
end;
procedure TIntegerList.Add(Value: integer);
var
Index: integer;

View File

@ -435,5 +435,4 @@ begin
Result := DarRutaTemporal + Cadena + '\';
end;
end.
end.

Binary file not shown.

View File

@ -87,6 +87,7 @@
<DCCReference Include="uDialogBase.pas">
<Form>fDialogBase</Form>
</DCCReference>
<DCCReference Include="uDialogElegirEMail.pas" />
<DCCReference Include="uEditorBase.pas">
<Form>fEditorBase</Form>
<DesignClass>TCustomEditor</DesignClass>
@ -135,7 +136,7 @@
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewDocumentos.pas">
<Form>frViewGrid</Form>
<Form>frViewDocumentos</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewFiltroBase.pas">

View File

@ -36,7 +36,9 @@ object fDialogBase: TfDialogBase
Width = 75
Height = 25
Action = actCancelar
TabOrder = 0
Cancel = True
ModalResult = 2
TabOrder = 1
end
object Button2: TButton
AlignWithMargins = True
@ -49,7 +51,8 @@ object fDialogBase: TfDialogBase
Margins.Right = 15
Margins.Bottom = 0
Action = actAceptar
TabOrder = 1
ModalResult = 1
TabOrder = 0
end
end
object FlowPanel1: TFlowPanel

View File

@ -5,8 +5,8 @@ inherited fEditorPreview: TfEditorPreview
WindowState = wsMaximized
OnDestroy = FormDestroy
OnResize = FormResize
ExplicitWidth = 803
ExplicitHeight = 492
ExplicitWidth = 954
ExplicitHeight = 543
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader

View File

@ -11,7 +11,8 @@ uses
pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport,
frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode,
ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar,
frxExportMail, frxExportXLS, frxExportText, frxExportRTF;
frxExportMail, frxExportXLS, frxExportText, frxExportRTF, uControllerBase,
uIntegerListUtils;
type
IEditorPreview = interface(IEditorBase)
@ -28,6 +29,15 @@ type
procedure Print;
procedure Preview;
function GetController : IControllerBase;
procedure SetController (const Value : IControllerBase);
property Controller : IControllerBase read GetController
write SetController;
function GetListaID : TIntegerList;
procedure SetListaID (const Value : TIntegerList);
property ListaID : TIntegerList read GetListaID
write SetListaID;
end;
TfEditorPreview = class(TfEditorBase, IEditorPreview)
@ -133,14 +143,26 @@ type
procedure actExportarTextoExecute(Sender: TObject);
private
FPreview : TfrViewPreview;
FTitle : TCaption;
FController : IControllerBase;
FListaID : TIntegerList;
procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer);
procedure UpdateZoom;
protected
function GetReport: TfrxReport; virtual;
procedure SetTitle(const Value: string);
function GetTitle: string;
procedure PonerTitulos(const ATitulo: String = ''); override;
function GetController : IControllerBase;
procedure SetController (const Value : IControllerBase);
procedure SetListaID (const Value : TIntegerList);
function GetListaID : TIntegerList;
public
constructor Create(AOwner: TComponent); override;
property ListaID : TIntegerList read GetListaID
write SetListaID;
property Controller : IControllerBase read GetController
write SetController;
property Title: string read GetTitle write SetTitle;
property Report: TfrxReport read GetReport;
procedure Print;
@ -160,6 +182,16 @@ uses
{ TfEditorBase1 }
function TfEditorPreview.GetController: IControllerBase;
begin
Result := FController;
end;
function TfEditorPreview.GetListaID: TIntegerList;
begin
Result := FListaID;
end;
function TfEditorPreview.GetReport: TfrxReport;
begin
Result := frxReport1;
@ -168,7 +200,7 @@ end;
function TfEditorPreview.GetTitle: string;
begin
Result := Self.Caption;
Result := FTitle;
end;
procedure TfEditorPreview.FormShow(Sender: TObject);
@ -389,6 +421,21 @@ begin
FPreview.Preview.OnPageChanged := OnPageChanged;
end;
procedure TfEditorPreview.PonerTitulos(const ATitulo: String);
var
AText : String;
begin
AText := 'Previsualizar';
if (Length(ATitulo) > 0) then
AText := AText + ' - ' + ATitulo
else
AText := AText + ' - ' + FTitle;
JvNavPanelHeader.Caption := AText;
Caption := AText;
end;
procedure TfEditorPreview.Preview;
begin
Self.ShowModal;
@ -403,9 +450,20 @@ begin
Enabled := True;
end;
procedure TfEditorPreview.SetController(const Value: IControllerBase);
begin
FController := Value;
end;
procedure TfEditorPreview.SetListaID(const Value: TIntegerList);
begin
FListaID := Value;
end;
procedure TfEditorPreview.SetTitle(const Value: string);
begin
Self.Caption := 'Previsualizar - ' + Value;
FTitle := Value;
PonerTitulos(FTitle);
end;
function TfEditorPreview.ExportToFile: String;

View File

@ -10,7 +10,10 @@ uses
StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls,
JvCombobox, JvColorCombo, ToolWin, uDAInterfaces;
JvCombobox, JvColorCombo, ToolWin, uDAInterfaces, dxSkinsCore, dxSkinBlack,
dxSkinBlue, dxSkinOffice2007Black, dxSkinOffice2007Blue,
dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver,
dxSkinSilver, dxSkinsDefaultPainters, dxSkinscxPCPainter;
type
IViewDetallesDTO = interface(IViewDetallesBase)

View File

@ -7,7 +7,10 @@ uses
Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics,
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit,
cxCheckBox, cxMemo, uDAInterfaces;
cxCheckBox, cxMemo, uDAInterfaces, dxSkinsCore, dxSkinBlack, dxSkinBlue,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver,
dxSkinsDefaultPainters;
type
TfrViewIncidencias = class(TfrViewBase)

View File

@ -17,6 +17,7 @@ inherited frViewTotales: TfrViewTotales
Align = alTop
ParentBackground = True
TabOrder = 0
TabStop = False
AutoContentSizes = [acsWidth, acsHeight]
object Bevel1: TBevel
Left = 104

View File

@ -8,7 +8,10 @@ uses
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit,
ComCtrls, dxLayoutControl, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit,
cxDBLookupComboBox, cxCheckBox, uDAInterfaces;
cxDBLookupComboBox, cxCheckBox, uDAInterfaces, dxSkinsCore, dxSkinBlack,
dxSkinBlue, dxSkinOffice2007Black, dxSkinOffice2007Blue,
dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver,
dxSkinSilver, dxSkinsDefaultPainters, dxSkinsdxLCPainter;
type
TfrViewTotales = class(TfrViewBase)

View File

@ -132,6 +132,7 @@ type
AFechaRecibido : TDateTime = 0;
DoPost: Boolean = True) : Boolean;
procedure EnviarAlbaranPorEMail(AAlbaran : IBizAlbaranCliente);
procedure Preview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false);
procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false);
procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean);
@ -144,16 +145,17 @@ implementation
uses
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorAlbaranesCliente, uIEditorAlbaranesDevCliente, uIEditorAlbaranDevCliente,
uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente,
uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente, uSistemaFunc,
uBizContactos, uDataTableUtils, uDataModuleUsuarios, Classes, uFactuGES_App,
schAlbaranesClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranCliente,
uIEditorElegirAlbaranesCliente, uIEditorDireccionEntregaAlbaranCliente,
schContactosClient_Intf, uAlbaranesClienteReportController, uControllerDetallesBase,
schContactosClient_Intf, uAlbaranesClienteReportController,
uControllerDetallesBase, uEMailUtils, uDialogElegirEMail,
// Pedidos no estará en TECSITEL
// uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, schPedidosClienteClient_Intf,
uDialogUtils, Windows, Forms, Dialogs, uGUIBase;
uDialogUtils, Windows, Forms, Dialogs, uGUIBase, uIntegerListUtils;
@ -745,6 +747,50 @@ begin
end;
end;
procedure TAlbaranesClienteController.EnviarAlbaranPorEMail(
AAlbaran: IBizAlbaranCliente);
var
AReportController : IAlbaranesClienteReportController;
AFicheroTMP : TFileName;
AEMail : String;
AListaEmail : TStringList;
begin
if not Assigned(AAlbaran) then
raise Exception.Create ('Albarán no asignado (EnviarAlbaranPorEMail)');
if AAlbaran.DataTable.Active then
AAlbaran.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AAlbaran.REFERENCIA));
AListaEmail := TStringList.Create;
try
RecuperarCliente(AAlbaran);
AAlbaran.Cliente.DataTable.Active := True;
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);
end;
ShowHourglassCursor;
AReportController := TAlbaranesClienteReportController.Create;
try
AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP);
SendMailMAPI('Albarán ' + AAlbaran.REFERENCIA, '', AFicheroTMP, '', '', AAlbaran.Cliente.NOMBRE, AEMail);
finally
SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL;
HideHourglassCursor;
end;
end;
function TAlbaranesClienteController.EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean;
begin
if not Assigned(AAlbaran) then
@ -942,12 +988,13 @@ end;
procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
var
AReportController : IAlbaranesClienteReportController;
ID_Albaranes: TStringList;
ID_Albaranes: TIntegerList;
begin
AReportController := TAlbaranesClienteReportController.Create;
ID_Albaranes := TIntegerList.Create;
try
ID_Albaranes := TStringList.Create;
//Si deseamos previsualizar todos los items del objeto albaran
if AllItems then
@ -957,33 +1004,32 @@ begin
First;
while not EOF do
begin
ID_Albaranes.Add(IntToStr(AAlbaran.ID));
ID_Albaranes.Add(AAlbaran.ID);
Next;
end;
end;
end
//Solo previsualizamos el item seleccionado
else
ID_Albaranes.Add(IntToStr(AAlbaran.ID));
ID_Albaranes.Add(AAlbaran.ID);
AReportController.Preview(ID_Albaranes.CommaText);
AReportController.Preview(ID_Albaranes);
finally
AReportController := NIL;
ID_Albaranes.Free;
FreeANDNIL(ID_Albaranes);
end;
end;
procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
var
AReportController : IAlbaranesClienteReportController;
ID_Albaranes: TStringList;
ID_Albaranes: TIntegerList;
begin
AReportController := TAlbaranesClienteReportController.Create;
ID_Albaranes := TIntegerList.Create;
try
ID_Albaranes := TStringList.Create;
//Si deseamos previsualizar todos los items del objeto albaran
if AllItems then
begin
@ -992,20 +1038,20 @@ begin
First;
while not EOF do
begin
ID_Albaranes.Add(IntToStr(AAlbaran.ID));
ID_Albaranes.Add(AAlbaran.ID);
Next;
end;
end;
end
//Solo previsualizamos el item seleccionado
else
ID_Albaranes.Add(IntToStr(AAlbaran.ID));
ID_Albaranes.Add(AAlbaran.ID);
AReportController.Print(ID_Albaranes.CommaText);
AReportController.Print(ID_Albaranes);
finally
AReportController := NIL;
ID_Albaranes.Free;
FreeANDNIL(ID_Albaranes);
end;
end;

View File

@ -5,15 +5,16 @@ interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleAlbaranesClienteReport,
uClientesController, uAlbaranesClienteController, uDetallesAlbaranClienteController,
uBizAlbaranesCliente;
uBizAlbaranesCliente, uIntegerListUtils;
type
IAlbaranesClienteReportController = interface(IControllerBase)
['{4BCC7A93-3322-494C-A3FA-118F4B62CB15}']
procedure Preview(const AID : String);
procedure Print(const AID : String);
procedure Preview(const AListaID : TIntegerList);
procedure Print(const AListaID : TIntegerList);
procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean);
procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean);
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end;
TAlbaranesClienteReportController = class(TControllerBase, IAlbaranesClienteReportController)
@ -25,10 +26,11 @@ type
constructor Create;
destructor Destroy; override;
procedure Preview(const AID : String);
procedure Print(const AID : String);
procedure EtiquetasPreview(const AID : integer; const withRefCliente: Boolean);
procedure EtiquetasPrint(const AID : integer; const withRefCliente: Boolean);
procedure Preview(const AListaID : TIntegerList);
procedure Print(const AListaID : TIntegerList);
procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean);
procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean);
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end;
@ -36,7 +38,8 @@ implementation
uses
uROTypes, uEditorRegistryUtils, uIEditorAlbaranesClientePreview,
uEditorPreview, uDataModuleAlbaranesCliente, uEditorBase, cxControls;
uEditorPreview, uDataModuleAlbaranesCliente, uEditorBase, cxControls,
uStringsUtils, uSistemaFunc, uFactuGES_App;
{ TAlbaranesClienteReportController }
@ -112,7 +115,30 @@ begin
end;
end;
procedure TAlbaranesClienteReportController.Preview(const AID : String);
function TAlbaranesClienteReportController.ExportToPDF(const AID: Integer;
const AFileName: String): Boolean;
var
AStream: Binary;
begin
Result := False;
if EsCadenaVacia(AFileName) then
Exit;
ShowHourglassCursor;
try
AStream := FDataModule.GetRptPDFAlbaran(AID);
try
AStream.SaveToFile(AFileName);
Result := True;
finally
FreeAndNil(AStream);
end;
finally
HideHourglassCursor;
end;
end;
procedure TAlbaranesClienteReportController.Preview(const AListaID : TIntegerList);
var
AStream: Binary;
AEditor : IEditorAlbaranesClientePreview;
@ -120,15 +146,20 @@ begin
AEditor := NIL;
ShowHourglassCursor;
try
AStream := FDataModule.GetReport(AID); //Lista de seleccionados (Array de integers)
AStream := FDataModule.GetRptAlbaranes(AListaID);
try
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
LoadFromStream(AStream);
Preview;
Release;
try
AEditor.Controller := Self;
AEditor.ListaID := AListaID;
AEditor.Title := 'Albarán - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Preview;
finally
AEditor.Release;
end;
end;
finally
FreeAndNil(AStream);
@ -139,7 +170,7 @@ begin
end;
end;
procedure TAlbaranesClienteReportController.Print(const AID : String);
procedure TAlbaranesClienteReportController.Print(const AListaID : TIntegerList);
var
AStream: Binary;
AEditor : IEditorAlbaranesClientePreview;
@ -147,15 +178,20 @@ begin
AEditor := NIL;
ShowHourglassCursor;
try
AStream := FDataModule.GetReport(AID);
AStream := FDataModule.GetRptAlbaranes(AListaID);
try
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
LoadFromStream(AStream);
Print;
Release;
try
AEditor.Controller := Self;
AEditor.ListaID := AListaID;
AEditor.Title := 'Albarán - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Print;
finally
AEditor.Release;
end;
end;
finally
FreeAndNil(AStream);

View File

@ -6,7 +6,7 @@ uses
DB, Classes, SysUtils, uDADesigntimeCall,
uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider,
uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter,
uDAClientDataModule, uROTypes,
uDAClientDataModule, uROTypes, uIntegerListUtils,
uIDataModuleAlbaranesCliente, uBizAlbaranesCliente, uBizDetallesAlbaranCliente,
uIDataModuleAlbaranesClienteReport, uDataModuleBase, uDABin2DataStreamer, uDAMemDataTable,
uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter;
@ -34,8 +34,9 @@ type
function NewItem : IBizAlbaranCliente;
// Report
function GetReport(const AID: String): Binary;
function GetRptAlbaranes(const ListaID: TIntegerList): Binary;
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
function GetRptPDFAlbaran(const AID: Integer): Binary;
end;
implementation
@ -59,9 +60,30 @@ begin
RORemoteService.Message := dmConexion.Message;
end;
function TDataModuleAlbaranesCliente.GetReport(const AID: String): Binary;
function TDataModuleAlbaranesCliente.GetRptAlbaranes(const ListaID: TIntegerList): Binary;
var
AParam : TIntegerArray;
begin
Result := (RORemoteService as IsrvAlbaranesCliente).GenerateReport(AID)
AParam := ListaID.ToIntegerArray;
try
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam);
finally
FreeAndNil(AParam);
end;
end;
function TDataModuleAlbaranesCliente.GetRptPDFAlbaran(
const AID: Integer): Binary;
var
AParam : TIntegerArray;
begin
AParam := TIntegerArray.Create;
try
AParam.Add(AID);
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam);
finally
FreeAndNil(AParam);
end;
end;
function TDataModuleAlbaranesCliente.NewItem: IBizAlbaranCliente;
@ -89,7 +111,7 @@ end;
function TDataModuleAlbaranesCliente.GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
begin
Result := (RORemoteService as IsrvAlbaranesCliente).GenerateEtiquetas(AID, withRefCliente)
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEtiquetas(AID, withRefCliente)
end;
function TDataModuleAlbaranesCliente.GetItem(const ID: Integer): IBizAlbaranCliente;

View File

@ -3,13 +3,14 @@ unit uIDataModuleAlbaranesClienteReport;
interface
uses
uROTypes;
uROTypes, uIntegerListUtils;
type
IDataModuleAlbaranesClienteReport = interface
['{42C55204-5AB9-403E-8385-1A62B02D8234}']
function GetReport(const AID: String): Binary;
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
function GetRptAlbaranes(const ListaID: TIntegerList): Binary;
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
function GetRptPDFAlbaran(const AID: Integer): Binary;
end;
implementation

View File

@ -1,8 +1,8 @@
object RptAlbaranesCliente: TRptAlbaranesCliente
OldCreateOrder = True
OnCreate = DataModuleCreate
Height = 405
Width = 599
Height = 425
Width = 527
object DADataCabecera: TDADataSource
DataSet = tbl_Cabecera.Dataset
DataTable = tbl_Cabecera
@ -1306,4 +1306,18 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Left = 448
Top = 16
end
object frxPDFExport1: TfrxPDFExport
ShowDialog = False
UseFileCache = True
ShowProgress = False
PrintOptimized = True
Outline = False
Author = 'FactuGES'
Subject = 'FactuGES'
Background = False
Creator = 'FactuGES'
HTMLTags = True
Left = 360
Top = 352
end
end

View File

@ -7,7 +7,8 @@ uses
Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable;
uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable,
frxExportPDF, FactuGES_Intf;
type
TRptAlbaranesCliente = class(TDataModule)
@ -31,13 +32,15 @@ type
frxDBEtiquetas: TfrxDBDataset;
schReport: TDASchema;
DataDictionary: TDADataDictionary;
frxPDFExport1: TfrxPDFExport;
procedure DataModuleCreate(Sender: TObject);
private
FConnection: IDAConnection;
//Genera cada uno de los albaranes a imprimir
procedure GenerarAlbaran(const ID: integer); overload;
procedure _GenerarAlbaran(const ID: Integer);
public
function GenerarAlbaran(const AID : String): Binary; overload;
function GenerarAlbaran(const ListaID : TIntegerArray): Binary;
function GenerarAlbaranEnPDF(const ListaID : TIntegerArray): Binary;
function GenerarEtiquetas(const AID : Integer; withRefCliente: Boolean): Binary;
end;
@ -68,30 +71,45 @@ begin
frxReport.EngineOptions.NewSilentMode := simReThrow;
end;
function TRptAlbaranesCliente.GenerarAlbaran(const AID: String): Binary;
function TRptAlbaranesCliente.GenerarAlbaran(const ListaID : TIntegerArray): Binary;
var
ID_Albaranes: TStringList;
i: Integer;
begin
Result := Binary.Create;
FConnection.BeginTransaction;
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
try
ID_Albaranes := TStringList.Create;
ID_Albaranes.CommaText := AID;
//Vamos generando todos y cada uno de los albaranes recibidos
for i := 0 to ID_Albaranes.Count - 1 do
GenerarAlbaran(StrToInt(ID_Albaranes.Strings[i]));
//Vamos generando todos y cada uno de los presupuestos recibidos
for i := 0 to ListaID.Count - 1 do
_GenerarAlbaran(ListaID.Items[i]);
frxReport.PreviewPages.SaveToStream(Result);
finally
FConnection.RollbackTransaction;
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
end;
end;
procedure TRptAlbaranesCliente.GenerarAlbaran(const ID: integer);
function TRptAlbaranesCliente.GenerarAlbaranEnPDF(
const ListaID: TIntegerArray): Binary;
var
i: Integer;
begin
Result := Binary.Create;
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
try
//Vamos generando todos y cada uno de los presupuestos recibidos
for i := 0 to ListaID.Count - 1 do
_GenerarAlbaran(ListaID.Items[i]);
frxPDFExport1.Stream := Result;
frxReport.Export(frxPDFExport1)
finally
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
end;
end;
procedure TRptAlbaranesCliente._GenerarAlbaran(const ID: integer);
begin
tbl_Cabecera.ParamByName('ID').AsInteger := ID;
tbl_Detalles.ParamByName('ID_ALBARAN').AsInteger := ID;

View File

@ -32,8 +32,8 @@ type
procedure DARemoteServiceCreate(Sender: TObject);
protected
{ IsrvAlbaranesCliente methods }
function GenerateReport(const ID: String): Binary;
function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
end;
implementation
@ -81,7 +81,21 @@ begin
ConnectionName := dmServer.ConnectionName;
end;
function TsrvAlbaranesCliente.GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
function TsrvAlbaranesCliente.GenerarInforme(
const ListaID: TIntegerArray): Binary;
var
AReportGenerator : TRptAlbaranesCliente;
begin
AReportGenerator := TRptAlbaranesCliente.Create(nil);
try
Result := AReportGenerator.GenerarAlbaran(ListaID);
finally
FreeAndNIL(AReportGenerator);
end;
end;
function TsrvAlbaranesCliente.GenerarInformeEtiquetas(const ID: Integer;
const withRefCliente: Boolean): Binary;
var
AReportGenerator : TRptAlbaranesCliente;
begin
@ -93,18 +107,6 @@ begin
end;
end;
function TsrvAlbaranesCliente.GenerateReport(const ID: String): Binary;
var
AReportGenerator : TRptAlbaranesCliente;
begin
AReportGenerator := TRptAlbaranesCliente.Create(nil);
try
Result := AReportGenerator.GenerarAlbaran(ID);
finally
FreeAndNIL(AReportGenerator);
end;
end;
initialization
TROClassFactory.Create('srvAlbaranesCliente', Create_srvAlbaranesCliente, TsrvAlbaranesCliente_Invoker);

View File

@ -41,15 +41,7 @@
<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><Excluded_Packages>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages>

View File

@ -54,11 +54,11 @@
<DelphiCompile Include="Articulos_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Articulos_controller.dcp" />
<DCCReference Include="..\Articulos_model.dcp" />
<DCCReference Include="..\Contactos_view.dcp" />
<DCCReference Include="..\Familias_controller.dcp" />
<DCCReference Include="..\GUIBase.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\Articulos_controller.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\Articulos_model.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\Contactos_view.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\Familias_controller.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\GUIBase.dcp" />
<DCCReference Include="uArticulosViewRegister.pas" />
<DCCReference Include="uEditorArticulo.pas">
<Form>fEditorArticulo</Form>

View File

@ -1,10 +1,7 @@
inherited frViewDetallesArticulos: TfrViewDetallesArticulos
Width = 753
Height = 384
ParentBiDiMode = False
OnShow = CustomViewShow
inherited ToolBar1: TToolBar
Width = 753
inherited ToolButton4: TToolButton
Wrap = True
end
@ -65,8 +62,8 @@ inherited frViewDetallesArticulos: TfrViewDetallesArticulos
end
end
inherited cxGrid: TcxGrid
Width = 753
Height = 312
ExplicitWidth = 753
ExplicitHeight = 312
inherited cxGridView: TcxGridDBTableView
inherited cxGridViewTIPO: TcxGridDBColumn
Visible = False
@ -121,9 +118,9 @@ inherited frViewDetallesArticulos: TfrViewDetallesArticulos
end
end
inherited TBXDock1: TTBXDock
Width = 753
ExplicitWidth = 753
inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 548
ExplicitWidth = 451
object TBXItem12: TTBXItem [0]
Action = actAnadirArticulos
DisplayMode = nbdmImageAndText

View File

@ -11,7 +11,10 @@ uses
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls,
JvCombobox, JvColorCombo, ToolWin, uControllerDetallesArticulos,
cxTextEdit, uDAInterfaces;
cxTextEdit, uDAInterfaces, dxSkinsCore, dxSkinBlack, dxSkinBlue,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver,
dxSkinsDefaultPainters, dxSkinscxPCPainter;
type
IViewDetallesArticulos = interface(IViewDetallesDTO)

View File

@ -13,4 +13,4 @@ BEGIN
END
/* C:\Codigo Acana\Source\Modulos\Gestion de documentos\Controller\GestorDocumentos_Controller.res */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1F7.tmp */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1E8.tmp */

View File

@ -14,4 +14,4 @@ END
/* C:\Codigo Acana\Source\Modulos\Gestion de documentos\Data\uDataModuleGestorDocumentos.dfm */
/* C:\Codigo Acana\Source\Modulos\Gestion de documentos\Data\GestorDocumentos_data.res */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1F5.tmp */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf1E6.tmp */

View File

@ -49,12 +49,12 @@
<DelphiCompile Include="PresupuestosCliente_controller.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\..\Lib\Articulos_controller.dcp" />
<DCCReference Include="..\..\Lib\Contactos_controller.dcp" />
<DCCReference Include="..\..\Lib\GestorDocumentos_controller.dcp" />
<DCCReference Include="..\..\Lib\GUIBase.dcp" />
<DCCReference Include="..\..\Lib\PresupuestosCliente_data.dcp" />
<DCCReference Include="..\..\Lib\PresupuestosCliente_model.dcp" />
<DCCReference Include="..\Articulos_controller.dcp" />
<DCCReference Include="..\Contactos_controller.dcp" />
<DCCReference Include="..\GestorDocumentos_controller.dcp" />
<DCCReference Include="..\GUIBase.dcp" />
<DCCReference Include="..\PresupuestosCliente_data.dcp" />
<DCCReference Include="..\PresupuestosCliente_model.dcp" />
<DCCReference Include="uArticulosPresupuestoClienteController.pas" />
<DCCReference Include="uDetallesPresupuestoClienteController.pas" />
<DCCReference Include="uPresupuestosClienteController.pas" />

View File

@ -56,6 +56,7 @@ type
procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente);
// procedure SetID_Tienda (APresupuesto: IBizPresupuestoCliente; const ID_Tienda: Integer; Tienda: Variant);
end;
@ -123,6 +124,7 @@ type
procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente);
// procedure SetID_Tienda (APresupuesto: IBizPresupuestoCliente; const ID_Tienda: Integer; Tienda: Variant);
end;
@ -134,7 +136,8 @@ uses
uBizContactos, uDataTableUtils, uDataModuleUsuarios, Classes, uFactuGES_App,
schPresupuestosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPresupuestoCliente,
uIEditorElegirPresupuestosCliente, uIEditorDireccionEntregaPresupuestoCliente,
schContactosClient_Intf, uPresupuestosClienteReportController;
schContactosClient_Intf, uPresupuestosClienteReportController, uSistemaFunc,
uEMailUtils, uDialogElegirEMail, uIntegerListUtils, Dialogs;
{ TPresupuestosClienteController }
@ -537,6 +540,51 @@ begin
end;
end;
procedure TPresupuestosClienteController.EnviarPresupuestoPorEMail(
APresupuesto: IBizPresupuestoCliente);
var
AReportController : IPresupuestosClienteReportController;
AFicheroTMP : TFileName;
AEMail : String;
AListaEmail : TStringList;
begin
if not Assigned(APresupuesto) then
raise Exception.Create ('Presupuesto no asignado (EnviarPresupuestoPorEMail)');
if APresupuesto.DataTable.Active then
APresupuesto.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APresupuesto.REFERENCIA));
AListaEmail := TStringList.Create;
try
RecuperarCliente(APresupuesto);
APresupuesto.Cliente.DataTable.Active := True;
if not APresupuesto.Cliente.EMAIL_1IsNull then
AListaEmail.Add(APresupuesto.Cliente.EMAIL_1);
if not APresupuesto.Cliente.EMAIL_2IsNull then
AListaEmail.Add(APresupuesto.Cliente.EMAIL_2);
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end;
ShowHourglassCursor;
AReportController := TPresupuestosClienteReportController.Create;
try
AReportController.ExportToPDF(APresupuesto.ID, AFicheroTMP);
SendMailMAPI('Presupuesto ' + APresupuesto.REFERENCIA, '', AFicheroTMP, '', '', APresupuesto.Cliente.NOMBRE, AEMail);
finally
DeleteFile(AFicheroTMP);
AReportController := NIL;
HideHourglassCursor;
end;
end;
function TPresupuestosClienteController.EsEliminable(APresupuesto: IBizPresupuestoCliente): Boolean;
begin
if not Assigned(APresupuesto) then
@ -799,12 +847,11 @@ end;
procedure TPresupuestosClienteController.Preview(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false);
var
AReportController : IPresupuestosClienteReportController;
ID_Presupuestos: TStringList;
ID_Presupuestos: TIntegerList;
begin
AReportController := TPresupuestosClienteReportController.Create;
try
ID_Presupuestos := TStringList.Create;
ID_Presupuestos := TIntegerList.Create;
//Si deseamos previsualizar todos los items del objeto presupuesto
if AllItems then
@ -814,17 +861,16 @@ begin
First;
while not EOF do
begin
ID_Presupuestos.Add(IntToStr(APresupuesto.ID));
ID_Presupuestos.Add(APresupuesto.ID);
Next;
end;
end;
end
//Solo previsualizamos el item seleccionado
else
ID_Presupuestos.Add(IntToStr(APresupuesto.ID));
AReportController.Preview(ID_Presupuestos.CommaText);
ID_Presupuestos.Add(APresupuesto.ID);
AReportController.Preview(ID_Presupuestos);
finally
AReportController := NIL;
FreeAndNil(ID_Presupuestos);
@ -834,14 +880,12 @@ end;
procedure TPresupuestosClienteController.Print(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false);
var
AReportController : IPresupuestosClienteReportController;
ID_Presupuestos: TStringList;
ID_Presupuestos: TIntegerList;
begin
AReportController := TPresupuestosClienteReportController.Create;
ID_Presupuestos := TIntegerList.Create;
try
ID_Presupuestos := TStringList.Create;
//Si deseamos previsualizar todos los items del objeto albaran
//Si deseamos imprimimos todos los items del objeto presupuesto
if AllItems then
begin
with APresupuesto.DataTable do
@ -849,20 +893,20 @@ begin
First;
while not EOF do
begin
ID_Presupuestos.Add(IntToStr(APresupuesto.ID));
ID_Presupuestos.Add(APresupuesto.ID);
Next;
end;
end;
end
//Solo previsualizamos el item seleccionado
//Solo imprimimos el item seleccionado
else
ID_Presupuestos.Add(IntToStr(APresupuesto.ID));
ID_Presupuestos.Add(APresupuesto.ID);
AReportController.Print(ID_Presupuestos.CommaText);
AReportController.Print(ID_Presupuestos);
finally
AReportController := NIL;
ID_Presupuestos.Free;
FreeANDNIL(ID_Presupuestos);
end;
end;

View File

@ -5,13 +5,14 @@ interface
uses
Classes, SysUtils, uDADataTable, uIDataModulePresupuestosClienteReport,
uClientesController, uPresupuestosClienteController, uDetallesPresupuestoClienteController,
uBizPresupuestosCliente, uControllerBase;
uBizPresupuestosCliente, uControllerBase, uIntegerListUtils;
type
IPresupuestosClienteReportController = interface(IControllerBase)
['{D0686358-251C-43C4-9927-6112F2F4D3B8}']
procedure Preview(const AID : String);
procedure Print(const AID : String);
procedure Preview(const AListaID : TIntegerList);
procedure Print(const AListaID : TIntegerList);
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end;
TPresupuestosClienteReportController = class(TControllerBase, IPresupuestosClienteReportController)
@ -22,8 +23,9 @@ type
constructor Create;
destructor Destroy; override;
procedure Preview(const AID : String);
procedure Print(const AID : String);
procedure Preview(const AListaID : TIntegerList);
procedure Print(const AListaID : TIntegerList);
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end;
@ -31,7 +33,8 @@ implementation
uses
uROTypes, uEditorRegistryUtils, uIEditorPresupuestosClientePreview,
uEditorPreview, uDataModulePresupuestosCliente, uEditorBase, cxControls;
uEditorPreview, uDataModulePresupuestosCliente, uEditorBase, cxControls,
uFactuGES_App, uStringsUtils;
{ TPresupuestosClienteReportController }
@ -53,7 +56,30 @@ begin
inherited;
end;
procedure TPresupuestosClienteReportController.Preview(const AID : String);
function TPresupuestosClienteReportController.ExportToPDF(const AID: Integer;
const AFileName: String): Boolean;
var
AStream: Binary;
begin
Result := False;
if EsCadenaVacia(AFileName) then
Exit;
ShowHourglassCursor;
try
AStream := FDataModule.GetRptPDFPresupuesto(AID);
try
AStream.SaveToFile(AFileName);
Result := True;
finally
FreeAndNil(AStream);
end;
finally
HideHourglassCursor;
end;
end;
procedure TPresupuestosClienteReportController.Preview(const AListaID : TIntegerList);
var
AStream: Binary;
AEditor : IEditorPresupuestosClientePreview;
@ -61,15 +87,20 @@ begin
AEditor := NIL;
ShowHourglassCursor;
try
AStream := FDataModule.GetReport(AID);
AStream := FDataModule.GetRptPresupuestos(AListaID);
try
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
AEditor.LoadFromStream(AStream);
AEditor.Preview;
AEditor.Release;
try
AEditor.Controller := Self;
AEditor.ListaID := AListaID;
AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Preview;
finally
AEditor.Release;
end;
end;
finally
FreeAndNil(AStream);
@ -80,7 +111,7 @@ begin
end;
end;
procedure TPresupuestosClienteReportController.Print(const AID : String);
procedure TPresupuestosClienteReportController.Print(const AListaID : TIntegerList);
var
AStream: Binary;
AEditor : IEditorPresupuestosClientePreview;
@ -88,15 +119,20 @@ begin
AEditor := NIL;
ShowHourglassCursor;
try
AStream := FDataModule.GetReport(AID);
AStream := FDataModule.GetRptPresupuestos(AListaID);
try
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
AEditor.LoadFromStream(AStream);
AEditor.Print;
AEditor.Release;
try
AEditor.Controller := Self;
AEditor.ListaID := AListaID;
AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Print;
finally
AEditor.Release;
end;
end;
finally
FreeAndNil(AStream);
@ -105,9 +141,6 @@ begin
finally
HideHourglassCursor;
end;
if Assigned(AEditor) then
end;
end.

View File

@ -42,7 +42,7 @@
<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">PresupuestosCliente_data.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">PresupuestosCliente_data.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
@ -537,4 +537,4 @@ mtException_AntiFreeze0="The application seems to be frozen."
Count mtInvalidEmailMsg=1
mtInvalidEmailMsg0="Invalid email."
TextsCollection=English
EurekaLog Last Line -->
EurekaLog Last Line -->

View File

@ -11,7 +11,7 @@ uses
uIDataModulePresupuestosCliente, uBizPresupuestosCliente, uBizDetallesPresupuestoCliente,
uIDataModulePresupuestosClienteReport, uDataModuleBase, uDAInterfaces,
uRODynamicRequest, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer,
uDAMemDataTable;
uDAMemDataTable, uIntegerListUtils;
type
TDataModulePresupuestosCliente = class(TDataModuleBase, IDataModulePresupuestosCliente, IDataModulePresupuestosClienteReport)
@ -26,17 +26,16 @@ type
private
function _GetDetalles : IBizDetallesPresupuestoCliente;
protected
procedure AsignarClaseNegocio(APresupuesto: TDADataTable); virtual;
public
function GetItems : IBizPresupuestoCliente; virtual;
function GetItem(const ID : Integer) : IBizPresupuestoCliente;
function NewItem : IBizPresupuestoCliente;
// Report
function GetReport(const AID: String): Binary;
function GetRptPresupuestos(const AListaID: TIntegerList): Binary;
function GetRptPDFPresupuesto(const AID: Integer): Binary;
end;
implementation
@ -60,9 +59,31 @@ begin
RORemoteService.Message := dmConexion.Message;
end;
function TDataModulePresupuestosCliente.GetReport(const AID: String): Binary;
function TDataModulePresupuestosCliente.GetRptPDFPresupuesto(
const AID: Integer): Binary;
var
AParam : TIntegerArray;
begin
Result := (RORemoteService as IsrvPresupuestosCliente).GenerateReport(AID)
AParam := TIntegerArray.Create;
try
AParam.Add(AID);
Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInformeEnPDF(AParam)
finally
FreeANDNIL(AParam)
end;
end;
function TDataModulePresupuestosCliente.GetRptPresupuestos(
const AListaID: TIntegerList): Binary;
var
AParam : TIntegerArray;
begin
AParam := AListaID.ToIntegerArray;
try
Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInforme(AParam)
finally
FreeANDNIL(AParam)
end;
end;
function TDataModulePresupuestosCliente.NewItem: IBizPresupuestoCliente;

View File

@ -3,12 +3,13 @@ unit uIDataModulePresupuestosClienteReport;
interface
uses
uROTypes;
uROTypes, uIntegerListUtils;
type
IDataModulePresupuestosClienteReport = interface
['{70CEBB06-376F-4363-B80F-DDA4324E0F85}']
function GetReport(const AID: String): Binary;
function GetRptPresupuestos(const AListaID: TIntegerList): Binary;
function GetRptPDFPresupuesto(const AID: Integer): Binary;
end;
implementation

View File

@ -1,8 +1,8 @@
object RptPresupuestosCliente: TRptPresupuestosCliente
OldCreateOrder = True
OnCreate = DataModuleCreate
Height = 604
Width = 447
Height = 548
Width = 535
object DADataCabecera: TDADataSource
DataSet = tbl_Cabecera.Dataset
DataTable = tbl_Cabecera
@ -844,4 +844,18 @@ object RptPresupuestosCliente: TRptPresupuestosCliente
Left = 136
Top = 352
end
object frxPDFExport1: TfrxPDFExport
ShowDialog = False
UseFileCache = True
ShowProgress = False
PrintOptimized = True
Outline = False
Author = 'FactuGES'
Subject = 'FactuGES'
Background = False
Creator = 'FactuGES'
HTMLTags = True
Left = 472
Top = 440
end
end

View File

@ -8,7 +8,8 @@ uses
uDADataTable, uDACDSDataTable, DB, uDAClasses, uDABINAdapter, uROTypes,
uDAInterfaces, uDAMemDataTable, uDABin2DataStreamer,
frxGradient, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDAEngine,
IBSQL, IBDatabase, IBCustomDataSet, IBQuery, uDADataStreamer;
IBSQL, IBDatabase, IBCustomDataSet, IBQuery, uDADataStreamer, FactuGES_Intf,
frxExportPDF;
type
TRptPresupuestosCliente = class(TDataModule)
@ -33,12 +34,14 @@ type
DataSource2: TDataSource;
cabecera: TIBQuery;
detalles: TIBQuery;
frxPDFExport1: TfrxPDFExport;
procedure DataModuleCreate(Sender: TObject);
private
FConnection: IDAConnection;
procedure GenerarPresupuesto(const AID : Integer); overload;
procedure _GenerarPresupuesto(const AID : Integer);
public
function GenerarPresupuesto(const AID : String): Binary; overload;
function GenerarPresupuesto(const ListaID : TIntegerArray): Binary;
function GenerarPresupuestoEnPDF(const ListaID : TIntegerArray): Binary;
end;
implementation
@ -66,31 +69,45 @@ begin
frxReport.EngineOptions.NewSilentMode := simReThrow;
end;
function TRptPresupuestosCliente.GenerarPresupuesto(const AID: String): Binary;
function TRptPresupuestosCliente.GenerarPresupuesto(const ListaID : TIntegerArray): Binary;
var
ID_Presupuestos: TStringList;
i: Integer;
begin
Result := Binary.Create;
FConnection.BeginTransaction;
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
try
ID_Presupuestos := TStringList.Create;
ID_Presupuestos.CommaText := AID;
//Vamos generando todos y cada uno de los albaranes recibidos
for i := 0 to ID_Presupuestos.Count - 1 do
GenerarPresupuesto(StrToInt(ID_Presupuestos.Strings[i]));
//Vamos generando todos y cada uno de los presupuestos recibidos
for i := 0 to ListaID.Count - 1 do
_GenerarPresupuesto(ListaID.Items[i]);
frxReport.PreviewPages.SaveToStream(Result);
finally
FConnection.RollbackTransaction;
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
end;
end;
procedure TRptPresupuestosCliente.GenerarPresupuesto(const AID: Integer);
function TRptPresupuestosCliente.GenerarPresupuestoEnPDF(
const ListaID: TIntegerArray): Binary;
var
i: Integer;
begin
Result := Binary.Create;
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
try
//Vamos generando todos y cada uno de los presupuestos recibidos
for i := 0 to ListaID.Count - 1 do
_GenerarPresupuesto(ListaID.Items[i]);
frxPDFExport1.Stream := Result;
frxReport.Export(frxPDFExport1)
finally
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
end;
end;
procedure TRptPresupuestosCliente._GenerarPresupuesto(const AID: Integer);
{var
AStream: TMemoryStream;
dsMaster: IDADataset;

View File

@ -10,7 +10,7 @@ unit srvPresupuestosCliente_Impl;
interface
uses
{vcl:} Classes, SysUtils,
{vcl:} Classes, SysUtils,
{RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
{Ancestor Implementation:} DataAbstractService_Impl,
{Used RODLs:} DataAbstract4_Intf,
@ -31,10 +31,10 @@ type
procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset;
const IncludeSchema: Boolean; const MaxRecords: Integer);
procedure DARemoteServiceCreate(Sender: TObject);
private
protected
{ IsrvPresupuestosCliente methods }
function GenerateReport(const ID: String): Binary;
function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
end;
implementation
@ -78,13 +78,27 @@ begin
ConnectionName := dmServer.ConnectionName;
end;
function TsrvPresupuestosCliente.GenerateReport(const ID: String): Binary;
function TsrvPresupuestosCliente.GenerarInforme(
const ListaID: TIntegerArray): Binary;
var
AReportGenerator : TRptPresupuestosCliente;
begin
AReportGenerator := TRptPresupuestosCliente.Create(nil);
try
Result := AReportGenerator.GenerarPresupuesto(ID);
Result := AReportGenerator.GenerarPresupuesto(ListaID);
finally
FreeAndNIL(AReportGenerator);
end;
end;
function TsrvPresupuestosCliente.GenerarInformeEnPDF(
const ListaID: TIntegerArray): Binary;
var
AReportGenerator : TRptPresupuestosCliente;
begin
AReportGenerator := TRptPresupuestosCliente.Create(nil);
try
Result := AReportGenerator.GenerarPresupuestoEnPDF(ListaID);
finally
FreeAndNIL(AReportGenerator);
end;

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{9e558626-cf49-4cff-a178-e12c186758ac}</ProjectGuid>
<MainSource>PresupuestosCliente_view.dpk</MainSource>
@ -43,6 +42,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">Intraweb 8.0 Design Package for Borland Development Studio 2006</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">PresupuestosCliente_view.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
@ -51,23 +54,12 @@
<DelphiCompile Include="PresupuestosCliente_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Articulos_view.dcp" />
<DCCReference Include="..\Base.dcp" />
<DCCReference Include="..\Contactos_controller.dcp" />
<DCCReference Include="..\cxLibraryD11.dcp" />
<DCCReference Include="..\dxGDIPlusD11.dcp" />
<DCCReference Include="..\dxThemeD11.dcp" />
<DCCReference Include="..\GUIBase.dcp" />
<DCCReference Include="..\PngComponentsD10.dcp" />
<DCCReference Include="..\PNG_D10.dcp" />
<DCCReference Include="..\PresupuestosCliente_controller.dcp" />
<DCCReference Include="..\PresupuestosCliente_model.dcp" />
<DCCReference Include="..\rtl.dcp" />
<DCCReference Include="..\tb2k_d10.dcp" />
<DCCReference Include="..\tbx_d10.dcp" />
<DCCReference Include="..\vcl.dcp" />
<DCCReference Include="..\vclactnband.dcp" />
<DCCReference Include="..\vclx.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\Articulos_view.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\Base.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\Contactos_controller.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\GUIBase.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\PresupuestosCliente_controller.dcp" />
<DCCReference Include="..\..\Albaranes de cliente\PresupuestosCliente_model.dcp" />
<DCCReference Include="uEditorElegirArticulosPresupuestoCliente.pas">
<Form>fEditorElegirArticulosPresupuestoCliente</Form>
<DesignClass>TfEditorElegirArticulosPedidoCliente</DesignClass>
@ -93,10 +85,6 @@
<Form>frViewDetallesPresupuestoCliente</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewDocumentosPresupuestoCliente.pas">
<Form>frViewDocumentosPresupuestoCliente</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewElegirArticulosPresupuestosCliente.pas">
<Form>frViewElegirArticulosPresupuestosCliente</Form>
<DesignClass>TFrame</DesignClass>

View File

@ -34,14 +34,20 @@ type
pagMemoria: TTabSheet;
cxDBMemo1: TcxDBMemo;
edtPortada: TcxDBRichEdit;
pagDocumentos: TTabSheet;
actEnviarEMail: TAction;
frViewDocumentosPresupuestoCliente1: TfrViewDocumentosPresupuestoCliente;
TBXItem7: TTBXItem;
TBXSeparatorItem6: TTBXSeparatorItem;
TBXItem33: TTBXItem;
TBXSubmenuItem2: TTBXSubmenuItem;
pagDocumentos: TTabSheet;
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 actEnviarEMailExecute(Sender: TObject);
procedure actEnviarEMailUpdate(Sender: TObject);
private
procedure RecalcularPortePorUnidad;
@ -93,6 +99,18 @@ uses
{
**************************** TfEditorPresupuestoCliente ****************************
}
procedure TfEditorPresupuestoCliente.actEnviarEMailExecute(Sender: TObject);
begin
inherited;
FController.EnviarPresupuestoPorEMail(Presupuesto);
end;
procedure TfEditorPresupuestoCliente.actEnviarEMailUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorPresupuestoCliente.AsignarVista;
var
AViewPresupuestoCliente: TfrViewPresupuestoCliente;

View File

@ -2,7 +2,6 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
Caption = 'Lista de presupuestos de cliente'
ClientWidth = 674
ExplicitWidth = 682
ExplicitHeight = 471
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
@ -125,7 +124,11 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
Width = 674
ExplicitWidth = 674
inherited tbxMain: TTBXToolbar
ExplicitWidth = 632
ExplicitWidth = 674
object TBXItem41: TTBXItem [13]
Action = actEnviarEMail
DisplayMode = nbdmImageAndText
end
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 674
@ -140,6 +143,11 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
object TBXSeparatorItem17: TTBXSeparatorItem
end
end
inherited TBXSubmenuItem32: TTBXSubmenuItem
object TBXItem4441: TTBXItem [0]
Action = actEnviarEMail
end
end
end
inherited TBXTMain2: TTBXToolbar
Visible = True
@ -186,6 +194,13 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
OnExecute = actGenerarExecute
OnUpdate = actGenerarUpdate
end
object actEnviarEMail: TAction
Category = 'Acciones'
Caption = 'Enviar por e-mail...'
ImageIndex = 27
OnExecute = actEnviarEMailExecute
OnUpdate = actEnviarEMailUpdate
end
end
inherited SmallImages: TPngImageList
PngImages = <
@ -865,6 +880,27 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
00000049454E44AE426082}
Name = 'PngImage26'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001964944415478DA
63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A
80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323
306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02
64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1
062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30
1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0
94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90
6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF
3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC
9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079
EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1
8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900
021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44
AE426082}
Name = 'PngImage27'
Background = clWindow
end>
Bitmap = {}
end
@ -1858,6 +1894,32 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
454E44AE426082}
Name = 'PngImage26'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000002434944415478DA
B593DB6B13411C85CFA8AF0A11C5BED882977AA11A8A86A64AB5DA68ABB4DA17
9B071B94824F5510FF9022D8B4A2226AEA5DA434822951BC556D55225544E905
A448895048369562B6D9ACFB1BC9CA38BBEB46D203CB4C7667BEEF4CD865BAAE
6321C348C018B35D101978EDD82074A8D67633673B09081EDCB3426CA42A40D6
B88C91E6BE536FF07EB097152D7003879A416FA21297AF0F584A6C056EE1BF47
053D63014B89A540826B3F0D5086C30B406859735E18C3D31D924412B8827368
4680334348E99E392D480401C19DDE26B75114059722FD5C620AFAA2C3FAFED9
E3882FBB8AA3CD358E80F9790D2ABF727F8D1A129FBF625FE618EE6867F94912
B11E662BE88EC45CB76ED8518DAC9AC3A7C96FF682743A0D8FC7637B02A7E604
CF1ABF27A692285FBE1213E33F70EEE67951D0DEE247B86F109DED8D459FC0E7
DD04D5904C2567904AA5103C5C8FC6B633A2A0ADC9C7175FB81547CBAE1A5454
7890CFEBBCE1F7E4AC25383537C79B131C2AC3E8E4184E869A7839E92F6ADD5B
6D6EBC72FF0997AC2A5BCAE1D1E7239602EFDA4A684BF2589C5BC4E12782017E
FFE2ED47B2E060DD1661F38DE80B2E2138B5B20A352509C143ADBBCDFB91FE67
B220E0DF2C01EEC55E99ADEC426D8F1CD829DCBBFBF0A52CA8DBB64158147D3C
22B4720A356E6EF8F3F63D30F64A025FD51A73417C2821B5FA57A875BDDFCBE7
4F87476541D5FAD5FCE1D0DB8F429B6242CDB76FDD88771FBEC88275E565FC41
A1C5FF86DA532CBF64B297228E272855244157F85AC9E085988285CC2F0A951A
EF05170AF90000000049454E44AE426082}
Name = 'PngImage27'
Background = clWindow
end>
Bitmap = {}
end
@ -1872,6 +1934,9 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
object N4: TMenuItem [7]
Caption = '-'
end
object Enviarporemail1: TMenuItem [11]
Action = actEnviarEMail
end
end
object JsGenerarDialog: TJSDialog
Content.Strings = (

View File

@ -31,6 +31,10 @@ type
JsImprimirDialog: TJSDialog;
TBXItem40: TTBXItem;
JsListaPresupuestosNoEliminados: TJSDialog;
actEnviarEMail: TAction;
Enviarporemail1: TMenuItem;
TBXItem4441: TTBXItem;
TBXItem41: TTBXItem;
procedure FormShow(Sender: TObject);
procedure actGenerarAlbaranCliExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
@ -39,6 +43,8 @@ type
procedure actGenerarPresupuestoProvExecute(Sender: TObject);
procedure actGenerarExecute(Sender: TObject);
procedure actGenerarUpdate(Sender: TObject);
procedure actEnviarEMailExecute(Sender: TObject);
procedure actEnviarEMailUpdate(Sender: TObject);
protected
FPresupuestos: IBizPresupuestoCliente;
@ -92,6 +98,20 @@ begin
(Sender as TAction).Enabled := (FPresupuestos.SITUACION = SITUACION_PRESUPUESTO_PENDIENTE);
end;
procedure TfEditorPresupuestosCliente.actEnviarEMailExecute(Sender: TObject);
begin
inherited;
FController.EnviarPresupuestoPorEMail(FPresupuestos);
end;
procedure TfEditorPresupuestosCliente.actEnviarEMailUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos
and not (ViewGrid.NumSeleccionados > 1)
and ViewGrid.esSeleccionCeldaDatos;
end;
procedure TfEditorPresupuestosCliente.actGenerarAlbaranCliExecute(Sender: TObject);
var
IDAlbaranAux : Integer;

View File

@ -1,88 +1,8 @@
inherited frViewDetallesPresupuestoCliente: TfrViewDetallesPresupuestoCliente
Width = 933
inherited ToolBar1: TToolBar
Width = 933
Height = 24
inherited ToolButton4: TToolButton
Wrap = False
end
inherited ToolButton14: TToolButton
Left = 334
Top = 0
ExplicitLeft = 334
ExplicitTop = 0
end
inherited FontName: TJvFontComboBox
Left = 368
Top = 0
ExplicitLeft = 368
ExplicitTop = 0
end
inherited FontSize: TEdit
Left = 513
Top = 0
ExplicitLeft = 513
ExplicitTop = 0
end
inherited UpDown1: TUpDown
Left = 555
Top = 0
ExplicitLeft = 555
ExplicitTop = 0
end
inherited ToolButton13: TToolButton
Left = 572
Top = 0
ExplicitLeft = 572
ExplicitTop = 0
end
inherited ToolButton6: TToolButton
Left = 580
Top = 0
ExplicitLeft = 580
ExplicitTop = 0
end
inherited ToolButton7: TToolButton
Left = 614
Top = 0
ExplicitLeft = 614
ExplicitTop = 0
end
inherited ToolButton8: TToolButton
Left = 648
Top = 0
ExplicitLeft = 648
ExplicitTop = 0
end
inherited ToolButton12: TToolButton
Left = 682
Top = 0
ExplicitLeft = 682
ExplicitTop = 0
end
inherited ToolButton9: TToolButton
Left = 690
Top = 0
ExplicitLeft = 690
ExplicitTop = 0
end
inherited ToolButton10: TToolButton
Left = 724
Top = 0
ExplicitLeft = 724
ExplicitTop = 0
end
inherited ToolButton11: TToolButton
Left = 758
Top = 0
ExplicitLeft = 758
ExplicitTop = 0
end
end
inherited cxGrid: TcxGrid
Top = 50
Width = 933
Height = 254
ExplicitTop = 50
ExplicitWidth = 933
ExplicitHeight = 254
inherited cxGridView: TcxGridDBTableView
inherited cxGridViewTIPO: TcxGridDBColumn
Width = 51
@ -108,19 +28,13 @@ inherited frViewDetallesPresupuestoCliente: TfrViewDetallesPresupuestoCliente
inherited cxGridViewIMPORTENETO: TcxGridDBColumn
Width = 65
end
inherited cxGridViewIMPORTEPORTE: TcxGridDBColumn
Visible = False
end
inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn
Width = 68
end
end
end
inherited TBXDock1: TTBXDock
Top = 24
Width = 933
inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 548
end
ExplicitTop = 24
ExplicitWidth = 933
end
end

View File

@ -12,7 +12,10 @@ uses
Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns,
JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar,
uControllerDetallesArticulos, uBizPresupuestosCliente, uDAInterfaces, Buttons,
Mask, DBCtrls;
Mask, DBCtrls, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinOffice2007Black,
dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
dxSkinOffice2007Silver, dxSkinSilver, dxSkinsDefaultPainters,
dxSkinscxPCPainter;
type
IViewDetallesPresupuestoCliente = interface(IViewDetallesArticulos)

View File

@ -278,11 +278,19 @@
<Interfaces>
<Interface Name="Default" UID="{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}">
<Operations>
<Operation Name="GenerateReport" UID="{4B11FE7D-44AE-4674-9DA7-6FB6B63FC620}">
<Operation Name="GenerarInforme" UID="{4B11FE7D-44AE-4674-9DA7-6FB6B63FC620}">
<Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter>
<Parameter Name="ID" DataType="String" Flag="In" >
<Parameter Name="ListaID" DataType="TIntegerArray" Flag="In" >
</Parameter>
</Parameters>
</Operation>
<Operation Name="GenerarInformeEnPDF" UID="{16270F10-DFBD-469A-A401-033B4CBA4381}">
<Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter>
<Parameter Name="ListaID" DataType="TIntegerArray" Flag="In" >
</Parameter>
</Parameters>
</Operation>
@ -310,15 +318,15 @@
<Interfaces>
<Interface Name="Default" UID="{6E910718-9AB0-47BB-9875-B0DE66A68D7A}">
<Operations>
<Operation Name="GenerateReport" UID="{8CB6A25E-C350-4F63-B567-22D9A850BD87}">
<Operation Name="GenerarInforme" UID="{8CB6A25E-C350-4F63-B567-22D9A850BD87}">
<Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter>
<Parameter Name="ID" DataType="String" Flag="In" >
<Parameter Name="ListaID" DataType="TIntegerArray" Flag="In" >
</Parameter>
</Parameters>
</Operation>
<Operation Name="GenerateEtiquetas" UID="{260CD213-F125-422B-9BD1-401729460DF0}">
<Operation Name="GenerarInformeEtiquetas" UID="{260CD213-F125-422B-9BD1-401729460DF0}">
<Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter>
@ -607,6 +615,9 @@
<Array Name="TRdxEmpresasArray" UID="{CA344218-3432-40B8-8FB7-F5BB30406098}">
<ElementType DataType="Integer" />
</Array>
<Array Name="TIntegerArray" UID="{54E88E96-A839-4294-95CC-B4716651BB48}">
<ElementType DataType="Integer" />
</Array>
</Arrays>
<Uses>
<Use Name="DataAbstract4" UID="{1E2905B4-36C9-4EAA-9BB9-DF3D3C9BBE75}" Rodl="$(Data Abstract for Delphi)\Source\DataAbstract4.RODL" AbsoluteRodl="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Source\DataAbstract4.RODL">

View File

@ -88,6 +88,7 @@ type
IsrvGestorDocumentos = interface;
TRdxEmpresasArray = class;
TIntegerArray = class;
TRdxLoginInfo = class;
@ -164,6 +165,40 @@ type
property InnerArray: TRdxEmpresasArray_Integer read fItems;
end;
{ TIntegerArray }
TIntegerArray_Integer = array of Integer;
TIntegerArray = class(TROArray)
private
fCount: Integer;
fItems : TIntegerArray_Integer;
protected
procedure Grow; virtual;
function GetItems(aIndex: integer): Integer;
procedure SetItems(aIndex: integer; const Value: Integer);
function GetCount: integer; override;
public
class function GetItemType: PTypeInfo; override;
class function GetItemSize: integer; override;
function GetItemRef(aIndex: integer): pointer; override;
procedure Clear; override;
procedure Delete(aIndex: integer); override;
procedure Resize(ElementCount: integer); override;
procedure Assign(iSource:TPersistent); override;
procedure ReadComplex(ASerializer: TObject); override;
procedure WriteComplex(ASerializer: TObject); override;
function Add(const Value:Integer): integer;
function GetIndex(const aPropertyName : string;
const aPropertyValue : Variant;
StartFrom : integer = 0;
Options : TROSearchOptions = [soIgnoreCase]) : integer; override;
property Count : integer read GetCount;
property Items[Index: integer]:Integer read GetItems write SetItems; default;
property InnerArray: TIntegerArray_Integer read fItems;
end;
{ IsrvContactos }
IsrvContactos = interface(IDataAbstractService)
['{28CCDC07-A3A4-4917-89B4-64423DC70C9D}']
@ -501,7 +536,8 @@ type
{ IsrvPresupuestosCliente }
IsrvPresupuestosCliente = interface(IDataAbstractService)
['{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}']
function GenerateReport(const ID: String): Binary;
function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
end;
{ CosrvPresupuestosCliente }
@ -514,7 +550,8 @@ type
protected
function __GetInterfaceName:string; override;
function GenerateReport(const ID: String): Binary;
function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
end;
{ IsrvPedidosProveedor }
@ -539,8 +576,8 @@ type
{ IsrvAlbaranesCliente }
IsrvAlbaranesCliente = interface(IDataAbstractService)
['{6E910718-9AB0-47BB-9875-B0DE66A68D7A}']
function GenerateReport(const ID: String): Binary;
function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
end;
{ CosrvAlbaranesCliente }
@ -553,8 +590,8 @@ type
protected
function __GetInterfaceName:string; override;
function GenerateReport(const ID: String): Binary;
function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
function GenerarInforme(const ListaID: TIntegerArray): Binary;
function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
end;
{ IsrvAlbaranesProveedor }
@ -868,6 +905,138 @@ begin
WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i);
end;
{ TIntegerArray }
procedure TIntegerArray.Assign(iSource: TPersistent);
var lSource:TIntegerArray;
i:integer;
begin
if (iSource is TIntegerArray) then begin
lSource := TIntegerArray(iSource);
Clear();
Resize(lSource.Count);
for i := 0 to Count-1 do begin
Items[i] := lSource.Items[i];
end;
end
else begin
inherited Assign(iSource);
end;
end;
class function TIntegerArray.GetItemType: PTypeInfo;
begin
result := TypeInfo(Integer);
end;
class function TIntegerArray.GetItemSize: integer;
begin
result := SizeOf(Integer);
end;
function TIntegerArray.GetItems(aIndex: integer): Integer;
begin
if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
result := fItems[aIndex];
end;
function TIntegerArray.GetItemRef(aIndex: integer): pointer;
begin
if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
result := @fItems[aIndex];
end;
procedure TIntegerArray.Clear;
begin
SetLength(fItems, 0);
FCount := 0;
end;
procedure TIntegerArray.Delete(aIndex: integer);
var i: integer;
begin
if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);
if (aIndex<Count-1) then
for i := aIndex to Count-2 do fItems[i] := fItems[i+1];
SetLength(fItems, Count-1);
Dec(FCount);
end;
procedure TIntegerArray.SetItems(aIndex: integer; const Value: Integer);
begin
if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
if fItems[aIndex] <> Value then begin
fItems[aIndex] := Value;
end;
end;
procedure TIntegerArray.Resize(ElementCount: integer);
begin
if fCount = ElementCount then Exit;
SetLength(fItems, ElementCount);
FCount := ElementCount;
end;
function TIntegerArray.GetCount: integer;
begin
result := FCount;
end;
procedure TIntegerArray.Grow;
var
Delta, Capacity: Integer;
begin
Capacity := Length(fItems);
if Capacity > 64 then
Delta := Capacity div 4
else
if Capacity > 8 then
Delta := 16
else
Delta := 4;
SetLength(fItems, Capacity + Delta);
end;
function TIntegerArray.Add(const Value: Integer): integer;
begin
Result := Count;
if Length(fItems) = Result then
Grow;
fItems[result] := Value;
Inc(fCount);
end;
function TIntegerArray.GetIndex(const aPropertyName: string;
const aPropertyValue: Variant; StartFrom: integer;
Options: TROSearchOptions): integer;
begin
result := -1;
end;
procedure TIntegerArray.ReadComplex(ASerializer: TObject);
var
lval: Integer;
i: integer;
begin
for i := 0 to Count-1 do begin
with TROSerializer(ASerializer) do
ReadInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, lval, i);
Items[i] := lval;
end;
end;
procedure TIntegerArray.WriteComplex(ASerializer: TObject);
var
i: integer;
begin
for i := 0 to Count-1 do
with TROSerializer(ASerializer) do
WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i);
end;
{ TRdxLoginInfo }
procedure TRdxLoginInfo.Assign(iSource: TPersistent);
@ -1489,12 +1658,29 @@ begin
result := 'srvPresupuestosCliente';
end;
function TsrvPresupuestosCliente_Proxy.GenerateReport(const ID: String): Binary;
function TsrvPresupuestosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
__Message.Write('ID', TypeInfo(String), ID, []);
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
__Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Binary), result, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
function TsrvPresupuestosCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF');
__Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
@ -1551,12 +1737,12 @@ begin
result := 'srvAlbaranesCliente';
end;
function TsrvAlbaranesCliente_Proxy.GenerateReport(const ID: String): Binary;
function TsrvAlbaranesCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
__Message.Write('ID', TypeInfo(String), ID, []);
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
__Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
@ -1568,11 +1754,11 @@ begin
end
end;
function TsrvAlbaranesCliente_Proxy.GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
function TsrvAlbaranesCliente_Proxy.GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateEtiquetas');
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEtiquetas');
__Message.Write('ID', TypeInfo(Integer), ID, []);
__Message.Write('withRefCliente', TypeInfo(Boolean), withRefCliente, []);
__Message.Finalize;
@ -1997,6 +2183,7 @@ end;
initialization
RegisterROClass(TRdxLoginInfo);
RegisterROClass(TRdxEmpresasArray);
RegisterROClass(TIntegerArray);
RegisterProxyClass(IsrvContactos_IID, TsrvContactos_Proxy);
RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy);
RegisterProxyClass(IsrvInventario_IID, TsrvInventario_Proxy);
@ -2031,6 +2218,7 @@ initialization
finalization
UnregisterROClass(TRdxLoginInfo);
UnregisterROClass(TRdxEmpresasArray);
UnregisterROClass(TIntegerArray);
UnregisterProxyClass(IsrvContactos_IID);
UnregisterProxyClass(IsrvLogin_IID);
UnregisterProxyClass(IsrvInventario_IID);

View File

@ -146,7 +146,8 @@ type
private
protected
published
procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end;
TsrvPedidosProveedor_Invoker = class(TDataAbstractService_Invoker)
@ -160,8 +161,8 @@ type
private
protected
published
procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerateEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_GenerarInformeEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end;
TsrvAlbaranesProveedor_Invoker = class(TDataAbstractService_Invoker)
@ -604,20 +605,21 @@ end;
{ TsrvPresupuestosCliente_Invoker }
procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerateReport(const ID: String): Binary; }
procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerarInforme(const ListaID: TIntegerArray): Binary; }
var
ID: String;
ListaID: FactuGES_Intf.TIntegerArray;
lResult: Binary;
__lObjectDisposer: TROObjectDisposer;
begin
ListaID := nil;
lResult := nil;
try
__Message.Read('ID', TypeInfo(String), ID, []);
__Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
lResult := (__Instance as IsrvPresupuestosCliente).GenerateReport(ID);
lResult := (__Instance as IsrvPresupuestosCliente).GenerarInforme(ListaID);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerateReportResponse');
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerarInformeResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
@ -625,6 +627,37 @@ begin
finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance);
try
__lObjectDisposer.Add(ListaID);
__lObjectDisposer.Add(lResult);
finally
__lObjectDisposer.Free();
end;
end;
end;
procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; }
var
ListaID: FactuGES_Intf.TIntegerArray;
lResult: Binary;
__lObjectDisposer: TROObjectDisposer;
begin
ListaID := nil;
lResult := nil;
try
__Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
lResult := (__Instance as IsrvPresupuestosCliente).GenerarInformeEnPDF(ListaID);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerarInformeEnPDFResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance);
try
__lObjectDisposer.Add(ListaID);
__lObjectDisposer.Add(lResult);
finally
__lObjectDisposer.Free();
@ -664,20 +697,21 @@ end;
{ TsrvAlbaranesCliente_Invoker }
procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerateReport(const ID: String): Binary; }
procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerarInforme(const ListaID: TIntegerArray): Binary; }
var
ID: String;
ListaID: FactuGES_Intf.TIntegerArray;
lResult: Binary;
__lObjectDisposer: TROObjectDisposer;
begin
ListaID := nil;
lResult := nil;
try
__Message.Read('ID', TypeInfo(String), ID, []);
__Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
lResult := (__Instance as IsrvAlbaranesCliente).GenerateReport(ID);
lResult := (__Instance as IsrvAlbaranesCliente).GenerarInforme(ListaID);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerateReportResponse');
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
@ -685,6 +719,7 @@ begin
finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance);
try
__lObjectDisposer.Add(ListaID);
__lObjectDisposer.Add(lResult);
finally
__lObjectDisposer.Free();
@ -692,8 +727,8 @@ begin
end;
end;
procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerateEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; }
procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerarInformeEtiquetas(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; }
var
ID: Integer;
withRefCliente: Boolean;
@ -705,9 +740,9 @@ begin
__Message.Read('ID', TypeInfo(Integer), ID, []);
__Message.Read('withRefCliente', TypeInfo(Boolean), withRefCliente, []);
lResult := (__Instance as IsrvAlbaranesCliente).GenerateEtiquetas(ID, withRefCliente);
lResult := (__Instance as IsrvAlbaranesCliente).GenerarInformeEtiquetas(ID, withRefCliente);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerateEtiquetasResponse');
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeEtiquetasResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);

Binary file not shown.

Binary file not shown.

View File

@ -16,7 +16,7 @@ BEGIN
VALUE "FileVersion", "2.2.4.0\0"
VALUE "ProductName", "FactuGES (Servidor)\0"
VALUE "ProductVersion", "2.2.4.0\0"
VALUE "CompileDate", "viernes, 19 de septiembre de 2008 11:50\0"
VALUE "CompileDate", "viernes, 03 de octubre de 2008 18:47\0"
END
END
BLOCK "VarFileInfo"