Etiquetas nuevas

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@245 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
This commit is contained in:
roberto 2016-01-28 16:53:17 +00:00
parent a80cf72851
commit 8aaaa03bf0
6 changed files with 218 additions and 60 deletions

View File

@ -608,7 +608,8 @@ CREATE TABLE CONTACTOS (
PERSONA_CONTACTO VARCHAR(255),
AGENTE VARCHAR(255) COLLATE ES_ES,
PAIS VARCHAR(255) COLLATE ES_ES,
IDIOMA_ISO VARCHAR(2) COLLATE ES_ES
IDIOMA_ISO VARCHAR(2) COLLATE ES_ES,
ELIMINADO TIPO_BOOLEANO DEFAULT 0 NOT NULL
);
@ -5700,6 +5701,32 @@ BEGIN
SUSPEND;
END^
CREATE PROCEDURE PRO_ETIQUETAS_ALBARAN (
aid integer)
returns (
id integer,
id_albaran integer,
referencia_albaran varchar(255),
fecha_prevista_envio date,
referencia_cliente varchar(255),
cliente varchar(255),
idioma_iso varchar(2),
posicion integer,
tipo_detalle varchar(25),
referencia varchar(255),
concepto varchar(2000),
cantidad numeric(11,2),
importe_unidad numeric(11,2),
descuento float,
importe_total numeric(11,2),
referencia_proveedor varchar(255))
as
begin
SUSPEND;
END^
/******************************************************************************/
/**** Stored Procedures ****/
/******************************************************************************/
@ -6142,4 +6169,61 @@ begin
suspend;
end^
SET TERM ; ^
SET TERM ; ^
ALTER PROCEDURE PRO_ETIQUETAS_ALBARAN (
aid integer)
returns (
id integer,
id_albaran integer,
referencia_albaran varchar(255),
fecha_prevista_envio date,
referencia_cliente varchar(255),
cliente varchar(255),
idioma_iso varchar(2),
posicion integer,
tipo_detalle varchar(25),
referencia varchar(255),
concepto varchar(2000),
cantidad numeric(11,2),
importe_unidad numeric(11,2),
descuento float,
importe_total numeric(11,2),
referencia_proveedor varchar(255))
as
begin
for SELECT DET.ID, DET.CANTIDAD
FROM ALBARANES_CLIENTE_DETALLES DET
WHERE (DET.CANTIDAD IS NOT NULL)
AND DET.ID_ALBARAN = :AID
ORDER BY DET.ID_ALBARAN, DET.POSICION
into :ID, :CANTIDAD
do
while (CANTIDAD > 0)
do begin
SELECT DET.ID, DET.ID_ALBARAN, ALBARANES_CLIENTE.REFERENCIA, ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO,
ALBARANES_CLIENTE.REFERENCIA_CLIENTE, CON.NOMBRE, CON.IDIOMA_ISO,
DET.POSICION, DET.TIPO_DETALLE,
ARTICULOS.REFERENCIA, F_RTFTOTEXT(DET.CONCEPTO) as CONCEPTO,
DET.IMPORTE_UNIDAD,
DET.DESCUENTO,
DET.IMPORTE_TOTAL,
ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR
FROM ALBARANES_CLIENTE_DETALLES DET
LEFT OUTER JOIN ALBARANES_CLIENTE ON (DET.ID_ALBARAN = ALBARANES_CLIENTE.ID)
LEFT OUTER JOIN CONTACTOS CON ON (ALBARANES_CLIENTE.ID_CLIENTE = CON.ID)
LEFT OUTER JOIN ARTICULOS ON (DET.ID_ARTICULO = ARTICULOS.ID)
WHERE (DET.CANTIDAD IS NOT NULL)
AND DET.ID = :ID
ORDER BY DET.ID_ALBARAN, DET.POSICION
into :ID, :ID_ALBARAN, :REFERENCIA_ALBARAN, :FECHA_PREVISTA_ENVIO, :REFERENCIA_CLIENTE,
:CLIENTE, :IDIOMA_ISO, :POSICION, :TIPO_DETALLE, :REFERENCIA, :CONCEPTO, :IMPORTE_UNIDAD, :DESCUENTO,
:IMPORTE_TOTAL, REFERENCIA_PROVEEDOR;
suspend;
CANTIDAD = CANTIDAD - 1;
end
end^
SET TERM ; ^

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

File diff suppressed because one or more lines are too long

View File

@ -2512,12 +2512,16 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
end>
end
item
Params = <>
Params = <
item
Name = 'ID_ALBARAN'
Value = ''
end>
Statements = <
item
Connection = 'IBX'
TargetTable = 'V_ETIQUETAS_ART_ALB'
StatementType = stAutoSQL
SQL = 'select *'#10'from PRO_ETIQUETAS_ALBARAN(:ID_ALBARAN)'#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID'
@ -2574,6 +2578,14 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
item
DatasetField = 'REFERENCIA_PROVEEDOR'
TableField = 'REFERENCIA_PROVEEDOR'
end
item
DatasetField = 'CLIENTE'
TableField = 'CLIENTE'
end
item
DatasetField = 'IDIOMA_ISO'
TableField = 'IDIOMA_ISO'
end>
end>
Name = 'Informe_Etiquetas_Articulos_Albaranes'
@ -2600,6 +2612,16 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
DataType = datString
Size = 255
end
item
Name = 'CLIENTE'
DataType = datString
Size = 255
end
item
Name = 'IDIOMA_ISO'
DataType = datString
Size = 2
end
item
Name = 'POSICION'
DataType = datInteger
@ -2617,7 +2639,7 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
item
Name = 'CONCEPTO'
DataType = datString
Size = 32765
Size = 2000
end
item
Name = 'CANTIDAD'
@ -2653,29 +2675,61 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
object frxReport: TfrxReport
Version = '4.7.71'
DotMatrixReport = False
EngineOptions.DoublePass = True
IniFile = '\Software\Fast Reports'
PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick]
PreviewOptions.Zoom = 1.000000000000000000
PrintOptions.Printer = 'Por defecto'
PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 37800.807714351900000000
ReportOptions.LastChange = 42284.683293877320000000
ReportOptions.CreateDate = 38330.712904247700000000
ReportOptions.LastChange = 42355.744001898150000000
ScriptLanguage = 'PascalScript'
ScriptText.Strings = (
'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);'
'procedure Memo2OnBeforePrint(Sender: TfrxComponent);'
'var'
' Cadena: String;'
'begin'
' if Engine.FinalPass then'
' begin'
' if (<Page#> = <TotalPages#>) then'
' begin '
' mContinua.Visible := False;'
' end '
' else'
' begin '
' mContinua.Visible := True;'
' end '
' end; '
'{ Memo2.Lines.Clear;'
''
' Cadena :='#39'N'#186' albar'#225'n: '#39'; '
' Cadena := Cadena + <frxDBEtiquetas."REFERENCIA_ALBARAN">;'
' Memo2.Lines.Add(Cadena);'
' '
' if (<frxDBEtiquetas."REFERENCIA_CLIENTE"> <> '#39#39') then'
' begin '
' Cadena := '#39'Ref. cliente: '#39';'
' Cadena := Cadena + <frxDBEtiquetas."REFERENCIA_CLIENTE">;'
' Memo2.Lines.Add(Cadena); '
' end; '
''
' if (<frxDBEtiquetas."REFERENCIA"> <> '#39#39') then'
' begin '
' Cadena := '#39'Ref. art'#237'culo: '#39';'
' Cadena := Cadena + <frxDBEtiquetas."REFERENCIA">;'
' Memo2.Lines.Add(Cadena); '
' end;'
''
' if (<frxDBEtiquetas."CONCEPTO"> <> '#39#39') then'
' begin '
' Cadena := '#39'Art'#237'culo: '#39';'
' Cadena := Cadena + UPPERCASE(<frxDBEtiquetas."CONCEPTO">);'
' Memo2.Lines.Add(Cadena); '
' end;'
'} '
'end;'
''
'procedure Memo9OnBeforePrint(Sender: TfrxComponent);'
'begin'
' if (<frxDBEtiquetas."FECHA_PREVISTA_ENVIO"> <> 0) then'
' begin '
' memo3.visible := True; '
' memo9.visible := True; '
' end'
' else '
' begin '
' memo3.visible := False; '
' memo9.visible := False; '
' end; '
' '
'end;'
''
'begin'
@ -2684,7 +2738,6 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
ShowProgress = False
StoreInDFM = False
OnGetValue = frxReportGetValue
OnStartReport = 'frxReportOnStartReport'
Left = 145
Top = 16
end
@ -4207,6 +4260,16 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
DataType = datString
Size = 255
end
item
Name = 'CLIENTE'
DataType = datString
Size = 255
end
item
Name = 'IDIOMA_ISO'
DataType = datString
Size = 2
end
item
Name = 'POSICION'
DataType = datInteger
@ -4224,7 +4287,7 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
item
Name = 'CONCEPTO'
DataType = datString
Size = 32765
Size = 2000
end
item
Name = 'CANTIDAD'
@ -4247,7 +4310,11 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
DataType = datString
Size = 255
end>
Params = <>
Params = <
item
Name = 'ID_ALBARAN'
Value = ''
end>
MasterParamsMappings.Strings = (
'ID_ALBARAN=ID')
LogChanges = False

View File

@ -106,6 +106,8 @@ type
//Genera cada uno de los albaranes a imprimir
procedure _GenerarAlbaran(const AID: Integer);
//Genera las etiquetas de cada uno de los albaranes a imprimir
procedure _GenerarEtiquetasAlbaran(const AID: Integer);
procedure PrepararTablaInformeGrafComp(ATabla: TDAMemDataTable);
procedure PrepararTablaResumenInformeGrafComp(ATabla: IDADataset);
@ -258,48 +260,39 @@ begin
end;
end;
procedure TRptAlbaranesCliente._GenerarEtiquetasAlbaran(const AID: Integer);
var
AInforme: Variant;
begin
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
try
tbl_Etiquetas.Active := False;
tbl_Etiquetas.ParamByName('ID_ALBARAN').AsInteger := AID;
tbl_Etiquetas.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, rptInfEtiquetas, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString, tbl_Cabecera.FieldByName('IDIOMA_ISO').AsString);
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarEtiquetasAlbaran, no encuentra informe ' + rptInfEtiquetas));
frxReport.LoadFromFile(AInforme, True);
frxReport.PrepareReport(False);
finally
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
end;
end;
function TRptAlbaranesCliente.GenerarEtiquetas(const ListaID: TIntegerArray): Binary;
var
i: Integer;
AInforme: Variant;
Condicion: TDAWhereExpression;
AArray : Array of TDAWhereExpression;
begin
Result := Binary.Create;
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
try
with tbl_Etiquetas.DynamicWhere do
begin
//Vamos generando todos y cada uno de los albaranes recibidos
SetLength(AArray, ListaID.Count);
for i := 0 to ListaID.Count - 1 do
AArray[i] := NewConstant(ListaID.Items[i], datInteger);
// (ID_ALBARANES IN ...)
Condicion := NewBinaryExpression(NewField('', fld_AlbaranesCliente_DetallesID_ALBARAN), NewList(AArray), dboIn);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
tbl_Etiquetas.Active := False;
tbl_Etiquetas.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, rptInfEtiquetas);
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: GenerarEtiquetas, no encuentra informe ' + rptInforme));
frxReport.LoadFromFile(AInforme, True);
frxReport.PrepareReport(False);
_GenerarEtiquetasAlbaran(ListaID.Items[i]);
frxReport.PreviewPages.SaveToStream(Result);
finally
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
end;
end;