+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas
index 6ec6c66..6842b2e 100644
--- a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas
+++ b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas
@@ -54,8 +54,8 @@ type
function Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false;
const VerImprimirPrecios: Boolean = False; const VerImprimirRefProveedor: Boolean = False;
const VerImprimirObservaciones: Boolean = False; const VerImprimirIncidencias: Boolean = False): Boolean;
- procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean);
- procedure EtiquetasPrint(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean);
+ procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false);
+ procedure EtiquetasPrint(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false);
procedure RecalcularImportes(AAlbaran: IBizAlbaranCliente);
function EsModificable(AAlbaran: IBizAlbaranCliente): Boolean;
@@ -175,8 +175,8 @@ type
function Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false;
const VerImprimirPrecios: Boolean = False; const VerImprimirRefProveedor: Boolean = False;
const VerImprimirObservaciones: Boolean = False; const VerImprimirIncidencias: Boolean = False): Boolean;
- procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean);
- procedure EtiquetasPrint(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean);
+ procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false);
+ procedure EtiquetasPrint(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false);
function DarListaAnosAlbaranes: TStringList;
procedure FiltrarAno(AAlbaran: IBizAlbaranCliente; ADynWhereDataTable: WideString; const Ano: String);
@@ -961,27 +961,72 @@ begin
Result := not (AAlbaran.ID_FACTURA > 0);
end;
-procedure TAlbaranesClienteController.EtiquetasPreview(AAlbaran: IBizAlbaranCliente; Const withRefCliente: Boolean);
+procedure TAlbaranesClienteController.EtiquetasPreview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
var
AReportController : IAlbaranesClienteReportController;
+ ID_Albaranes: TIntegerList;
begin
AReportController := TAlbaranesClienteReportController.Create;
+ ID_Albaranes := TIntegerList.Create;
+
try
- AReportController.EtiquetasPreview(AAlbaran.ID, withRefCliente);
+ //Si deseamos previsualizar todos los items del objeto albaran
+ if AllItems then
+ begin
+ with AAlbaran.DataTable do
+ begin
+ First;
+ while not EOF do
+ begin
+ ID_Albaranes.Add(AAlbaran.ID);
+ Next;
+ end;
+ end;
+ end
+ //Solo previsualizamos el item seleccionado
+ else
+ ID_Albaranes.Add(AAlbaran.ID);
+
+
+ AReportController.EtiquetasPreview(ID_Albaranes);
+
finally
AReportController := NIL;
+ FreeANDNIL(ID_Albaranes);
end;
end;
-procedure TAlbaranesClienteController.EtiquetasPrint(AAlbaran: IBizAlbaranCliente; Const withRefCliente: Boolean);
+procedure TAlbaranesClienteController.EtiquetasPrint(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
var
AReportController : IAlbaranesClienteReportController;
+ ID_Albaranes: TIntegerList;
begin
AReportController := TAlbaranesClienteReportController.Create;
+ ID_Albaranes := TIntegerList.Create;
+
try
- AReportController.EtiquetasPrint(AAlbaran.ID, withRefCliente);
+ //Si deseamos previsualizar todos los items del objeto albaran
+ if AllItems then
+ begin
+ with AAlbaran.DataTable do
+ begin
+ First;
+ while not EOF do
+ begin
+ ID_Albaranes.Add(AAlbaran.ID);
+ Next;
+ end;
+ end;
+ end
+ //Solo previsualizamos el item seleccionado
+ else
+ ID_Albaranes.Add(AAlbaran.ID);
+
+ AReportController.EtiquetasPrint(ID_Albaranes);
+
finally
AReportController := NIL;
+ FreeANDNIL(ID_Albaranes);
end;
end;
diff --git a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas
index 8886a8b..f4c0449 100644
--- a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas
+++ b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas
@@ -16,8 +16,8 @@ type
function Print(const AListaID : TIntegerList;
const VerImprimirPrecios: Boolean = False; const VerImprimirRefProveedor: Boolean = False;
const VerImprimirObservaciones: Boolean = False; const VerImprimirIncidencias: Boolean = False): Boolean;
- procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean);
- procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean);
+ procedure EtiquetasPreview(const AListaID : TIntegerList);
+ procedure EtiquetasPrint(const AListaID : TIntegerList);
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
end;
@@ -39,8 +39,8 @@ type
const VerImprimirObservaciones: Boolean = False; const VerImprimirIncidencias: Boolean = False): Boolean;
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
- procedure EtiquetasPreview(const AID : integer; const withRefCliente: Boolean);
- procedure EtiquetasPrint(const AID : integer; const withRefCliente: Boolean);
+ procedure EtiquetasPreview(const AListaID : TIntegerList);
+ procedure EtiquetasPrint(const AListaID : TIntegerList);
end;
@@ -72,7 +72,7 @@ begin
inherited;
end;
-procedure TAlbaranesClienteReportController.EtiquetasPreview(const AID: integer; const withRefCliente: Boolean);
+procedure TAlbaranesClienteReportController.EtiquetasPreview(const AListaID : TIntegerList);
var
AStream: Binary;
AEditor : IEditorAlbaranesClientePreview;
@@ -81,7 +81,7 @@ begin
ShowHourglassCursor;
try
- AStream := FDataModule.GetEtiquetas(AID, withRefCliente);
+ AStream := FDataModule.GetEtiquetas(AListaID);
try
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
if Assigned(AEditor) then
@@ -100,7 +100,7 @@ begin
end;
end;
-procedure TAlbaranesClienteReportController.EtiquetasPrint(const AID: integer; const withRefCliente: Boolean);
+procedure TAlbaranesClienteReportController.EtiquetasPrint(const AListaID : TIntegerList);
var
AStream: Binary;
AEditor : IEditorAlbaranesClientePreview;
@@ -109,7 +109,7 @@ begin
ShowHourglassCursor;
try
- AStream := FDataModule.GetEtiquetas(AID, withRefCliente);
+ AStream := FDataModule.GetEtiquetas(AListaID);
try
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
if Assigned(AEditor) then
diff --git a/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas
index 8fad8d9..47ea352 100644
--- a/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas
+++ b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas
@@ -40,7 +40,7 @@ type
const VerPrecios: Boolean = False; const VerRefProveedor: Boolean = False;
const VerObservaciones: Boolean = False; const VerIncidencias: Boolean = False): Binary;
function GetRptWordAlbaran(const AID: Integer): Binary;
- function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
+ function GetEtiquetas(const ListaID: TIntegerList): Binary;
function GetRptPDFAlbaran(const AID: Integer;
const VerPrecios: Boolean = False; const VerRefProveedor: Boolean = False;
const VerObservaciones: Boolean = False; const VerIncidencias: Boolean = False): Binary;
@@ -101,7 +101,7 @@ end;
function TDataModuleAlbaranesCliente.GetRptWordAlbaran(
const AID: Integer): Binary;
begin
- Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEnWord(AID)
+// Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEnWord(AID)
end;
function TDataModuleAlbaranesCliente.NewItem: IBizAlbaranCliente;
@@ -151,9 +151,13 @@ begin
end;
end;
-function TDataModuleAlbaranesCliente.GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
+function TDataModuleAlbaranesCliente.GetEtiquetas(const ListaID: TIntegerList): Binary;
+var
+ AParam : TIntegerArray;
begin
- Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEtiquetas(AID, withRefCliente)
+ AParam := ListaID.ToIntegerArray;
+
+ Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEtiquetas(AParam)
end;
function TDataModuleAlbaranesCliente.GetItem(const ID: Integer): IBizAlbaranCliente;
diff --git a/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas
index b17810c..a453fca 100644
--- a/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas
+++ b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas
@@ -15,7 +15,7 @@ type
function GetRptPDFAlbaran(const AID: Integer;
const VerPrecios: Boolean = False; const VerRefProveedor: Boolean = False;
const VerObservaciones: Boolean = False; const VerIncidencias: Boolean = False): Binary;
- function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
+ function GetEtiquetas(const ListaID: TIntegerList): Binary;
end;
implementation
diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas
index 8ae60a9..17d9dab 100644
--- a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas
+++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas
@@ -110,7 +110,7 @@ type
procedure RecuperarNombresAgentes;
public
- function GenerarEtiquetas(const AID : Integer; withRefCliente: Boolean): Binary;
+ function GenerarEtiquetas(const ListaID: TIntegerArray): Binary;
function GenerarAlbaran(const AListaID : TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean;
const VerIncidencias: Boolean): Binary;
function GenerarAlbaranEnPDF(const ListaID : TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean;
@@ -254,20 +254,32 @@ begin
end;
end;
-function TRptAlbaranesCliente.GenerarEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
+function TRptAlbaranesCliente.GenerarEtiquetas(const ListaID: TIntegerArray): Binary;
var
+ i: Integer;
AInforme: Variant;
begin
Result := Binary.Create;
+
+
+
+ //Vamos generando todos y cada uno de los albaranes recibidos
+// for i := 0 to ListaID.Count - 1 do
+// _GenerarAlbaran(AListaID.Items[i]);
+// frxReport.PreviewPages.SaveToStream(Result);
+
+
+
+
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
try
tbl_Cabecera.Active := False;
tbl_Detalles.Active := False;
- tbl_Cabecera.ParamByName('ID').AsInteger := AID;
- tbl_Detalles.ParamByName('ID_ALBARAN').AsInteger := AID;
+ tbl_Cabecera.ParamByName('ID').AsInteger := ListaID.Items[0];
+ tbl_Detalles.ParamByName('ID_ALBARAN').AsInteger := ListaID.Items[0];
tbl_Cabecera.Active := True;
tbl_Detalles.Active := True;
@@ -277,10 +289,6 @@ begin
raise Exception.Create (('Error Servidor: GenerarEtiquetas, no encuentra informe ' + rptInforme));
frxReport.LoadFromFile(AInforme, True);
- if withRefCliente then
- frxReport.Variables.Variables['withRefCliente'] := 1
- else
- frxReport.Variables.Variables['withRefCliente'] := 0;
frxReport.PrepareReport(False);
frxReport.PreviewPages.SaveToStream(Result);
diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas
index ec547f3..833b119 100644
--- a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas
+++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas
@@ -32,7 +32,7 @@ type
procedure DARemoteServiceCreate(Sender: TObject);
protected
{ IsrvAlbaranesCliente methods }
- function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
+ function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
function GenerarInforme(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean;
const VerIncidencias: Boolean): Binary;
function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean;
@@ -113,7 +113,7 @@ begin
end;
end;
-function TsrvAlbaranesCliente.GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
+function TsrvAlbaranesCliente.GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
var
AReportGenerator : TRptAlbaranesCliente;
begin
@@ -121,7 +121,7 @@ begin
AReportGenerator := TRptAlbaranesCliente.Create(nil);
try
- Result := AReportGenerator.GenerarEtiquetas(ID, withRefCliente);
+ Result := AReportGenerator.GenerarEtiquetas(ListaID);
finally
FreeAndNIL(AReportGenerator);
end;
diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas
index 6e71c35..057ecdb 100644
--- a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas
+++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas
@@ -166,26 +166,35 @@ begin
end;
procedure TfEditorAlbaranesCliente.actGenerarEtiquetasExecute(Sender: TObject);
+var
+ AAlbaranes: IBizAlbaranCliente;
+ AllItems: Boolean;
begin
+ AAlbaranes := Nil;
+ AllItems := False;
- inherited;
- //Miramos si viene de un pedido previo, si no es asi le preguntamos si desea imprimir la referencia del cliente
- if (FAlbaranes.ID_PEDIDO > 0) then
- FController.EtiquetasPreview(FAlbaranes, True)
- else
+ if MultiSelect and Assigned(ViewGrid) then
+ AllItems := (ViewGrid.NumSeleccionados > 1);
+
+ if AllItems then
begin
- if (Application.MessageBox('¿El albarán seleccionado no está asociado a un pedido por internet, ¿desea imprimir la referencia del cliente para las etiquetas de este albarán?', 'Atención', MB_YESNO) = IDYES) then
- FController.EtiquetasPreview(FAlbaranes, True)
- else
- FController.EtiquetasPreview(FAlbaranes, False);
- end;
+ SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords);
+ AAlbaranes := (Controller as IAlbaranesClienteController).ExtraerSeleccionados(Albaranes) as IBizAlbaranCliente;
+ end
+ else
+ AAlbaranes := Albaranes;
+
+ if Assigned(AAlbaranes) then
+ FController.EtiquetasPreview(AAlbaranes, AllItems);
+
+ ViewGrid.GotoFirst;
end;
procedure TfEditorAlbaranesCliente.actGenerarEtiquetasUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos
- and not (ViewGrid.NumSeleccionados > 1)
+// and not (ViewGrid.NumSeleccionados > 1)
and ViewGrid.esSeleccionCeldaDatos;
end;
diff --git a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas
index 63204fa..f293695 100644
--- a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas
+++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas
@@ -102,8 +102,7 @@ function TDataModuleAlbaranesProveedor.GetRptWordAlbaran(const AID: Integer;
const ImprimirPrecio: Boolean = True;
const ImprimirRefProveedor: Boolean = True): Binary;
begin
- Result := (RORemoteService as IsrvAlbaranesProveedor).GenerarInformeEnWord(AID,
- ImprimirPrecio, ImprimirRefProveedor);
+// Result := (RORemoteService as IsrvAlbaranesProveedor).GenerarInformeEnWord(AID, ImprimirPrecio, ImprimirRefProveedor);
end;
function TDataModuleAlbaranesProveedor.NewItem: IBizAlbaranProveedor;
diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.pas b/Source/Modulos/Articulos/Views/uEditorArticulo.pas
index fd7f48d..c95a6e7 100644
--- a/Source/Modulos/Articulos/Views/uEditorArticulo.pas
+++ b/Source/Modulos/Articulos/Views/uEditorArticulo.pas
@@ -89,10 +89,20 @@ begin
end;
procedure TfEditorArticulo.GuardarInterno;
+var
+ bGuardar: Boolean;
begin
inherited;
- FController.Guardar(FArticulo);
- Modified := False;
+ bGuardar := True;
+
+ if (FArticulo.ID_PROVEEDOR = 0) then
+ bGuardar := (Application.MessageBox('El artículo no tiene proveedor asignado, ¿Esta seguro que desea continuar?', 'Atención', MB_YESNO) = IDYES);
+
+ if bGuardar then
+ begin
+ FController.Guardar(FArticulo);
+ Modified := False;
+ end;
end;
procedure TfEditorArticulo.PonerTitulos(const ATitulo: string);
diff --git a/Source/Modulos/Contactos/Controller/uClientesController.pas b/Source/Modulos/Contactos/Controller/uClientesController.pas
index a257ee8..e57dc60 100644
--- a/Source/Modulos/Contactos/Controller/uClientesController.pas
+++ b/Source/Modulos/Contactos/Controller/uClientesController.pas
@@ -19,7 +19,7 @@ type
function Eliminar(ACliente: IBizContacto; AllItems: Boolean = false): Boolean; overload;
procedure Preview(ACliente : IBizCliente; AllItems: Boolean = false);
procedure Print(ACliente : IBizCliente; AllItems: Boolean = false);
- procedure VerPresupuestosDeCliente(ACliente : IBizCliente);
+ procedure VerPedidosDeCliente(ACliente : IBizCliente);
procedure VerAlbaranesDeCliente(ACliente : IBizCliente);
procedure VerFacturasDeCliente(ACliente : IBizCliente);
procedure VerRecibosDeCliente(ACliente : IBizCliente);
@@ -52,7 +52,7 @@ type
function Eliminar(ACliente: IBizContacto; AllItems: Boolean = false): Boolean; overload;
procedure Preview(ACliente : IBizCliente; AllItems: Boolean = false);
procedure Print(ACliente : IBizCliente; AllItems: Boolean = false);
- procedure VerPresupuestosDeCliente(ACliente : IBizCliente);
+ procedure VerPedidosDeCliente(ACliente : IBizCliente);
procedure VerAlbaranesDeCliente(ACliente : IBizCliente);
procedure VerFacturasDeCliente(ACliente : IBizCliente);
procedure VerRecibosDeCliente(ACliente : IBizCliente);
@@ -478,22 +478,22 @@ begin
end;
end;
-procedure TClientesController.VerPresupuestosDeCliente(ACliente : IBizCliente);
+procedure TClientesController.VerPedidosDeCliente(ACliente : IBizCliente);
var
AModule : TModuleController;
- APlugin : IMCPresupuestosCliente;
+ APlugin : IMCPedidosCliente;
begin
if not Assigned(ACliente) then
- raise Exception.Create ('Cliente no asignado (VerPresupuestosDeCliente)');
+ raise Exception.Create ('Cliente no asignado (VerPedidosDeCliente)');
if not ACliente.DataTable.Active then
ACliente.DataTable.Active := True;
- AModule := AppFactuGES.GetModule(MODULENAME_PRESUPUESTOS_CLIENTE);
+ AModule := AppFactuGES.GetModule(MODULENAME_PEDIDOS_CLIENTE);
if Assigned(AModule) then
try
- if Supports(AModule, IMCPresupuestosCliente, APlugin) then
- APlugin.VerPresupuestos(ACliente.ID, ACliente.NOMBRE);
+ if Supports(AModule, IMCPedidosCliente, APlugin) then
+ APlugin.VerPedidos(ACliente.ID, ACliente.NOMBRE);
finally
APlugin := NIL;
end;
diff --git a/Source/Modulos/Contactos/Views/uEditorAgente.dfm b/Source/Modulos/Contactos/Views/uEditorAgente.dfm
index 36f6840..2310a6b 100644
--- a/Source/Modulos/Contactos/Views/uEditorAgente.dfm
+++ b/Source/Modulos/Contactos/Views/uEditorAgente.dfm
@@ -82,7 +82,7 @@ inherited fEditorAgente: TfEditorAgente
ImageIndex = 22
Visible = False
object TBXItem36: TTBXItem
- Action = actDocumentosPresupuestos
+ Action = actDocumentosPedidos
end
object TBXItem35: TTBXItem
Action = actDocumentosAlbaranes
@@ -114,7 +114,7 @@ inherited fEditorAgente: TfEditorAgente
Caption = 'Documentos relacionados'
ImageIndex = 22
object TBXItem39: TTBXItem
- Action = actDocumentosPresupuestos
+ Action = actDocumentosPedidos
end
object TBXItem38: TTBXItem
Action = actDocumentosAlbaranes
@@ -309,8 +309,6 @@ inherited fEditorAgente: TfEditorAgente
inherited frViewClienteDatosBancarios1: TfrViewClienteDatosBancarios
Width = 856
Height = 586
- ExplicitLeft = 0
- ExplicitTop = 0
ExplicitWidth = 856
ExplicitHeight = 586
inherited dxLayoutControl1: TdxLayoutControl
@@ -365,18 +363,6 @@ inherited fEditorAgente: TfEditorAgente
inherited ToolBar1: TToolBar
Width = 856
ExplicitWidth = 856
- inherited ToolButton1: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton4: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton2: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton7: TToolButton
- ExplicitWidth = 113
- end
end
end
end
@@ -398,6 +384,18 @@ inherited fEditorAgente: TfEditorAgente
inherited ToolBar1: TToolBar
Width = 856
ExplicitWidth = 856
+ inherited ToolButton1: TToolButton
+ ExplicitWidth = 62
+ end
+ inherited ToolButton4: TToolButton
+ ExplicitWidth = 74
+ end
+ inherited ToolButton2: TToolButton
+ ExplicitWidth = 67
+ end
+ inherited ToolButton7: TToolButton
+ ExplicitWidth = 117
+ end
end
end
end
@@ -500,18 +498,6 @@ inherited fEditorAgente: TfEditorAgente
inherited ToolBar1: TToolBar
Width = 856
ExplicitWidth = 856
- inherited ToolButton1: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton4: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton2: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton7: TToolButton
- ExplicitWidth = 113
- end
end
inherited tbxFiltro: TTBXToolbar
Width = 856
@@ -550,11 +536,11 @@ inherited fEditorAgente: TfEditorAgente
ImageIndex = 25
OnExecute = actDocumentosFacturasExecute
end
- object actDocumentosPresupuestos: TAction
+ object actDocumentosPedidos: TAction
Category = 'Acciones'
- Caption = 'Presupuestos'
+ Caption = 'Pedidos'
ImageIndex = 23
- OnExecute = actDocumentosPresupuestosExecute
+ OnExecute = actDocumentosPedidosExecute
end
object actDocumentosAlbaranes: TAction
Category = 'Acciones'
diff --git a/Source/Modulos/Contactos/Views/uEditorAgente.pas b/Source/Modulos/Contactos/Views/uEditorAgente.pas
index 7defad9..2946930 100644
--- a/Source/Modulos/Contactos/Views/uEditorAgente.pas
+++ b/Source/Modulos/Contactos/Views/uEditorAgente.pas
@@ -28,7 +28,7 @@ type
TBXSubmenuItem3: TTBXSubmenuItem;
TBXItem33: TTBXItem;
TBXSeparatorItem6: TTBXSeparatorItem;
- actDocumentosPresupuestos: TAction;
+ actDocumentosPedidos: TAction;
actDocumentosAlbaranes: TAction;
actDocumentosFacturas: TAction;
TBXSubmenuItem8: TTBXSubmenuItem;
@@ -50,7 +50,7 @@ type
procedure FormShow(Sender: TObject);
procedure actGruposClienteExecute(Sender: TObject);
procedure actDocumentosFacturasExecute(Sender: TObject);
- procedure actDocumentosPresupuestosExecute(Sender: TObject);
+ procedure actDocumentosPedidosExecute(Sender: TObject);
procedure actDocumentosAlbaranesExecute(Sender: TObject);
procedure actDocumentosRecibosExecute(Sender: TObject);
@@ -88,10 +88,10 @@ begin
(FController as IClientesController).VerFacturasDeCliente(IBizCliente(FContacto));
end;
-procedure TfEditorAgente.actDocumentosPresupuestosExecute(Sender: TObject);
+procedure TfEditorAgente.actDocumentosPedidosExecute(Sender: TObject);
begin
inherited;
- (FController as IClientesController).VerPresupuestosDeCliente(IBizCliente(FContacto));
+ (FController as IClientesController).VerPedidosDeCliente(IBizCliente(FContacto));
end;
procedure TfEditorAgente.actDocumentosRecibosExecute(Sender: TObject);
diff --git a/Source/Modulos/Contactos/Views/uEditorCliente.dfm b/Source/Modulos/Contactos/Views/uEditorCliente.dfm
index 19b0744..e88d7dd 100644
--- a/Source/Modulos/Contactos/Views/uEditorCliente.dfm
+++ b/Source/Modulos/Contactos/Views/uEditorCliente.dfm
@@ -72,7 +72,7 @@ inherited fEditorCliente: TfEditorCliente
DropdownCombo = True
ImageIndex = 22
object TBXItem36: TTBXItem
- Action = actDocumentosPresupuestos
+ Action = actDocumentosPedidos
end
object TBXItem35: TTBXItem
Action = actDocumentosAlbaranes
@@ -104,7 +104,7 @@ inherited fEditorCliente: TfEditorCliente
Caption = 'Documentos relacionados'
ImageIndex = 22
object TBXItem39: TTBXItem
- Action = actDocumentosPresupuestos
+ Action = actDocumentosPedidos
end
object TBXItem38: TTBXItem
Action = actDocumentosAlbaranes
@@ -784,11 +784,11 @@ inherited fEditorCliente: TfEditorCliente
ImageIndex = 25
OnExecute = actDocumentosFacturasExecute
end
- object actDocumentosPresupuestos: TAction
+ object actDocumentosPedidos: TAction
Category = 'Acciones'
- Caption = 'Presupuestos'
+ Caption = 'Pedidos'
ImageIndex = 23
- OnExecute = actDocumentosPresupuestosExecute
+ OnExecute = actDocumentosPedidosExecute
end
object actDocumentosAlbaranes: TAction
Category = 'Acciones'
diff --git a/Source/Modulos/Contactos/Views/uEditorCliente.pas b/Source/Modulos/Contactos/Views/uEditorCliente.pas
index 21e7520..9b9084e 100644
--- a/Source/Modulos/Contactos/Views/uEditorCliente.pas
+++ b/Source/Modulos/Contactos/Views/uEditorCliente.pas
@@ -33,7 +33,7 @@ type
TBXSubmenuItem3: TTBXSubmenuItem;
TBXItem33: TTBXItem;
TBXSeparatorItem6: TTBXSeparatorItem;
- actDocumentosPresupuestos: TAction;
+ actDocumentosPedidos: TAction;
actDocumentosAlbaranes: TAction;
actDocumentosFacturas: TAction;
TBXSubmenuItem8: TTBXSubmenuItem;
@@ -50,7 +50,7 @@ type
procedure FormShow(Sender: TObject);
procedure actGruposClienteExecute(Sender: TObject);
procedure actDocumentosFacturasExecute(Sender: TObject);
- procedure actDocumentosPresupuestosExecute(Sender: TObject);
+ procedure actDocumentosPedidosExecute(Sender: TObject);
procedure actDocumentosAlbaranesExecute(Sender: TObject);
procedure actDocumentosRecibosExecute(Sender: TObject);
protected
@@ -83,10 +83,10 @@ begin
(FController as IClientesController).VerFacturasDeCliente(IBizCliente(FContacto));
end;
-procedure TfEditorCliente.actDocumentosPresupuestosExecute(Sender: TObject);
+procedure TfEditorCliente.actDocumentosPedidosExecute(Sender: TObject);
begin
inherited;
- (FController as IClientesController).VerPresupuestosDeCliente(IBizCliente(FContacto));
+ (FController as IClientesController).VerPedidosDeCliente(IBizCliente(FContacto));
end;
procedure TfEditorCliente.actDocumentosRecibosExecute(Sender: TObject);
diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.dfm b/Source/Modulos/Contactos/Views/uEditorClientes.dfm
index 1145a76..28daa02 100644
--- a/Source/Modulos/Contactos/Views/uEditorClientes.dfm
+++ b/Source/Modulos/Contactos/Views/uEditorClientes.dfm
@@ -60,7 +60,7 @@ inherited fEditorClientes: TfEditorClientes
ImageIndex = 24
Images = SmallImages
object TBXItem43: TTBXItem
- Action = actDocumentosPresupuestos
+ Action = actDocumentosPedidos
end
object TBXItem42: TTBXItem
Action = actDocumentosAlbaranes
@@ -89,7 +89,7 @@ inherited fEditorClientes: TfEditorClientes
ImageIndex = 24
Images = SmallImages
object TBXItem40: TTBXItem
- Action = actDocumentosPresupuestos
+ Action = actDocumentosPedidos
end
object TBXItem39: TTBXItem
Action = actDocumentosAlbaranes
@@ -138,6 +138,19 @@ inherited fEditorClientes: TfEditorClientes
ExplicitWidth = 857
ExplicitHeight = 270
inherited cxGridView: TcxGridDBTableView
+ DataController.Summary.DefaultGroupSummaryItems = <
+ item
+ Format = '0 clientes'
+ Kind = skCount
+ Position = spFooter
+ Column = frViewClientes1.cxGridViewREFERENCIA
+ end>
+ DataController.Summary.FooterSummaryItems = <
+ item
+ Format = '0 clientes'
+ Kind = skCount
+ Column = frViewClientes1.cxGridViewREFERENCIA
+ end>
end
end
inherited frViewFiltroBase1: TfrViewFiltroBase
@@ -254,11 +267,11 @@ inherited fEditorClientes: TfEditorClientes
Enabled = True
Visible = True
end
- object actDocumentosPresupuestos: TAction
+ object actDocumentosPedidos: TAction
Category = 'Acciones'
- Caption = 'Presupuestos'
+ Caption = 'Pedidos'
ImageIndex = 25
- OnExecute = actDocumentosPresupuestosExecute
+ OnExecute = actDocumentosPedidosExecute
OnUpdate = actDocumentosFacturasUpdate
end
object actDocumentosAlbaranes: TAction
@@ -2208,7 +2221,7 @@ inherited fEditorClientes: TfEditorClientes
Caption = 'Documentos relacionados'
ImageIndex = 24
object Presupuestos1: TMenuItem
- Action = actDocumentosPresupuestos
+ Action = actDocumentosPedidos
end
object Albaranes1: TMenuItem
Action = actDocumentosAlbaranes
diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.pas b/Source/Modulos/Contactos/Views/uEditorClientes.pas
index 732f28c..61acb76 100644
--- a/Source/Modulos/Contactos/Views/uEditorClientes.pas
+++ b/Source/Modulos/Contactos/Views/uEditorClientes.pas
@@ -21,7 +21,7 @@ type
actGruposCliente: TAction;
JsListaContactosNoEliminados: TJSDialog;
frViewClientes1: TfrViewClientes;
- actDocumentosPresupuestos: TAction;
+ actDocumentosPedidos: TAction;
actDocumentosAlbaranes: TAction;
actDocumentosFacturas: TAction;
TBXItem381: TTBXItem;
@@ -44,7 +44,7 @@ type
TBXItem45: TTBXItem;
procedure actGruposClienteExecute(Sender: TObject);
procedure actDocumentosFacturasUpdate(Sender: TObject);
- procedure actDocumentosPresupuestosExecute(Sender: TObject);
+ procedure actDocumentosPedidosExecute(Sender: TObject);
procedure actDocumentosFacturasExecute(Sender: TObject);
procedure actDocumentosAlbaranesExecute(Sender: TObject);
procedure actDocumentosRecibosExecute(Sender: TObject);
@@ -90,10 +90,10 @@ begin
and ViewGrid.EsSeleccionCeldaDatos
end;
-procedure TfEditorClientes.actDocumentosPresupuestosExecute(Sender: TObject);
+procedure TfEditorClientes.actDocumentosPedidosExecute(Sender: TObject);
begin
inherited;
- (FController as IClientesController).VerPresupuestosDeCliente(IBizCliente(FContactos));
+ (FController as IClientesController).VerPedidosDeCliente(IBizCliente(FContactos));
end;
procedure TfEditorClientes.actDocumentosRecibosExecute(Sender: TObject);
diff --git a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas
index cf147e4..fba2cc0 100644
--- a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas
+++ b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas
@@ -81,7 +81,7 @@ end;
function TDataModuleFacturasCliente.GetRptWordFactura(const AID: Integer; const VerSello: Boolean = True): Binary;
begin
- Result := (RORemoteService as IsrvFacturasCliente).GenerarInformeEnWord(AID, VerSello)
+// Result := (RORemoteService as IsrvFacturasCliente).GenerarInformeEnWord(AID, VerSello)
end;
function TDataModuleFacturasCliente.NewItem: IBizFacturaCliente;
diff --git a/Source/Modulos/Informe margen por articulo/Data/InfMargenArticulo_data.drc b/Source/Modulos/Informe margen por articulo/Data/InfMargenArticulo_data.drc
index d4884fc..b0a7b04 100644
--- a/Source/Modulos/Informe margen por articulo/Data/InfMargenArticulo_data.drc
+++ b/Source/Modulos/Informe margen por articulo/Data/InfMargenArticulo_data.drc
@@ -14,4 +14,4 @@ END
/* C:\Codigo\Source\Modulos\Informe margen por articulo\Data\uDataModuleInfMargenArticulo.dfm */
/* C:\Codigo\Source\Modulos\Informe margen por articulo\Data\InfMargenArticulo_data.res */
-/* c:\temp\dtf98.tmp */
+/* c:\temp\dtf843.tmp */
diff --git a/Source/Modulos/Informe margen por articulo/Model/InfMargenArticulo_model.drc b/Source/Modulos/Informe margen por articulo/Model/InfMargenArticulo_model.drc
index 7cd8140..7997e59 100644
--- a/Source/Modulos/Informe margen por articulo/Model/InfMargenArticulo_model.drc
+++ b/Source/Modulos/Informe margen por articulo/Model/InfMargenArticulo_model.drc
@@ -13,4 +13,4 @@ BEGIN
END
/* C:\Codigo\Source\Modulos\Informe margen por articulo\Model\InfMargenArticulo_model.res */
-/* c:\temp\dtf96.tmp */
+/* c:\temp\dtf841.tmp */
diff --git a/Source/Modulos/Informe margen por articulo/Views/InfMargenArticulo_view.drc b/Source/Modulos/Informe margen por articulo/Views/InfMargenArticulo_view.drc
index 2a1fd0e..ea461e5 100644
--- a/Source/Modulos/Informe margen por articulo/Views/InfMargenArticulo_view.drc
+++ b/Source/Modulos/Informe margen por articulo/Views/InfMargenArticulo_view.drc
@@ -16,4 +16,4 @@ END
/* C:\Codigo\Source\Modulos\Informe margen por articulo\Views\uViewInfMargenArticulo.dfm */
/* C:\Codigo\Source\Modulos\Informe margen por articulo\Views\uEditorInfMargenArticulo.dfm */
/* C:\Codigo\Source\Modulos\Informe margen por articulo\Views\InfMargenArticulo_view.res */
-/* c:\temp\dtf9C.tmp */
+/* c:\temp\dtf847.tmp */
diff --git a/Source/Modulos/Informe ventas por articulo/Data/InfVentasArticulo_data.drc b/Source/Modulos/Informe ventas por articulo/Data/InfVentasArticulo_data.drc
index 5611266..5383ab1 100644
--- a/Source/Modulos/Informe ventas por articulo/Data/InfVentasArticulo_data.drc
+++ b/Source/Modulos/Informe ventas por articulo/Data/InfVentasArticulo_data.drc
@@ -14,4 +14,4 @@ END
/* C:\Codigo\Source\Modulos\Informe ventas por articulo\Data\uDataModuleInfVentasArticulo.dfm */
/* C:\Codigo\Source\Modulos\Informe ventas por articulo\Data\InfVentasArticulo_data.res */
-/* c:\temp\dtf8E.tmp */
+/* c:\temp\dtf839.tmp */
diff --git a/Source/Modulos/Informe ventas por articulo/Model/InfVentasArticulo_model.drc b/Source/Modulos/Informe ventas por articulo/Model/InfVentasArticulo_model.drc
index b01c9d4..8d9e567 100644
--- a/Source/Modulos/Informe ventas por articulo/Model/InfVentasArticulo_model.drc
+++ b/Source/Modulos/Informe ventas por articulo/Model/InfVentasArticulo_model.drc
@@ -13,4 +13,4 @@ BEGIN
END
/* C:\Codigo\Source\Modulos\Informe ventas por articulo\Model\InfVentasArticulo_model.res */
-/* c:\temp\dtf8C.tmp */
+/* c:\temp\dtf837.tmp */
diff --git a/Source/Modulos/Informe ventas por articulo/Views/InfVentasArticulo_view.drc b/Source/Modulos/Informe ventas por articulo/Views/InfVentasArticulo_view.drc
index 72e432b..d3a0c2d 100644
--- a/Source/Modulos/Informe ventas por articulo/Views/InfVentasArticulo_view.drc
+++ b/Source/Modulos/Informe ventas por articulo/Views/InfVentasArticulo_view.drc
@@ -19,4 +19,4 @@ END
/* C:\Codigo\Source\Modulos\Informe ventas por articulo\Views\uViewInfVentasAlbArticulo.dfm */
/* C:\Codigo\Source\Modulos\Informe ventas por articulo\Views\uEditorInfVentasAlbArticulo.dfm */
/* C:\Codigo\Source\Modulos\Informe ventas por articulo\Views\InfVentasArticulo_view.res */
-/* c:\temp\dtf92.tmp */
+/* c:\temp\dtf83D.tmp */
diff --git a/Source/Modulos/Informes base/Controller/InformesBase_controller.drc b/Source/Modulos/Informes base/Controller/InformesBase_controller.drc
index b413b3c..10978d0 100644
--- a/Source/Modulos/Informes base/Controller/InformesBase_controller.drc
+++ b/Source/Modulos/Informes base/Controller/InformesBase_controller.drc
@@ -13,4 +13,4 @@ BEGIN
END
/* C:\Codigo\Source\Modulos\Informes base\Controller\InformesBase_controller.res */
-/* c:\temp\dtf82.tmp */
+/* c:\temp\dtf82D.tmp */
diff --git a/Source/Modulos/Informes base/Data/Informes_data.drc b/Source/Modulos/Informes base/Data/Informes_data.drc
index 8c710d5..84bf41f 100644
--- a/Source/Modulos/Informes base/Data/Informes_data.drc
+++ b/Source/Modulos/Informes base/Data/Informes_data.drc
@@ -14,4 +14,4 @@ END
/* C:\Codigo\Source\Modulos\Informes base\Data\uDataModuleInformes.dfm */
/* C:\Codigo\Source\Modulos\Informes base\Data\Informes_data.res */
-/* c:\temp\dtf7E.tmp */
+/* c:\temp\dtf829.tmp */
diff --git a/Source/Modulos/Informes base/Model/Informes_model.drc b/Source/Modulos/Informes base/Model/Informes_model.drc
index 221c9b2..b55c4d7 100644
--- a/Source/Modulos/Informes base/Model/Informes_model.drc
+++ b/Source/Modulos/Informes base/Model/Informes_model.drc
@@ -13,4 +13,4 @@ BEGIN
END
/* C:\Codigo\Source\Modulos\Informes base\Model\Informes_model.res */
-/* c:\temp\dtf7C.tmp */
+/* c:\temp\dtf827.tmp */
diff --git a/Source/Modulos/Informes base/Views/Informes_view.drc b/Source/Modulos/Informes base/Views/Informes_view.drc
index d8fa450..7d98190 100644
--- a/Source/Modulos/Informes base/Views/Informes_view.drc
+++ b/Source/Modulos/Informes base/Views/Informes_view.drc
@@ -15,4 +15,4 @@ END
/* C:\Codigo\Source\Modulos\Informes base\Views\uViewInformes.dfm */
/* C:\Codigo\Source\Modulos\Informes base\Views\uEditorInformes.dfm */
/* C:\Codigo\Source\Modulos\Informes base\Views\Informes_view.res */
-/* c:\temp\dtf86.tmp */
+/* c:\temp\dtf831.tmp */
diff --git a/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm
index 6c19862..ee68c8e 100644
--- a/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm
+++ b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm
@@ -234,6 +234,11 @@ inherited DataModulePedidosProveedor: TDataModulePedidosProveedor
ServerAutoRefresh = True
DictionaryEntry = 'PedidosProveedor_REF_PED_CLIENTE'
end
+ item
+ Name = 'REFERENCIA_CLIENTE'
+ DataType = datString
+ Size = 255
+ end
item
Name = 'IMPORTE_NETO'
DataType = datCurrency
diff --git a/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.pas
index 4aae065..faad2ec 100644
--- a/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.pas
+++ b/Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.pas
@@ -111,8 +111,8 @@ function TDataModulePedidosProveedor.GetRptWordPedido(
const AID: Integer; const ImprimirPrecio: Boolean = True;
const ImprimirRefProveedor: Boolean = True): Binary;
begin
- Result := (RORemoteService as IsrvPedidosProveedor).GenerarInformeEnWord(AID,
- ImprimirPrecio, ImprimirRefProveedor);
+// Result := (RORemoteService as IsrvPedidosProveedor).GenerarInformeEnWord(AID,
+// ImprimirPrecio, ImprimirRefProveedor);
end;
function TDataModulePedidosProveedor.NewItem: IBizPedidoProveedor;
diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas
index cf06220..e6ef996 100644
--- a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas
+++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas
@@ -9,10 +9,10 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
- RID_ListaAnosPedidos = '{0CF426F5-0E7A-4D31-B771-4F0EB05D0996}';
- RID_PedidosProveedor = '{B9580F94-5437-478A-90F5-3D27A6CFFDA1}';
- RID_PedidosProveedor_Detalles = '{0A1F339A-A148-4057-B7E2-89076A2F465F}';
- RID_PedidosProveedor_Articulos_Pendientes = '{D6F47337-9293-44B1-BFFA-48F19BD0E00E}';
+ RID_ListaAnosPedidos = '{635625C8-D72D-4D12-9B57-638A5788C270}';
+ RID_PedidosProveedor = '{58CBD283-42B3-4063-8975-7B6FA85D1830}';
+ RID_PedidosProveedor_Detalles = '{4B8364C5-2E99-499C-A908-A481EA53196E}';
+ RID_PedidosProveedor_Articulos_Pendientes = '{216A742F-57E6-4005-83DC-AFFD66A523AD}';
{ Data table names }
nme_ListaAnosPedidos = 'ListaAnosPedidos';
@@ -59,6 +59,7 @@ const
fld_PedidosProveedorUSUARIO = 'USUARIO';
fld_PedidosProveedorID_PEDIDO_CLIENTE = 'ID_PEDIDO_CLIENTE';
fld_PedidosProveedorREF_PED_CLIENTE = 'REF_PED_CLIENTE';
+ fld_PedidosProveedorREFERENCIA_CLIENTE = 'REFERENCIA_CLIENTE';
fld_PedidosProveedorIMPORTE_NETO = 'IMPORTE_NETO';
fld_PedidosProveedorIMPORTE_PORTE = 'IMPORTE_PORTE';
fld_PedidosProveedorDESCUENTO = 'DESCUENTO';
@@ -105,18 +106,19 @@ const
idx_PedidosProveedorUSUARIO = 29;
idx_PedidosProveedorID_PEDIDO_CLIENTE = 30;
idx_PedidosProveedorREF_PED_CLIENTE = 31;
- idx_PedidosProveedorIMPORTE_NETO = 32;
- idx_PedidosProveedorIMPORTE_PORTE = 33;
- idx_PedidosProveedorDESCUENTO = 34;
- idx_PedidosProveedorIMPORTE_DESCUENTO = 35;
- idx_PedidosProveedorBASE_IMPONIBLE = 36;
- idx_PedidosProveedorIVA = 37;
- idx_PedidosProveedorIMPORTE_IVA = 38;
- idx_PedidosProveedorID_FORMA_PAGO = 39;
- idx_PedidosProveedorID_FACTURA = 40;
- idx_PedidosProveedorREF_FACTURA_PROV = 41;
- idx_PedidosProveedorNUM_COPIAS = 42;
- idx_PedidosProveedorNUM_CORREOS = 43;
+ idx_PedidosProveedorREFERENCIA_CLIENTE = 32;
+ idx_PedidosProveedorIMPORTE_NETO = 33;
+ idx_PedidosProveedorIMPORTE_PORTE = 34;
+ idx_PedidosProveedorDESCUENTO = 35;
+ idx_PedidosProveedorIMPORTE_DESCUENTO = 36;
+ idx_PedidosProveedorBASE_IMPONIBLE = 37;
+ idx_PedidosProveedorIVA = 38;
+ idx_PedidosProveedorIMPORTE_IVA = 39;
+ idx_PedidosProveedorID_FORMA_PAGO = 40;
+ idx_PedidosProveedorID_FACTURA = 41;
+ idx_PedidosProveedorREF_FACTURA_PROV = 42;
+ idx_PedidosProveedorNUM_COPIAS = 43;
+ idx_PedidosProveedorNUM_CORREOS = 44;
{ PedidosProveedor_Detalles fields }
fld_PedidosProveedor_DetallesID = 'ID';
@@ -173,7 +175,7 @@ const
type
{ IListaAnosPedidos }
IListaAnosPedidos = interface(IDAStronglyTypedDataTable)
- ['{B738AA83-D8BD-4C38-98CD-DD28E31C9858}']
+ ['{908891AE-AD5B-4BE0-9B4A-E7DC5049478B}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
@@ -208,7 +210,7 @@ type
{ IPedidosProveedor }
IPedidosProveedor = interface(IDAStronglyTypedDataTable)
- ['{78E9FF8F-05A2-4515-9C75-BB069DAF094B}']
+ ['{0FDFA1C6-129E-4578-B028-76E752BCB8CF}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -336,6 +338,10 @@ type
procedure SetREF_PED_CLIENTEValue(const aValue: String);
function GetREF_PED_CLIENTEIsNull: Boolean;
procedure SetREF_PED_CLIENTEIsNull(const aValue: Boolean);
+ function GetREFERENCIA_CLIENTEValue: String;
+ procedure SetREFERENCIA_CLIENTEValue(const aValue: String);
+ function GetREFERENCIA_CLIENTEIsNull: Boolean;
+ procedure SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean);
function GetIMPORTE_NETOValue: Currency;
procedure SetIMPORTE_NETOValue(const aValue: Currency);
function GetIMPORTE_NETOIsNull: Boolean;
@@ -451,6 +457,8 @@ type
property ID_PEDIDO_CLIENTEIsNull: Boolean read GetID_PEDIDO_CLIENTEIsNull write SetID_PEDIDO_CLIENTEIsNull;
property REF_PED_CLIENTE: String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue;
property REF_PED_CLIENTEIsNull: Boolean read GetREF_PED_CLIENTEIsNull write SetREF_PED_CLIENTEIsNull;
+ property REFERENCIA_CLIENTE: String read GetREFERENCIA_CLIENTEValue write SetREFERENCIA_CLIENTEValue;
+ property REFERENCIA_CLIENTEIsNull: Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull;
property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue;
property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull;
property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue;
@@ -612,6 +620,10 @@ type
procedure SetREF_PED_CLIENTEValue(const aValue: String); virtual;
function GetREF_PED_CLIENTEIsNull: Boolean; virtual;
procedure SetREF_PED_CLIENTEIsNull(const aValue: Boolean); virtual;
+ function GetREFERENCIA_CLIENTEValue: String; virtual;
+ procedure SetREFERENCIA_CLIENTEValue(const aValue: String); virtual;
+ function GetREFERENCIA_CLIENTEIsNull: Boolean; virtual;
+ procedure SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); virtual;
function GetIMPORTE_NETOValue: Currency; virtual;
procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual;
function GetIMPORTE_NETOIsNull: Boolean; virtual;
@@ -726,6 +738,8 @@ type
property ID_PEDIDO_CLIENTEIsNull: Boolean read GetID_PEDIDO_CLIENTEIsNull write SetID_PEDIDO_CLIENTEIsNull;
property REF_PED_CLIENTE: String read GetREF_PED_CLIENTEValue write SetREF_PED_CLIENTEValue;
property REF_PED_CLIENTEIsNull: Boolean read GetREF_PED_CLIENTEIsNull write SetREF_PED_CLIENTEIsNull;
+ property REFERENCIA_CLIENTE: String read GetREFERENCIA_CLIENTEValue write SetREFERENCIA_CLIENTEValue;
+ property REFERENCIA_CLIENTEIsNull: Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull;
property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue;
property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull;
property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue;
@@ -759,7 +773,7 @@ type
{ IPedidosProveedor_Detalles }
IPedidosProveedor_Detalles = interface(IDAStronglyTypedDataTable)
- ['{E2F0E04D-0D79-474B-A2E9-32934B613F97}']
+ ['{15F9DCB0-65A0-49DF-A820-EAC0A86FC9A8}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -974,7 +988,7 @@ type
{ IPedidosProveedor_Articulos_Pendientes }
IPedidosProveedor_Articulos_Pendientes = interface(IDAStronglyTypedDataTable)
- ['{7F61AF69-4E60-41A2-9429-E67F707C289C}']
+ ['{FCC15986-D146-4D07-9E5E-ACFDE2998EC9}']
{ Property getters and setters }
function GetID_PEDIDOValue: Integer;
procedure SetID_PEDIDOValue(const aValue: Integer);
@@ -1799,6 +1813,27 @@ begin
DataTable.Fields[idx_PedidosProveedorREF_PED_CLIENTE].AsVariant := Null;
end;
+function TPedidosProveedorDataTableRules.GetREFERENCIA_CLIENTEValue: String;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorREFERENCIA_CLIENTE].AsString;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetREFERENCIA_CLIENTEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PedidosProveedorREFERENCIA_CLIENTE].AsString := aValue;
+end;
+
+function TPedidosProveedorDataTableRules.GetREFERENCIA_CLIENTEIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidosProveedorREFERENCIA_CLIENTE].IsNull;
+end;
+
+procedure TPedidosProveedorDataTableRules.SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidosProveedorREFERENCIA_CLIENTE].AsVariant := Null;
+end;
+
function TPedidosProveedorDataTableRules.GetIMPORTE_NETOValue: Currency;
begin
result := DataTable.Fields[idx_PedidosProveedorIMPORTE_NETO].AsCurrency;
diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas
index e21486a..41341c0 100644
--- a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas
+++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas
@@ -9,15 +9,15 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
- RID_ListaAnosPedidosDelta = '{70208471-680B-41B3-AB3C-0DC5FCD26D51}';
- RID_PedidosProveedorDelta = '{CB41A028-BDED-41AB-9C88-A581E3DE6CCC}';
- RID_PedidosProveedor_DetallesDelta = '{0CE5E016-2EBE-4452-9E33-C5BC9A358EF8}';
- RID_PedidosProveedor_Articulos_PendientesDelta = '{7DB1761B-D15F-4075-9CB7-14F89144CD43}';
+ RID_ListaAnosPedidosDelta = '{FDE726DF-381E-4F3C-8A65-08F25374E75C}';
+ RID_PedidosProveedorDelta = '{4AEABC2F-78CA-45F0-86FE-776F7D3D2D73}';
+ RID_PedidosProveedor_DetallesDelta = '{CDC0D46D-13EA-41FE-8DA2-3434BC0FBE51}';
+ RID_PedidosProveedor_Articulos_PendientesDelta = '{37F1083E-ECCD-488C-8A48-C3A20099E8E4}';
type
{ IListaAnosPedidosDelta }
IListaAnosPedidosDelta = interface(IListaAnosPedidos)
- ['{70208471-680B-41B3-AB3C-0DC5FCD26D51}']
+ ['{FDE726DF-381E-4F3C-8A65-08F25374E75C}']
{ Property getters and setters }
function GetOldANOValue : String;
@@ -51,7 +51,7 @@ type
{ IPedidosProveedorDelta }
IPedidosProveedorDelta = interface(IPedidosProveedor)
- ['{CB41A028-BDED-41AB-9C88-A581E3DE6CCC}']
+ ['{4AEABC2F-78CA-45F0-86FE-776F7D3D2D73}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -85,6 +85,7 @@ type
function GetOldUSUARIOValue : String;
function GetOldID_PEDIDO_CLIENTEValue : Integer;
function GetOldREF_PED_CLIENTEValue : String;
+ function GetOldREFERENCIA_CLIENTEValue : String;
function GetOldIMPORTE_NETOValue : Currency;
function GetOldIMPORTE_PORTEValue : Currency;
function GetOldDESCUENTOValue : Float;
@@ -131,6 +132,7 @@ type
property OldUSUARIO : String read GetOldUSUARIOValue;
property OldID_PEDIDO_CLIENTE : Integer read GetOldID_PEDIDO_CLIENTEValue;
property OldREF_PED_CLIENTE : String read GetOldREF_PED_CLIENTEValue;
+ property OldREFERENCIA_CLIENTE : String read GetOldREFERENCIA_CLIENTEValue;
property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue;
property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue;
property OldDESCUENTO : Float read GetOldDESCUENTOValue;
@@ -344,6 +346,12 @@ type
function GetOldREF_PED_CLIENTEIsNull: Boolean; virtual;
procedure SetREF_PED_CLIENTEValue(const aValue: String); virtual;
procedure SetREF_PED_CLIENTEIsNull(const aValue: Boolean); virtual;
+ function GetREFERENCIA_CLIENTEValue: String; virtual;
+ function GetREFERENCIA_CLIENTEIsNull: Boolean; virtual;
+ function GetOldREFERENCIA_CLIENTEValue: String; virtual;
+ function GetOldREFERENCIA_CLIENTEIsNull: Boolean; virtual;
+ procedure SetREFERENCIA_CLIENTEValue(const aValue: String); virtual;
+ procedure SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean); virtual;
function GetIMPORTE_NETOValue: Currency; virtual;
function GetIMPORTE_NETOIsNull: Boolean; virtual;
function GetOldIMPORTE_NETOValue: Currency; virtual;
@@ -546,6 +554,10 @@ type
property REF_PED_CLIENTEIsNull : Boolean read GetREF_PED_CLIENTEIsNull write SetREF_PED_CLIENTEIsNull;
property OldREF_PED_CLIENTE : String read GetOldREF_PED_CLIENTEValue;
property OldREF_PED_CLIENTEIsNull : Boolean read GetOldREF_PED_CLIENTEIsNull;
+ property REFERENCIA_CLIENTE : String read GetREFERENCIA_CLIENTEValue write SetREFERENCIA_CLIENTEValue;
+ property REFERENCIA_CLIENTEIsNull : Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull;
+ property OldREFERENCIA_CLIENTE : String read GetOldREFERENCIA_CLIENTEValue;
+ property OldREFERENCIA_CLIENTEIsNull : Boolean read GetOldREFERENCIA_CLIENTEIsNull;
property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue;
property IMPORTE_NETOIsNull : Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull;
property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue;
@@ -603,7 +615,7 @@ type
{ IPedidosProveedor_DetallesDelta }
IPedidosProveedor_DetallesDelta = interface(IPedidosProveedor_Detalles)
- ['{0CE5E016-2EBE-4452-9E33-C5BC9A358EF8}']
+ ['{CDC0D46D-13EA-41FE-8DA2-3434BC0FBE51}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_PEDIDOValue : Integer;
@@ -817,7 +829,7 @@ type
{ IPedidosProveedor_Articulos_PendientesDelta }
IPedidosProveedor_Articulos_PendientesDelta = interface(IPedidosProveedor_Articulos_Pendientes)
- ['{7DB1761B-D15F-4075-9CB7-14F89144CD43}']
+ ['{37F1083E-ECCD-488C-8A48-C3A20099E8E4}']
{ Property getters and setters }
function GetOldID_PEDIDOValue : Integer;
function GetOldREFERENCIAValue : String;
@@ -1974,6 +1986,37 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREF_PED_CLIENTE] := Null;
end;
+function TPedidosProveedorBusinessProcessorRules.GetREFERENCIA_CLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA_CLIENTE];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetREFERENCIA_CLIENTEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA_CLIENTE]);
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldREFERENCIA_CLIENTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREFERENCIA_CLIENTE];
+end;
+
+function TPedidosProveedorBusinessProcessorRules.GetOldREFERENCIA_CLIENTEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosProveedorREFERENCIA_CLIENTE]);
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetREFERENCIA_CLIENTEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA_CLIENTE] := aValue;
+end;
+
+procedure TPedidosProveedorBusinessProcessorRules.SetREFERENCIA_CLIENTEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA_CLIENTE] := Null;
+end;
+
function TPedidosProveedorBusinessProcessorRules.GetIMPORTE_NETOValue: Currency;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosProveedorIMPORTE_NETO];
diff --git a/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm
index cf1b90e..f7fb7c3 100644
--- a/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm
+++ b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm
@@ -222,6 +222,10 @@ object srvPedidosProveedor: TsrvPedidosProveedor
item
DatasetField = 'NUM_CORREOS'
TableField = 'NUM_CORREOS'
+ end
+ item
+ DatasetField = 'REFERENCIA_CLIENTE'
+ TableField = 'REFERENCIA_CLIENTE'
end>
end>
Name = 'PedidosProveedor'
@@ -409,6 +413,11 @@ object srvPedidosProveedor: TsrvPedidosProveedor
ServerAutoRefresh = True
DictionaryEntry = 'PedidosProveedor_REF_PED_CLIENTE'
end
+ item
+ Name = 'REFERENCIA_CLIENTE'
+ DataType = datString
+ Size = 255
+ end
item
Name = 'IMPORTE_NETO'
DataType = datCurrency
@@ -765,10 +774,6 @@ object srvPedidosProveedor: TsrvPedidosProveedor
end
item
Params = <
- item
- Name = 'PERSONA_CONTACTO_PROV'
- Value = ''
- end
item
Name = 'ID'
DataType = datAutoInc
@@ -777,126 +782,177 @@ object srvPedidosProveedor: TsrvPedidosProveedor
end
item
Name = 'ID_EMPRESA'
+ DataType = datInteger
Value = ''
end
item
Name = 'ID_PROVEEDOR'
+ DataType = datInteger
Value = ''
end
item
Name = 'ID_DIRECCION'
+ DataType = datInteger
+ Value = ''
+ end
+ item
+ Name = 'PERSONA_CONTACTO_PROV'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'REFERENCIA'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'FECHA_PEDIDO'
+ DataType = datDateTime
Value = ''
end
item
Name = 'FECHA_CONFIRMACION'
+ DataType = datDateTime
Value = ''
end
item
Name = 'FECHA_ENTREGA'
+ DataType = datDateTime
Value = ''
end
item
Name = 'ID_ALMACEN'
+ DataType = datInteger
Value = ''
end
item
Name = 'ID_OBRA'
+ DataType = datInteger
Value = ''
end
item
Name = 'OBSERVACIONES'
+ DataType = datMemo
Value = ''
end
item
Name = 'INCIDENCIAS'
+ DataType = datMemo
Value = ''
end
item
Name = 'INCIDENCIAS_ACTIVAS'
+ DataType = datSmallInt
Value = ''
end
item
Name = 'CALLE'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'CODIGO_POSTAL'
+ DataType = datString
+ Size = 10
Value = ''
end
item
Name = 'POBLACION'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'PROVINCIA'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'PERSONA_CONTACTO'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'TELEFONO'
+ DataType = datString
+ Size = 25
Value = ''
end
item
Name = 'ID_PEDIDO_CLIENTE'
+ DataType = datInteger
Value = ''
end
item
Name = 'IMPORTE_NETO'
+ DataType = datCurrency
Value = ''
end
item
Name = 'IMPORTE_PORTE'
+ DataType = datCurrency
Value = ''
end
item
Name = 'DESCUENTO'
+ DataType = datFloat
Value = ''
end
item
Name = 'IMPORTE_DESCUENTO'
+ DataType = datCurrency
Value = ''
end
item
Name = 'BASE_IMPONIBLE'
+ DataType = datCurrency
Value = ''
end
item
Name = 'IVA'
+ DataType = datFloat
Value = ''
end
item
Name = 'IMPORTE_IVA'
+ DataType = datCurrency
Value = ''
end
item
Name = 'IMPORTE_TOTAL'
+ DataType = datCurrency
Value = ''
end
item
Name = 'ID_FORMA_PAGO'
+ DataType = datInteger
Value = ''
end
item
Name = 'FECHA_ENVIO'
+ DataType = datDateTime
Value = ''
end
item
Name = 'USUARIO'
+ DataType = datString
+ Size = 30
Value = ''
end
item
Name = 'ID_FACTURA'
+ DataType = datInteger
+ Value = ''
+ end
+ item
+ Name = 'REFERENCIA_CLIENTE'
+ DataType = datString
+ Size = 255
Value = ''
end>
Statements = <
@@ -912,15 +968,16 @@ object srvPedidosProveedor: TsrvPedidosProveedor
'EFONO, ID_PEDIDO_CLIENTE,'#10' IMPORTE_NETO, IMPORTE_PORTE, DESC' +
'UENTO, IMPORTE_DESCUENTO,'#10' BASE_IMPONIBLE, IVA, IMPORTE_IVA,' +
' IMPORTE_TOTAL, ID_FORMA_PAGO,'#10' FECHA_ENVIO, USUARIO, FECHA_' +
- 'ALTA, ID_FACTURA)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :ID_PROVEEDOR,' +
- ' :ID_DIRECCION,'#10' :PERSONA_CONTACTO_PROV, :REFERENCIA, :FECHA' +
- '_PEDIDO,'#10' :FECHA_CONFIRMACION, :FECHA_ENTREGA, :ID_ALMACEN, ' +
- ':ID_OBRA,'#10' :OBSERVACIONES, :INCIDENCIAS, :INCIDENCIAS_ACTIVA' +
- 'S,'#10' :CALLE, :CODIGO_POSTAL, :POBLACION, :PROVINCIA, :PERSONA' +
- '_CONTACTO,'#10' :TELEFONO, :ID_PEDIDO_CLIENTE, :IMPORTE_NETO, :I' +
- 'MPORTE_PORTE,'#10' :DESCUENTO, :IMPORTE_DESCUENTO, :BASE_IMPONIB' +
- 'LE, :IVA,'#10' :IMPORTE_IVA, :IMPORTE_TOTAL, :ID_FORMA_PAGO, :FE' +
- 'CHA_ENVIO,'#10' :USUARIO, CURRENT_TIMESTAMP, :ID_FACTURA)'#10
+ 'ALTA, ID_FACTURA, REFERENCIA_CLIENTE)'#10' VALUES'#10' (:ID, :ID_EMP' +
+ 'RESA, :ID_PROVEEDOR, :ID_DIRECCION,'#10' :PERSONA_CONTACTO_PROV,' +
+ ' :REFERENCIA, :FECHA_PEDIDO,'#10' :FECHA_CONFIRMACION, :FECHA_EN' +
+ 'TREGA, :ID_ALMACEN, :ID_OBRA,'#10' :OBSERVACIONES, :INCIDENCIAS,' +
+ ' :INCIDENCIAS_ACTIVAS,'#10' :CALLE, :CODIGO_POSTAL, :POBLACION, ' +
+ ':PROVINCIA, :PERSONA_CONTACTO,'#10' :TELEFONO, :ID_PEDIDO_CLIENT' +
+ 'E, :IMPORTE_NETO, :IMPORTE_PORTE,'#10' :DESCUENTO, :IMPORTE_DESC' +
+ 'UENTO, :BASE_IMPONIBLE, :IVA,'#10' :IMPORTE_IVA, :IMPORTE_TOTAL,' +
+ ' :ID_FORMA_PAGO, :FECHA_ENVIO,'#10' :USUARIO, CURRENT_TIMESTAMP,' +
+ ' :ID_FACTURA, :REFERENCIA_CLIENTE)'#10
StatementType = stSQL
ColumnMappings = <>
end>
@@ -928,10 +985,6 @@ object srvPedidosProveedor: TsrvPedidosProveedor
end
item
Params = <
- item
- Name = 'PERSONA_CONTACTO_PROV'
- Value = ''
- end
item
Name = 'ID'
DataType = datAutoInc
@@ -940,126 +993,177 @@ object srvPedidosProveedor: TsrvPedidosProveedor
end
item
Name = 'OBSERVACIONES'
+ DataType = datMemo
Value = ''
end
item
Name = 'REFERENCIA'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'ID_EMPRESA'
+ DataType = datInteger
Value = ''
end
item
Name = 'ID_PROVEEDOR'
+ DataType = datInteger
Value = ''
end
item
Name = 'ID_DIRECCION'
+ DataType = datInteger
+ Value = ''
+ end
+ item
+ Name = 'PERSONA_CONTACTO_PROV'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'FECHA_ENVIO'
+ DataType = datDateTime
Value = ''
end
item
Name = 'FECHA_PEDIDO'
+ DataType = datDateTime
Value = ''
end
item
Name = 'FECHA_CONFIRMACION'
+ DataType = datDateTime
Value = ''
end
item
Name = 'FECHA_ENTREGA'
+ DataType = datDateTime
Value = ''
end
item
Name = 'INCIDENCIAS'
+ DataType = datMemo
Value = ''
end
item
Name = 'IMPORTE_TOTAL'
+ DataType = datCurrency
Value = ''
end
item
Name = 'INCIDENCIAS_ACTIVAS'
+ DataType = datSmallInt
Value = ''
end
item
Name = 'ID_ALMACEN'
+ DataType = datInteger
Value = ''
end
item
Name = 'ID_OBRA'
+ DataType = datInteger
Value = ''
end
item
Name = 'CALLE'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'POBLACION'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'PROVINCIA'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'CODIGO_POSTAL'
+ DataType = datString
+ Size = 10
Value = ''
end
item
Name = 'PERSONA_CONTACTO'
+ DataType = datString
+ Size = 255
Value = ''
end
item
Name = 'TELEFONO'
+ DataType = datString
+ Size = 25
Value = ''
end
item
Name = 'ID_PEDIDO_CLIENTE'
+ DataType = datInteger
Value = ''
end
item
Name = 'IMPORTE_NETO'
+ DataType = datCurrency
Value = ''
end
item
Name = 'IMPORTE_PORTE'
+ DataType = datCurrency
Value = ''
end
item
Name = 'DESCUENTO'
+ DataType = datFloat
Value = ''
end
item
Name = 'IMPORTE_DESCUENTO'
+ DataType = datCurrency
Value = ''
end
item
Name = 'BASE_IMPONIBLE'
+ DataType = datCurrency
Value = ''
end
item
Name = 'IVA'
+ DataType = datFloat
Value = ''
end
item
Name = 'IMPORTE_IVA'
+ DataType = datCurrency
Value = ''
end
item
Name = 'ID_FORMA_PAGO'
+ DataType = datInteger
Value = ''
end
item
Name = 'USUARIO'
+ DataType = datString
+ Size = 30
Value = ''
end
item
Name = 'ID_FACTURA'
+ DataType = datInteger
+ Value = ''
+ end
+ item
+ Name = 'REFERENCIA_CLIENTE'
+ DataType = datString
+ Size = 255
Value = ''
end
item
@@ -1089,7 +1193,8 @@ object srvPedidosProveedor: TsrvPedidosProveedor
', '#10' BASE_IMPONIBLE = :BASE_IMPONIBLE, '#10' IVA = :IVA, '#10' I' +
'MPORTE_IVA = :IMPORTE_IVA, '#10' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10 +
' USUARIO = :USUARIO,'#10' FECHA_MODIFICACION = CURRENT_TIMESTA' +
- 'MP,'#10' ID_FACTURA = :ID_FACTURA'#10' WHERE'#10' (ID = :OLD_ID)'#10
+ 'MP,'#10' ID_FACTURA = :ID_FACTURA,'#10' REFERENCIA_CLIENTE = :REFE' +
+ 'RENCIA_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)'#10
StatementType = stSQL
ColumnMappings = <>
end>
diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas
index afb609d..9bec63a 100644
--- a/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas
+++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas
@@ -188,7 +188,8 @@ end;
procedure TfEditorPedidosProveedor.actRecibirPedidoExecute(Sender: TObject);
begin
inherited;
- RecibirPedidoProv(FPedidos);
+ GenerarAlbaranProv(FPedidos);
+// RecibirPedidoProv(FPedidos);
actRefrescar.Execute;
end;
diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm
index a8cd3e3..4c4be23 100644
--- a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm
+++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm
@@ -67,7 +67,7 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
- TabOrder = 7
+ TabOrder = 8
Width = 344
end
object edtFechaEntrega: TcxDBDateEdit
@@ -90,11 +90,11 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
- TabOrder = 8
+ TabOrder = 9
Width = 344
end
object memObservaciones: TcxDBMemo
- Left = 488
+ Left = 605
Top = 265
Anchors = [akLeft, akTop, akRight, akBottom]
DataBinding.DataField = 'OBSERVACIONES'
@@ -111,7 +111,7 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
- TabOrder = 11
+ TabOrder = 12
Height = 200
Width = 459
end
@@ -152,7 +152,7 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
- TabOrder = 9
+ TabOrder = 10
ReadOnly = False
ExplicitLeft = 22
ExplicitTop = 279
@@ -189,9 +189,9 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
Width = 551
end
inherited bModificar: TBitBtn
- Left = 298
+ Left = 415
Top = 161
- ExplicitLeft = 298
+ ExplicitLeft = 415
ExplicitTop = 161
end
inherited txtDireccion: TStaticText
@@ -274,7 +274,7 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
Width = 195
end
object bFormasPago: TButton
- Left = 326
+ Left = 443
Top = 82
Width = 132
Height = 21
@@ -304,7 +304,7 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
- TabOrder = 6
+ TabOrder = 7
Width = 344
end
object eReferenciaPedidoCli: TcxTextEdit
@@ -335,15 +335,15 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
Width = 195
end
object bVerPedidoCliente: TButton
- Left = 326
+ Left = 443
Top = 109
Width = 132
Height = 23
Action = actVerPedidoCli
- TabOrder = 5
+ TabOrder = 6
end
inline frViewObraReserva1: TfrViewObraReserva
- Left = 488
+ Left = 605
Top = 441
Width = 422
Height = 97
@@ -353,9 +353,9 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
- TabOrder = 12
+ TabOrder = 13
ReadOnly = False
- ExplicitLeft = 488
+ ExplicitLeft = 605
ExplicitTop = 441
ExplicitWidth = 422
ExplicitHeight = 97
@@ -390,7 +390,7 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
end
end
inline frViewDatosYSeleccionProveedorPedido1: TfrViewDatosYSeleccionProveedorPedido
- Left = 488
+ Left = 605
Top = 28
Width = 480
Height = 201
@@ -400,9 +400,9 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
- TabOrder = 10
+ TabOrder = 11
ReadOnly = False
- ExplicitLeft = 488
+ ExplicitLeft = 605
ExplicitTop = 28
ExplicitWidth = 480
ExplicitHeight = 201
@@ -420,12 +420,12 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
Width = 224
end
inherited edtCODIGO_ASIGNADO: TcxDBTextEdit
- Left = 342
+ Left = 225
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
- ExplicitLeft = 342
+ ExplicitLeft = 225
end
inherited edtPersonaContacto: TcxDBTextEdit
Style.LookAndFeel.SkinName = ''
@@ -444,19 +444,43 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
Width = 121
end
inherited Button4: TButton
- Left = 422
- ExplicitLeft = 422
+ Left = 305
+ ExplicitLeft = 305
end
inherited Button5: TButton
- Left = 422
- ExplicitLeft = 422
+ Left = 305
+ ExplicitLeft = 305
end
inherited Button3: TBitBtn
- Left = 247
- ExplicitLeft = 247
+ Left = 130
+ ExplicitLeft = 130
end
end
end
+ object edtReferenciaCliente: TcxDBTextEdit
+ Left = 294
+ Top = 109
+ Anchors = [akLeft, akTop, akRight]
+ AutoSize = False
+ DataBinding.DataField = 'REFERENCIA_CLIENTE'
+ DataBinding.DataSource = DADataSource
+ ParentFont = False
+ Style.BorderColor = clWindowFrame
+ Style.BorderStyle = ebs3D
+ Style.HotTrack = False
+ Style.LookAndFeel.NativeStyle = True
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.NativeStyle = True
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleDisabled.TextColor = clWindowText
+ StyleFocused.LookAndFeel.NativeStyle = True
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.NativeStyle = True
+ StyleHot.LookAndFeel.SkinName = ''
+ TabOrder = 5
+ Height = 21
+ Width = 258
+ end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
@@ -519,6 +543,13 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor
Control = eReferenciaPedidoCli
ControlOptions.ShowBorder = False
end
+ object dxLayoutControl1Item14: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = 'Ref. Cliente:'
+ Control = edtReferenciaCliente
+ ControlOptions.ShowBorder = False
+ end
object dxLayoutControl1Item12: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahRight
diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas
index c894dc3..a651ede 100644
--- a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas
+++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas
@@ -75,6 +75,8 @@ type
dxLayoutControl1Group11: TdxLayoutGroup;
frViewDatosYSeleccionProveedorPedido1: TfrViewDatosYSeleccionProveedorPedido;
dxLayoutControl1Item1: TdxLayoutItem;
+ dxLayoutControl1Item14: TdxLayoutItem;
+ edtReferenciaCliente: TcxDBTextEdit;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure bFormasPagoClick(Sender: TObject);
@@ -255,10 +257,12 @@ begin
if Assigned(FPedidoCliAsociado) then
begin
FPedidoCliAsociado.DataTable.Active := True;
- eReferenciaPedidoCli.Text := FPedidoCliAsociado.REFERENCIA
+ eReferenciaPedidoCli.Text := FPedidoCliAsociado.REFERENCIA;
end
else
+ begin
eReferenciaPedidoCli.Text := '';
+ end;
end
else
eReferenciaPedidoCli.Text := 'No hay pedido asociado';
diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dfm
index 6b20b96..cd8c925 100644
--- a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dfm
+++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dfm
@@ -158,6 +158,10 @@ inherited frViewPedidosProveedor: TfrViewPedidosProveedor
DataBinding.FieldName = 'REF_PED_CLIENTE'
Width = 65
end
+ object cxGridViewREFERENCIA_CLIENTE: TcxGridDBColumn
+ Caption = 'Ref. Cliente'
+ DataBinding.FieldName = 'REFERENCIA_CLIENTE'
+ end
object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn
Caption = 'Importe total'
DataBinding.FieldName = 'IMPORTE_TOTAL'
diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas
index ea57af5..87e2175 100644
--- a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas
+++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas
@@ -56,6 +56,7 @@ type
cxGridViewINCIDENCIAS: TcxGridDBColumn;
cxGridViewREF_FACTURA_PROV: TcxGridDBColumn;
cxGridViewNOMBRE_OBRA: TcxGridDBColumn;
+ cxGridViewREFERENCIA_CLIENTE: TcxGridDBColumn;
procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel:
TcxGridLevel);
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
diff --git a/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc
index e797665..bdcb842 100644
--- a/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc
+++ b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc
@@ -13,4 +13,4 @@ BEGIN
END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Controller\PedidosCliente_controller.RES */
-/* c:\temp\dtfBC.tmp */
+/* c:\temp\dtf867.tmp */
diff --git a/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas b/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas
index 2a441e2..4c70b97 100644
--- a/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas
+++ b/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas
@@ -24,6 +24,7 @@ type
function BuscarTodos(const AID_Cliente: Integer): IBizPedidoCliente; overload;
function BuscarPendientes : IBizPedidoCliente;
function BuscarPendientesPedir(const ID : Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
+ function BuscarPendientesPedirNoArticulos(const ID : Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
// function BuscarSinFacturar : IBizPedidoCliente;
procedure Ver(APedido : IBizPedidoCliente);
@@ -118,6 +119,7 @@ type
function BuscarTodos(const AID_Cliente: Integer): IBizPedidoCliente; overload;
function BuscarPendientes : IBizPedidoCliente;
function BuscarPendientesPedir(const ID : Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
+ function BuscarPendientesPedirNoArticulos(const ID : Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
// function BuscarSinFacturar : IBizPedidoCliente;
function Nuevo : IBizPedidoCliente;
@@ -265,6 +267,16 @@ begin
end;
end;
+function TPedidosClienteController.BuscarPendientesPedirNoArticulos(const ID: Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
+begin
+ ShowHourglassCursor;
+ try
+ Result := FDataModule.GetArticulosPendientesPedirAProvNoArticulos(ID);
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
{function TPedidosClienteController.BuscarSinFacturar: IBizPedidoCliente;
var
Condicion: TDAWhereExpression;
@@ -827,7 +839,7 @@ begin
if not Assigned(APedido) then
raise Exception.Create ('Pedido no asignado: EsModificable');
- Result := (APedido.SITUACION <> SITUACION_PEDIDO_SERVIDO);
+ Result := ((APedido.SITUACION <> SITUACION_PEDIDO_SERVIDO) and (APedido.SITUACION <> SITUACION_PEDIDO_ALBARANADO));
end;
procedure TPedidosClienteController.RecalcularImportes(
diff --git a/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc
index 0976694..16fabbc 100644
--- a/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc
+++ b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc
@@ -14,4 +14,4 @@ END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Data\uDataModulePedidosCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Data\PedidosCliente_data.RES */
-/* c:\temp\dtfBA.tmp */
+/* c:\temp\dtf865.tmp */
diff --git a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm
index be39e1f..dc9ff0f 100644
--- a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm
+++ b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm
@@ -1,6 +1,6 @@
inherited DataModulePedidosCliente: TDataModulePedidosCliente
OnCreate = DAClientDataModuleCreate
- Height = 301
+ Height = 461
Width = 621
object RORemoteService: TRORemoteService
Message = dmConexion.ROMessage
@@ -67,16 +67,33 @@ inherited DataModulePedidosCliente: TDataModulePedidosCliente
end
item
Name = 'CANT_PEDIDA_PROVEEDOR'
- DataType = datCurrency
+ DataType = datInteger
end
item
Name = 'CANT_PENDIENTE_PEDIR'
DataType = datCurrency
+ end
+ item
+ Name = 'CONCEPTO'
+ DataType = datString
+ Size = 2000
+ end
+ item
+ Name = 'IMPORTE_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ end
+ item
+ Name = 'IMPORTE_TOTAL'
+ DataType = datCurrency
end>
Params = <
item
Name = 'ID'
- Value = '41'
+ Value = '1138'
ParamType = daptInput
end>
StreamingOptions = [soDisableEventsWhileStreaming]
@@ -477,4 +494,68 @@ inherited DataModulePedidosCliente: TDataModulePedidosCliente
Left = 512
Top = 16
end
+ object tbl_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ID_PEDIDO'
+ DataType = datInteger
+ end
+ item
+ Name = 'ID_ARTICULO'
+ DataType = datInteger
+ DictionaryEntry = 'PedidosProveedor_Detalles_ID_ARTICULO'
+ end
+ item
+ Name = 'CANT_PEDIDA_CLIENTE'
+ DataType = datCurrency
+ end
+ item
+ Name = 'ID_PROVEEDOR'
+ DataType = datInteger
+ end
+ item
+ Name = 'CANT_PEDIDA_PROVEEDOR'
+ DataType = datInteger
+ end
+ item
+ Name = 'CANT_PENDIENTE_PEDIR'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CONCEPTO'
+ DataType = datString
+ Size = 2000
+ end
+ item
+ Name = 'IMPORTE_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ end
+ item
+ Name = 'IMPORTE_TOTAL'
+ DataType = datCurrency
+ end>
+ Params = <
+ item
+ Name = 'ID'
+ Value = '1138'
+ ParamType = daptInput
+ end>
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteDataAdapter = rda_PedidosCliente
+ LogicalName = 'PedidoCliente_ArticulosPendientesPedirAProvNoArticulos'
+ IndexDefs = <>
+ Left = 256
+ Top = 320
+ end
+ object ds_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos: TDADataSource
+ DataSet = tbl_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos.Dataset
+ DataTable = tbl_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos
+ Left = 256
+ Top = 272
+ end
end
diff --git a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.pas
index f8d8792..651ace9 100644
--- a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.pas
+++ b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.pas
@@ -29,6 +29,8 @@ type
ds_PedidosCliente_Articulos_Pendientes: TDADataSource;
tbl_PedidosCliente_Detalles: TDAMemDataTable;
ds_PedidosCliente_Detalles: TDADataSource;
+ tbl_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos: TDAMemDataTable;
+ ds_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
@@ -42,6 +44,7 @@ type
function GetItem(const ID : Integer) : IBizPedidoCliente;
function NewItem : IBizPedidoCliente;
function GetArticulosPendientesPedirAProv(const IDPedido: Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
+ function GetArticulosPendientesPedirAProvNoArticulos(const IDPedido: Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
function GetArticulosPendientes(const IDPedido: Integer): IBizPedidoClienteArticulosPend;
@@ -230,4 +233,20 @@ begin
end;
end;
+function TDataModulePedidosCliente.GetArticulosPendientesPedirAProvNoArticulos(
+ const IDPedido: Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
+var
+ AArticulos : TDAMemDataTable;
+begin
+ ShowHourglassCursor;
+ try
+ AArticulos := CloneDataTable(tbl_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos);
+ AArticulos.BusinessRulesID := BIZ_CLIENT_PEDIDO_CLIENTE_ARTICULOS_PENDIENTES_PEDIR_A_PROV;
+ AArticulos.ParamByName('ID').AsInteger := IDPedido;
+ Result := (AArticulos as IBizPedidoClienteArticulosPendientesPedirAProv);
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
end.
diff --git a/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosCliente.pas
index 2671a55..5878bce 100644
--- a/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosCliente.pas
+++ b/Source/Modulos/Pedidos de cliente/Model/Data/uIDataModulePedidosCliente.pas
@@ -13,7 +13,8 @@ type
function GetItem(const ID : Integer) : IBizPedidoCliente;
function NewItem : IBizPedidoCliente;
function GetArticulosPendientes(const IDPedido: Integer): IBizPedidoClienteArticulosPend;
- function GetArticulosPendientesPedirAProv(const IDPedido: Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
+ function GetArticulosPendientesPedirAProv(const IDPedido: Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
+ function GetArticulosPendientesPedirAProvNoArticulos(const IDPedido: Integer): IBizPedidoClienteArticulosPendientesPedirAProv;
end;
implementation
diff --git a/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc
index 586c364..56721f5 100644
--- a/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc
+++ b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc
@@ -13,4 +13,4 @@ BEGIN
END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Model\PedidosCliente_model.RES */
-/* c:\temp\dtfB8.tmp */
+/* c:\temp\dtf863.tmp */
diff --git a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas
index a0518b3..dafbd93 100644
--- a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas
+++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas
@@ -9,11 +9,12 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
- RID_ListaAnosPedidos = '{8644576E-4752-47D5-BDE9-34F3514BF462}';
- RID_PedidosCliente = '{8B5249E3-D172-4515-B5B4-8FBD06AC80B0}';
- RID_PedidosCliente_Detalles = '{D9E8FE15-B19F-4B65-B694-490801AD5904}';
- RID_PedidosCliente_Articulos_Pendientes = '{AA7867B3-1CA3-489D-9F64-EA06960AFB0D}';
- RID_PedidoCliente_ArticulosPendientesPedirAProv = '{BCB573CE-4B7A-4FEE-9415-68E28D9782E6}';
+ RID_ListaAnosPedidos = '{39AEA87B-B095-43F4-AE81-2407C4D498F0}';
+ RID_PedidosCliente = '{2C37EE57-27DA-49CE-BBFC-93C2D1771DB4}';
+ RID_PedidosCliente_Detalles = '{389CA843-A89F-4A47-95F3-6D2FB17E6DF9}';
+ RID_PedidosCliente_Articulos_Pendientes = '{29EB047A-4B49-42D4-A8E9-C42EE3E471FB}';
+ RID_PedidoCliente_ArticulosPendientesPedirAProv = '{1E6FC371-3B83-48DB-BB55-FEC98F3915D1}';
+ RID_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos = '{D624CEBB-93E5-4C10-9A10-CC433745B1F7}';
{ Data table names }
nme_ListaAnosPedidos = 'ListaAnosPedidos';
@@ -21,6 +22,7 @@ const
nme_PedidosCliente_Detalles = 'PedidosCliente_Detalles';
nme_PedidosCliente_Articulos_Pendientes = 'PedidosCliente_Articulos_Pendientes';
nme_PedidoCliente_ArticulosPendientesPedirAProv = 'PedidoCliente_ArticulosPendientesPedirAProv';
+ nme_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos = 'PedidoCliente_ArticulosPendientesPedirAProvNoArticulos';
{ ListaAnosPedidos fields }
fld_ListaAnosPedidosANO = 'ANO';
@@ -151,6 +153,10 @@ const
fld_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR = 'ID_PROVEEDOR';
fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR = 'CANT_PEDIDA_PROVEEDOR';
fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR = 'CANT_PENDIENTE_PEDIR';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO = 'CONCEPTO';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD = 'IMPORTE_UNIDAD';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO = 'DESCUENTO';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL = 'IMPORTE_TOTAL';
{ PedidoCliente_ArticulosPendientesPedirAProv field indexes }
idx_PedidoCliente_ArticulosPendientesPedirAProvID_PEDIDO = 0;
@@ -159,11 +165,39 @@ const
idx_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR = 3;
idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR = 4;
idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR = 5;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO = 6;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD = 7;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO = 8;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL = 9;
+
+ { PedidoCliente_ArticulosPendientesPedirAProvNoArticulos fields }
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO = 'ID_PEDIDO';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO = 'ID_ARTICULO';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE = 'CANT_PEDIDA_CLIENTE';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR = 'ID_PROVEEDOR';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR = 'CANT_PEDIDA_PROVEEDOR';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR = 'CANT_PENDIENTE_PEDIR';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO = 'CONCEPTO';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD = 'IMPORTE_UNIDAD';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO = 'DESCUENTO';
+ fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL = 'IMPORTE_TOTAL';
+
+ { PedidoCliente_ArticulosPendientesPedirAProvNoArticulos field indexes }
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO = 0;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO = 1;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE = 2;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR = 3;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR = 4;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR = 5;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO = 6;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD = 7;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO = 8;
+ idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL = 9;
type
{ IListaAnosPedidos }
IListaAnosPedidos = interface(IDAStronglyTypedDataTable)
- ['{54A9119E-7703-4619-A695-FEF92E6C9303}']
+ ['{013A26BB-689A-4EDF-85F8-2F1499B427B4}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
@@ -198,7 +232,7 @@ type
{ IPedidosCliente }
IPedidosCliente = interface(IDAStronglyTypedDataTable)
- ['{5F14B45E-56DB-4F10-8EAF-FA89609A5EB8}']
+ ['{D51AD7F0-21DB-4794-9721-69888B3E52F6}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -629,7 +663,7 @@ type
{ IPedidosCliente_Detalles }
IPedidosCliente_Detalles = interface(IDAStronglyTypedDataTable)
- ['{EC4E915D-1631-414A-AA6F-1743A167B8C3}']
+ ['{574ABC3C-F487-4F6C-8D8B-E2C94B8EAA2C}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -820,7 +854,7 @@ type
{ IPedidosCliente_Articulos_Pendientes }
IPedidosCliente_Articulos_Pendientes = interface(IDAStronglyTypedDataTable)
- ['{A8193AC8-9646-4B77-92C5-0737D99A546B}']
+ ['{F94E52AB-7983-45C1-9522-8F8558864380}']
{ Property getters and setters }
function GetID_ARTICULOValue: Integer;
procedure SetID_ARTICULOValue(const aValue: Integer);
@@ -891,7 +925,7 @@ type
{ IPedidoCliente_ArticulosPendientesPedirAProv }
IPedidoCliente_ArticulosPendientesPedirAProv = interface(IDAStronglyTypedDataTable)
- ['{7C12E66E-BD01-4F60-9755-974CE324343B}']
+ ['{8D82D999-A50C-4EB0-8E4F-1CDF6439C646}']
{ Property getters and setters }
function GetID_PEDIDOValue: Integer;
procedure SetID_PEDIDOValue(const aValue: Integer);
@@ -909,14 +943,30 @@ type
procedure SetID_PROVEEDORValue(const aValue: Integer);
function GetID_PROVEEDORIsNull: Boolean;
procedure SetID_PROVEEDORIsNull(const aValue: Boolean);
- function GetCANT_PEDIDA_PROVEEDORValue: Currency;
- procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Currency);
+ function GetCANT_PEDIDA_PROVEEDORValue: Integer;
+ procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer);
function GetCANT_PEDIDA_PROVEEDORIsNull: Boolean;
procedure SetCANT_PEDIDA_PROVEEDORIsNull(const aValue: Boolean);
function GetCANT_PENDIENTE_PEDIRValue: Currency;
procedure SetCANT_PENDIENTE_PEDIRValue(const aValue: Currency);
function GetCANT_PENDIENTE_PEDIRIsNull: Boolean;
procedure SetCANT_PENDIENTE_PEDIRIsNull(const aValue: Boolean);
+ function GetCONCEPTOValue: String;
+ procedure SetCONCEPTOValue(const aValue: String);
+ function GetCONCEPTOIsNull: Boolean;
+ procedure SetCONCEPTOIsNull(const aValue: Boolean);
+ function GetIMPORTE_UNIDADValue: Currency;
+ procedure SetIMPORTE_UNIDADValue(const aValue: Currency);
+ function GetIMPORTE_UNIDADIsNull: Boolean;
+ procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetDESCUENTOIsNull: Boolean;
+ procedure SetDESCUENTOIsNull(const aValue: Boolean);
+ function GetIMPORTE_TOTALValue: Currency;
+ procedure SetIMPORTE_TOTALValue(const aValue: Currency);
+ function GetIMPORTE_TOTALIsNull: Boolean;
+ procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean);
{ Properties }
@@ -928,10 +978,18 @@ type
property CANT_PEDIDA_CLIENTEIsNull: Boolean read GetCANT_PEDIDA_CLIENTEIsNull write SetCANT_PEDIDA_CLIENTEIsNull;
property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
- property CANT_PEDIDA_PROVEEDOR: Currency read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue;
+ property CANT_PEDIDA_PROVEEDOR: Integer read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue;
property CANT_PEDIDA_PROVEEDORIsNull: Boolean read GetCANT_PEDIDA_PROVEEDORIsNull write SetCANT_PEDIDA_PROVEEDORIsNull;
property CANT_PENDIENTE_PEDIR: Currency read GetCANT_PENDIENTE_PEDIRValue write SetCANT_PENDIENTE_PEDIRValue;
property CANT_PENDIENTE_PEDIRIsNull: Boolean read GetCANT_PENDIENTE_PEDIRIsNull write SetCANT_PENDIENTE_PEDIRIsNull;
+ property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue;
+ property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull;
+ property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue;
+ property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
+ property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
+ property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull;
end;
{ TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules }
@@ -955,14 +1013,30 @@ type
procedure SetID_PROVEEDORValue(const aValue: Integer); virtual;
function GetID_PROVEEDORIsNull: Boolean; virtual;
procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual;
- function GetCANT_PEDIDA_PROVEEDORValue: Currency; virtual;
- procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Currency); virtual;
+ function GetCANT_PEDIDA_PROVEEDORValue: Integer; virtual;
+ procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer); virtual;
function GetCANT_PEDIDA_PROVEEDORIsNull: Boolean; virtual;
procedure SetCANT_PEDIDA_PROVEEDORIsNull(const aValue: Boolean); virtual;
function GetCANT_PENDIENTE_PEDIRValue: Currency; virtual;
procedure SetCANT_PENDIENTE_PEDIRValue(const aValue: Currency); virtual;
function GetCANT_PENDIENTE_PEDIRIsNull: Boolean; virtual;
procedure SetCANT_PENDIENTE_PEDIRIsNull(const aValue: Boolean); virtual;
+ function GetCONCEPTOValue: String; virtual;
+ procedure SetCONCEPTOValue(const aValue: String); virtual;
+ function GetCONCEPTOIsNull: Boolean; virtual;
+ procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual;
+ function GetIMPORTE_UNIDADValue: Currency; virtual;
+ procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTE_UNIDADIsNull: Boolean; virtual;
+ procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetDESCUENTOIsNull: Boolean; virtual;
+ procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual;
+ function GetIMPORTE_TOTALValue: Currency; virtual;
+ procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual;
+ function GetIMPORTE_TOTALIsNull: Boolean; virtual;
+ procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue;
@@ -973,10 +1047,161 @@ type
property CANT_PEDIDA_CLIENTEIsNull: Boolean read GetCANT_PEDIDA_CLIENTEIsNull write SetCANT_PEDIDA_CLIENTEIsNull;
property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
- property CANT_PEDIDA_PROVEEDOR: Currency read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue;
+ property CANT_PEDIDA_PROVEEDOR: Integer read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue;
property CANT_PEDIDA_PROVEEDORIsNull: Boolean read GetCANT_PEDIDA_PROVEEDORIsNull write SetCANT_PEDIDA_PROVEEDORIsNull;
property CANT_PENDIENTE_PEDIR: Currency read GetCANT_PENDIENTE_PEDIRValue write SetCANT_PENDIENTE_PEDIRValue;
property CANT_PENDIENTE_PEDIRIsNull: Boolean read GetCANT_PENDIENTE_PEDIRIsNull write SetCANT_PENDIENTE_PEDIRIsNull;
+ property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue;
+ property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull;
+ property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue;
+ property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
+ property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
+ property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPedidoCliente_ArticulosPendientesPedirAProvNoArticulos }
+ IPedidoCliente_ArticulosPendientesPedirAProvNoArticulos = interface(IDAStronglyTypedDataTable)
+ ['{B3551FC7-D507-4452-8454-B2815339D817}']
+ { Property getters and setters }
+ function GetID_PEDIDOValue: Integer;
+ procedure SetID_PEDIDOValue(const aValue: Integer);
+ function GetID_PEDIDOIsNull: Boolean;
+ procedure SetID_PEDIDOIsNull(const aValue: Boolean);
+ function GetID_ARTICULOValue: Integer;
+ procedure SetID_ARTICULOValue(const aValue: Integer);
+ function GetID_ARTICULOIsNull: Boolean;
+ procedure SetID_ARTICULOIsNull(const aValue: Boolean);
+ function GetCANT_PEDIDA_CLIENTEValue: Currency;
+ procedure SetCANT_PEDIDA_CLIENTEValue(const aValue: Currency);
+ function GetCANT_PEDIDA_CLIENTEIsNull: Boolean;
+ procedure SetCANT_PEDIDA_CLIENTEIsNull(const aValue: Boolean);
+ function GetID_PROVEEDORValue: Integer;
+ procedure SetID_PROVEEDORValue(const aValue: Integer);
+ function GetID_PROVEEDORIsNull: Boolean;
+ procedure SetID_PROVEEDORIsNull(const aValue: Boolean);
+ function GetCANT_PEDIDA_PROVEEDORValue: Integer;
+ procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer);
+ function GetCANT_PEDIDA_PROVEEDORIsNull: Boolean;
+ procedure SetCANT_PEDIDA_PROVEEDORIsNull(const aValue: Boolean);
+ function GetCANT_PENDIENTE_PEDIRValue: Currency;
+ procedure SetCANT_PENDIENTE_PEDIRValue(const aValue: Currency);
+ function GetCANT_PENDIENTE_PEDIRIsNull: Boolean;
+ procedure SetCANT_PENDIENTE_PEDIRIsNull(const aValue: Boolean);
+ function GetCONCEPTOValue: String;
+ procedure SetCONCEPTOValue(const aValue: String);
+ function GetCONCEPTOIsNull: Boolean;
+ procedure SetCONCEPTOIsNull(const aValue: Boolean);
+ function GetIMPORTE_UNIDADValue: Currency;
+ procedure SetIMPORTE_UNIDADValue(const aValue: Currency);
+ function GetIMPORTE_UNIDADIsNull: Boolean;
+ procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean);
+ function GetDESCUENTOValue: Float;
+ procedure SetDESCUENTOValue(const aValue: Float);
+ function GetDESCUENTOIsNull: Boolean;
+ procedure SetDESCUENTOIsNull(const aValue: Boolean);
+ function GetIMPORTE_TOTALValue: Currency;
+ procedure SetIMPORTE_TOTALValue(const aValue: Currency);
+ function GetIMPORTE_TOTALIsNull: Boolean;
+ procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean);
+
+
+ { Properties }
+ property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue;
+ property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull;
+ property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue;
+ property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull;
+ property CANT_PEDIDA_CLIENTE: Currency read GetCANT_PEDIDA_CLIENTEValue write SetCANT_PEDIDA_CLIENTEValue;
+ property CANT_PEDIDA_CLIENTEIsNull: Boolean read GetCANT_PEDIDA_CLIENTEIsNull write SetCANT_PEDIDA_CLIENTEIsNull;
+ property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
+ property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
+ property CANT_PEDIDA_PROVEEDOR: Integer read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue;
+ property CANT_PEDIDA_PROVEEDORIsNull: Boolean read GetCANT_PEDIDA_PROVEEDORIsNull write SetCANT_PEDIDA_PROVEEDORIsNull;
+ property CANT_PENDIENTE_PEDIR: Currency read GetCANT_PENDIENTE_PEDIRValue write SetCANT_PENDIENTE_PEDIRValue;
+ property CANT_PENDIENTE_PEDIRIsNull: Boolean read GetCANT_PENDIENTE_PEDIRIsNull write SetCANT_PENDIENTE_PEDIRIsNull;
+ property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue;
+ property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull;
+ property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue;
+ property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
+ property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
+ property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull;
+ end;
+
+ { TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules }
+ TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules = class(TIntfObjectDADataTableRules, IPedidoCliente_ArticulosPendientesPedirAProvNoArticulos)
+ private
+ protected
+ { Property getters and setters }
+ function GetID_PEDIDOValue: Integer; virtual;
+ procedure SetID_PEDIDOValue(const aValue: Integer); virtual;
+ function GetID_PEDIDOIsNull: Boolean; virtual;
+ procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual;
+ function GetID_ARTICULOValue: Integer; virtual;
+ procedure SetID_ARTICULOValue(const aValue: Integer); virtual;
+ function GetID_ARTICULOIsNull: Boolean; virtual;
+ procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual;
+ function GetCANT_PEDIDA_CLIENTEValue: Currency; virtual;
+ procedure SetCANT_PEDIDA_CLIENTEValue(const aValue: Currency); virtual;
+ function GetCANT_PEDIDA_CLIENTEIsNull: Boolean; virtual;
+ procedure SetCANT_PEDIDA_CLIENTEIsNull(const aValue: Boolean); virtual;
+ function GetID_PROVEEDORValue: Integer; virtual;
+ procedure SetID_PROVEEDORValue(const aValue: Integer); virtual;
+ function GetID_PROVEEDORIsNull: Boolean; virtual;
+ procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual;
+ function GetCANT_PEDIDA_PROVEEDORValue: Integer; virtual;
+ procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer); virtual;
+ function GetCANT_PEDIDA_PROVEEDORIsNull: Boolean; virtual;
+ procedure SetCANT_PEDIDA_PROVEEDORIsNull(const aValue: Boolean); virtual;
+ function GetCANT_PENDIENTE_PEDIRValue: Currency; virtual;
+ procedure SetCANT_PENDIENTE_PEDIRValue(const aValue: Currency); virtual;
+ function GetCANT_PENDIENTE_PEDIRIsNull: Boolean; virtual;
+ procedure SetCANT_PENDIENTE_PEDIRIsNull(const aValue: Boolean); virtual;
+ function GetCONCEPTOValue: String; virtual;
+ procedure SetCONCEPTOValue(const aValue: String); virtual;
+ function GetCONCEPTOIsNull: Boolean; virtual;
+ procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual;
+ function GetIMPORTE_UNIDADValue: Currency; virtual;
+ procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual;
+ function GetIMPORTE_UNIDADIsNull: Boolean; virtual;
+ procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ function GetDESCUENTOIsNull: Boolean; virtual;
+ procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual;
+ function GetIMPORTE_TOTALValue: Currency; virtual;
+ procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual;
+ function GetIMPORTE_TOTALIsNull: Boolean; virtual;
+ procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual;
+
+ { Properties }
+ property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue;
+ property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull;
+ property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue;
+ property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull;
+ property CANT_PEDIDA_CLIENTE: Currency read GetCANT_PEDIDA_CLIENTEValue write SetCANT_PEDIDA_CLIENTEValue;
+ property CANT_PEDIDA_CLIENTEIsNull: Boolean read GetCANT_PEDIDA_CLIENTEIsNull write SetCANT_PEDIDA_CLIENTEIsNull;
+ property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
+ property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
+ property CANT_PEDIDA_PROVEEDOR: Integer read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue;
+ property CANT_PEDIDA_PROVEEDORIsNull: Boolean read GetCANT_PEDIDA_PROVEEDORIsNull write SetCANT_PEDIDA_PROVEEDORIsNull;
+ property CANT_PENDIENTE_PEDIR: Currency read GetCANT_PENDIENTE_PEDIRValue write SetCANT_PENDIENTE_PEDIRValue;
+ property CANT_PENDIENTE_PEDIRIsNull: Boolean read GetCANT_PENDIENTE_PEDIRIsNull write SetCANT_PENDIENTE_PEDIRIsNull;
+ property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue;
+ property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull;
+ property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue;
+ property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull;
+ property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
+ property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
+ property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull;
public
constructor Create(aDataTable: TDADataTable); override;
@@ -2256,14 +2481,14 @@ begin
DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR].AsVariant := Null;
end;
-function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetCANT_PEDIDA_PROVEEDORValue: Currency;
+function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetCANT_PEDIDA_PROVEEDORValue: Integer;
begin
- result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR].AsCurrency;
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR].AsInteger;
end;
-procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetCANT_PEDIDA_PROVEEDORValue(const aValue: Currency);
+procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer);
begin
- DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR].AsCurrency := aValue;
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR].AsInteger := aValue;
end;
function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetCANT_PEDIDA_PROVEEDORIsNull: boolean;
@@ -2298,6 +2523,312 @@ begin
DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR].AsVariant := Null;
end;
+function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetCONCEPTOValue: String;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO].AsString;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetCONCEPTOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO].AsString := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetCONCEPTOIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetIMPORTE_UNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD].AsCurrency;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD].AsCurrency := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetIMPORTE_UNIDADIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO].AsFloat;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO].AsFloat := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetDESCUENTOIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetIMPORTE_TOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL].AsCurrency;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL].AsCurrency := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.GetIMPORTE_TOTALIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL].AsVariant := Null;
+end;
+
+
+{ TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules }
+constructor TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetID_PEDIDOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO].AsInteger;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetID_PEDIDOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO].AsInteger := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetID_PEDIDOIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetID_ARTICULOValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO].AsInteger;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetID_ARTICULOValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO].AsInteger := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetID_ARTICULOIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetCANT_PEDIDA_CLIENTEValue: Currency;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE].AsCurrency;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetCANT_PEDIDA_CLIENTEValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE].AsCurrency := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetCANT_PEDIDA_CLIENTEIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetCANT_PEDIDA_CLIENTEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetID_PROVEEDORValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR].AsInteger;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetID_PROVEEDORValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR].AsInteger := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetID_PROVEEDORIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetCANT_PEDIDA_PROVEEDORValue: Integer;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR].AsInteger;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR].AsInteger := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetCANT_PEDIDA_PROVEEDORIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetCANT_PEDIDA_PROVEEDORIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetCANT_PENDIENTE_PEDIRValue: Currency;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR].AsCurrency;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetCANT_PENDIENTE_PEDIRValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR].AsCurrency := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetCANT_PENDIENTE_PEDIRIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetCANT_PENDIENTE_PEDIRIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetCONCEPTOValue: String;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO].AsString;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetCONCEPTOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO].AsString := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetCONCEPTOIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetIMPORTE_UNIDADValue: Currency;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD].AsCurrency;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD].AsCurrency := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetIMPORTE_UNIDADIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetDESCUENTOValue: Float;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO].AsFloat;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO].AsFloat := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetDESCUENTOIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO].AsVariant := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetIMPORTE_TOTALValue: Currency;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL].AsCurrency;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency);
+begin
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL].AsCurrency := aValue;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.GetIMPORTE_TOTALIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL].IsNull;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL].AsVariant := Null;
+end;
+
initialization
RegisterDataTableRules(RID_ListaAnosPedidos, TListaAnosPedidosDataTableRules);
@@ -2305,5 +2836,6 @@ initialization
RegisterDataTableRules(RID_PedidosCliente_Detalles, TPedidosCliente_DetallesDataTableRules);
RegisterDataTableRules(RID_PedidosCliente_Articulos_Pendientes, TPedidosCliente_Articulos_PendientesDataTableRules);
RegisterDataTableRules(RID_PedidoCliente_ArticulosPendientesPedirAProv, TPedidoCliente_ArticulosPendientesPedirAProvDataTableRules);
+ RegisterDataTableRules(RID_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos, TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDataTableRules);
end.
diff --git a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas
index 3b24d0b..bb019aa 100644
--- a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas
+++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas
@@ -9,16 +9,17 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
- RID_ListaAnosPedidosDelta = '{76D21809-9389-466A-8EA6-770F2C9CC4CE}';
- RID_PedidosClienteDelta = '{04D07B96-AF61-4C4B-B0BB-B3990FD371B0}';
- RID_PedidosCliente_DetallesDelta = '{F54283EE-DC22-47FE-B6E9-C16541FFF323}';
- RID_PedidosCliente_Articulos_PendientesDelta = '{25A809D3-7A74-4693-9174-971D6E346DB8}';
- RID_PedidoCliente_ArticulosPendientesPedirAProvDelta = '{B2CCEE7F-A2FE-4853-868F-7C6C8E5BC340}';
+ RID_ListaAnosPedidosDelta = '{AFC97261-540F-44C4-9AD7-057298F1B086}';
+ RID_PedidosClienteDelta = '{E50F050B-03E8-4C84-91AA-9B8205480C0D}';
+ RID_PedidosCliente_DetallesDelta = '{506DEE40-B318-405D-BF82-CCE6502097E8}';
+ RID_PedidosCliente_Articulos_PendientesDelta = '{FB70B126-428D-454B-AA03-814B3F03B317}';
+ RID_PedidoCliente_ArticulosPendientesPedirAProvDelta = '{14A7355B-4DDA-4A3F-AFF0-A0C79E98EE09}';
+ RID_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDelta = '{1D7515BA-4719-4377-BF5D-F3027714E5E8}';
type
{ IListaAnosPedidosDelta }
IListaAnosPedidosDelta = interface(IListaAnosPedidos)
- ['{76D21809-9389-466A-8EA6-770F2C9CC4CE}']
+ ['{AFC97261-540F-44C4-9AD7-057298F1B086}']
{ Property getters and setters }
function GetOldANOValue : String;
@@ -52,7 +53,7 @@ type
{ IPedidosClienteDelta }
IPedidosClienteDelta = interface(IPedidosCliente)
- ['{04D07B96-AF61-4C4B-B0BB-B3990FD371B0}']
+ ['{E50F050B-03E8-4C84-91AA-9B8205480C0D}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -484,7 +485,7 @@ type
{ IPedidosCliente_DetallesDelta }
IPedidosCliente_DetallesDelta = interface(IPedidosCliente_Detalles)
- ['{F54283EE-DC22-47FE-B6E9-C16541FFF323}']
+ ['{506DEE40-B318-405D-BF82-CCE6502097E8}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_PEDIDOValue : Integer;
@@ -674,7 +675,7 @@ type
{ IPedidosCliente_Articulos_PendientesDelta }
IPedidosCliente_Articulos_PendientesDelta = interface(IPedidosCliente_Articulos_Pendientes)
- ['{25A809D3-7A74-4693-9174-971D6E346DB8}']
+ ['{FB70B126-428D-454B-AA03-814B3F03B317}']
{ Property getters and setters }
function GetOldID_ARTICULOValue : Integer;
function GetOldCANTIDAD_PEDValue : Currency;
@@ -744,22 +745,30 @@ type
{ IPedidoCliente_ArticulosPendientesPedirAProvDelta }
IPedidoCliente_ArticulosPendientesPedirAProvDelta = interface(IPedidoCliente_ArticulosPendientesPedirAProv)
- ['{B2CCEE7F-A2FE-4853-868F-7C6C8E5BC340}']
+ ['{14A7355B-4DDA-4A3F-AFF0-A0C79E98EE09}']
{ Property getters and setters }
function GetOldID_PEDIDOValue : Integer;
function GetOldID_ARTICULOValue : Integer;
function GetOldCANT_PEDIDA_CLIENTEValue : Currency;
function GetOldID_PROVEEDORValue : Integer;
- function GetOldCANT_PEDIDA_PROVEEDORValue : Currency;
+ function GetOldCANT_PEDIDA_PROVEEDORValue : Integer;
function GetOldCANT_PENDIENTE_PEDIRValue : Currency;
+ function GetOldCONCEPTOValue : String;
+ function GetOldIMPORTE_UNIDADValue : Currency;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTE_TOTALValue : Currency;
{ Properties }
property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue;
property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue;
property OldCANT_PEDIDA_CLIENTE : Currency read GetOldCANT_PEDIDA_CLIENTEValue;
property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue;
- property OldCANT_PEDIDA_PROVEEDOR : Currency read GetOldCANT_PEDIDA_PROVEEDORValue;
+ property OldCANT_PEDIDA_PROVEEDOR : Integer read GetOldCANT_PEDIDA_PROVEEDORValue;
property OldCANT_PENDIENTE_PEDIR : Currency read GetOldCANT_PENDIENTE_PEDIRValue;
+ property OldCONCEPTO : String read GetOldCONCEPTOValue;
+ property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue;
end;
{ TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules }
@@ -791,11 +800,11 @@ type
function GetOldID_PROVEEDORIsNull: Boolean; virtual;
procedure SetID_PROVEEDORValue(const aValue: Integer); virtual;
procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual;
- function GetCANT_PEDIDA_PROVEEDORValue: Currency; virtual;
+ function GetCANT_PEDIDA_PROVEEDORValue: Integer; virtual;
function GetCANT_PEDIDA_PROVEEDORIsNull: Boolean; virtual;
- function GetOldCANT_PEDIDA_PROVEEDORValue: Currency; virtual;
+ function GetOldCANT_PEDIDA_PROVEEDORValue: Integer; virtual;
function GetOldCANT_PEDIDA_PROVEEDORIsNull: Boolean; virtual;
- procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Currency); virtual;
+ procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer); virtual;
procedure SetCANT_PEDIDA_PROVEEDORIsNull(const aValue: Boolean); virtual;
function GetCANT_PENDIENTE_PEDIRValue: Currency; virtual;
function GetCANT_PENDIENTE_PEDIRIsNull: Boolean; virtual;
@@ -803,6 +812,30 @@ type
function GetOldCANT_PENDIENTE_PEDIRIsNull: Boolean; virtual;
procedure SetCANT_PENDIENTE_PEDIRValue(const aValue: Currency); virtual;
procedure SetCANT_PENDIENTE_PEDIRIsNull(const aValue: Boolean); virtual;
+ function GetCONCEPTOValue: String; virtual;
+ function GetCONCEPTOIsNull: Boolean; virtual;
+ function GetOldCONCEPTOValue: String; virtual;
+ function GetOldCONCEPTOIsNull: Boolean; virtual;
+ procedure SetCONCEPTOValue(const aValue: String); virtual;
+ procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual;
+ function GetIMPORTE_UNIDADValue: Currency; virtual;
+ function GetIMPORTE_UNIDADIsNull: Boolean; virtual;
+ function GetOldIMPORTE_UNIDADValue: Currency; virtual;
+ function GetOldIMPORTE_UNIDADIsNull: Boolean; virtual;
+ procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual;
+ procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetDESCUENTOIsNull: Boolean; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOIsNull: Boolean; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual;
+ function GetIMPORTE_TOTALValue: Currency; virtual;
+ function GetIMPORTE_TOTALIsNull: Boolean; virtual;
+ function GetOldIMPORTE_TOTALValue: Currency; virtual;
+ function GetOldIMPORTE_TOTALIsNull: Boolean; virtual;
+ procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual;
+ procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue;
@@ -821,14 +854,172 @@ type
property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue;
property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull;
- property CANT_PEDIDA_PROVEEDOR : Currency read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue;
+ property CANT_PEDIDA_PROVEEDOR : Integer read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue;
property CANT_PEDIDA_PROVEEDORIsNull : Boolean read GetCANT_PEDIDA_PROVEEDORIsNull write SetCANT_PEDIDA_PROVEEDORIsNull;
- property OldCANT_PEDIDA_PROVEEDOR : Currency read GetOldCANT_PEDIDA_PROVEEDORValue;
+ property OldCANT_PEDIDA_PROVEEDOR : Integer read GetOldCANT_PEDIDA_PROVEEDORValue;
property OldCANT_PEDIDA_PROVEEDORIsNull : Boolean read GetOldCANT_PEDIDA_PROVEEDORIsNull;
property CANT_PENDIENTE_PEDIR : Currency read GetCANT_PENDIENTE_PEDIRValue write SetCANT_PENDIENTE_PEDIRValue;
property CANT_PENDIENTE_PEDIRIsNull : Boolean read GetCANT_PENDIENTE_PEDIRIsNull write SetCANT_PENDIENTE_PEDIRIsNull;
property OldCANT_PENDIENTE_PEDIR : Currency read GetOldCANT_PENDIENTE_PEDIRValue;
property OldCANT_PENDIENTE_PEDIRIsNull : Boolean read GetOldCANT_PENDIENTE_PEDIRIsNull;
+ property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue;
+ property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull;
+ property OldCONCEPTO : String read GetOldCONCEPTOValue;
+ property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull;
+ property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue;
+ property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull;
+ property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue;
+ property OldIMPORTE_UNIDADIsNull : Boolean read GetOldIMPORTE_UNIDADIsNull;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull;
+ property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
+ property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull;
+ property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue;
+ property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+ { IPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDelta }
+ IPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDelta = interface(IPedidoCliente_ArticulosPendientesPedirAProvNoArticulos)
+ ['{1D7515BA-4719-4377-BF5D-F3027714E5E8}']
+ { Property getters and setters }
+ function GetOldID_PEDIDOValue : Integer;
+ function GetOldID_ARTICULOValue : Integer;
+ function GetOldCANT_PEDIDA_CLIENTEValue : Currency;
+ function GetOldID_PROVEEDORValue : Integer;
+ function GetOldCANT_PEDIDA_PROVEEDORValue : Integer;
+ function GetOldCANT_PENDIENTE_PEDIRValue : Currency;
+ function GetOldCONCEPTOValue : String;
+ function GetOldIMPORTE_UNIDADValue : Currency;
+ function GetOldDESCUENTOValue : Float;
+ function GetOldIMPORTE_TOTALValue : Currency;
+
+ { Properties }
+ property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue;
+ property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue;
+ property OldCANT_PEDIDA_CLIENTE : Currency read GetOldCANT_PEDIDA_CLIENTEValue;
+ property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue;
+ property OldCANT_PEDIDA_PROVEEDOR : Integer read GetOldCANT_PEDIDA_PROVEEDORValue;
+ property OldCANT_PENDIENTE_PEDIR : Currency read GetOldCANT_PENDIENTE_PEDIRValue;
+ property OldCONCEPTO : String read GetOldCONCEPTOValue;
+ property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue;
+ end;
+
+ { TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules }
+ TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules = class(TDABusinessProcessorRules, IPedidoCliente_ArticulosPendientesPedirAProvNoArticulos, IPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetID_PEDIDOValue: Integer; virtual;
+ function GetID_PEDIDOIsNull: Boolean; virtual;
+ function GetOldID_PEDIDOValue: Integer; virtual;
+ function GetOldID_PEDIDOIsNull: Boolean; virtual;
+ procedure SetID_PEDIDOValue(const aValue: Integer); virtual;
+ procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual;
+ function GetID_ARTICULOValue: Integer; virtual;
+ function GetID_ARTICULOIsNull: Boolean; virtual;
+ function GetOldID_ARTICULOValue: Integer; virtual;
+ function GetOldID_ARTICULOIsNull: Boolean; virtual;
+ procedure SetID_ARTICULOValue(const aValue: Integer); virtual;
+ procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual;
+ function GetCANT_PEDIDA_CLIENTEValue: Currency; virtual;
+ function GetCANT_PEDIDA_CLIENTEIsNull: Boolean; virtual;
+ function GetOldCANT_PEDIDA_CLIENTEValue: Currency; virtual;
+ function GetOldCANT_PEDIDA_CLIENTEIsNull: Boolean; virtual;
+ procedure SetCANT_PEDIDA_CLIENTEValue(const aValue: Currency); virtual;
+ procedure SetCANT_PEDIDA_CLIENTEIsNull(const aValue: Boolean); virtual;
+ function GetID_PROVEEDORValue: Integer; virtual;
+ function GetID_PROVEEDORIsNull: Boolean; virtual;
+ function GetOldID_PROVEEDORValue: Integer; virtual;
+ function GetOldID_PROVEEDORIsNull: Boolean; virtual;
+ procedure SetID_PROVEEDORValue(const aValue: Integer); virtual;
+ procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual;
+ function GetCANT_PEDIDA_PROVEEDORValue: Integer; virtual;
+ function GetCANT_PEDIDA_PROVEEDORIsNull: Boolean; virtual;
+ function GetOldCANT_PEDIDA_PROVEEDORValue: Integer; virtual;
+ function GetOldCANT_PEDIDA_PROVEEDORIsNull: Boolean; virtual;
+ procedure SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer); virtual;
+ procedure SetCANT_PEDIDA_PROVEEDORIsNull(const aValue: Boolean); virtual;
+ function GetCANT_PENDIENTE_PEDIRValue: Currency; virtual;
+ function GetCANT_PENDIENTE_PEDIRIsNull: Boolean; virtual;
+ function GetOldCANT_PENDIENTE_PEDIRValue: Currency; virtual;
+ function GetOldCANT_PENDIENTE_PEDIRIsNull: Boolean; virtual;
+ procedure SetCANT_PENDIENTE_PEDIRValue(const aValue: Currency); virtual;
+ procedure SetCANT_PENDIENTE_PEDIRIsNull(const aValue: Boolean); virtual;
+ function GetCONCEPTOValue: String; virtual;
+ function GetCONCEPTOIsNull: Boolean; virtual;
+ function GetOldCONCEPTOValue: String; virtual;
+ function GetOldCONCEPTOIsNull: Boolean; virtual;
+ procedure SetCONCEPTOValue(const aValue: String); virtual;
+ procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual;
+ function GetIMPORTE_UNIDADValue: Currency; virtual;
+ function GetIMPORTE_UNIDADIsNull: Boolean; virtual;
+ function GetOldIMPORTE_UNIDADValue: Currency; virtual;
+ function GetOldIMPORTE_UNIDADIsNull: Boolean; virtual;
+ procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual;
+ procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual;
+ function GetDESCUENTOValue: Float; virtual;
+ function GetDESCUENTOIsNull: Boolean; virtual;
+ function GetOldDESCUENTOValue: Float; virtual;
+ function GetOldDESCUENTOIsNull: Boolean; virtual;
+ procedure SetDESCUENTOValue(const aValue: Float); virtual;
+ procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual;
+ function GetIMPORTE_TOTALValue: Currency; virtual;
+ function GetIMPORTE_TOTALIsNull: Boolean; virtual;
+ function GetOldIMPORTE_TOTALValue: Currency; virtual;
+ function GetOldIMPORTE_TOTALIsNull: Boolean; virtual;
+ procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual;
+ procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual;
+
+ { Properties }
+ property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue;
+ property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull;
+ property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue;
+ property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull;
+ property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue;
+ property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull;
+ property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue;
+ property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull;
+ property CANT_PEDIDA_CLIENTE : Currency read GetCANT_PEDIDA_CLIENTEValue write SetCANT_PEDIDA_CLIENTEValue;
+ property CANT_PEDIDA_CLIENTEIsNull : Boolean read GetCANT_PEDIDA_CLIENTEIsNull write SetCANT_PEDIDA_CLIENTEIsNull;
+ property OldCANT_PEDIDA_CLIENTE : Currency read GetOldCANT_PEDIDA_CLIENTEValue;
+ property OldCANT_PEDIDA_CLIENTEIsNull : Boolean read GetOldCANT_PEDIDA_CLIENTEIsNull;
+ property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
+ property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
+ property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue;
+ property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull;
+ property CANT_PEDIDA_PROVEEDOR : Integer read GetCANT_PEDIDA_PROVEEDORValue write SetCANT_PEDIDA_PROVEEDORValue;
+ property CANT_PEDIDA_PROVEEDORIsNull : Boolean read GetCANT_PEDIDA_PROVEEDORIsNull write SetCANT_PEDIDA_PROVEEDORIsNull;
+ property OldCANT_PEDIDA_PROVEEDOR : Integer read GetOldCANT_PEDIDA_PROVEEDORValue;
+ property OldCANT_PEDIDA_PROVEEDORIsNull : Boolean read GetOldCANT_PEDIDA_PROVEEDORIsNull;
+ property CANT_PENDIENTE_PEDIR : Currency read GetCANT_PENDIENTE_PEDIRValue write SetCANT_PENDIENTE_PEDIRValue;
+ property CANT_PENDIENTE_PEDIRIsNull : Boolean read GetCANT_PENDIENTE_PEDIRIsNull write SetCANT_PENDIENTE_PEDIRIsNull;
+ property OldCANT_PENDIENTE_PEDIR : Currency read GetOldCANT_PENDIENTE_PEDIRValue;
+ property OldCANT_PENDIENTE_PEDIRIsNull : Boolean read GetOldCANT_PENDIENTE_PEDIRIsNull;
+ property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue;
+ property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull;
+ property OldCONCEPTO : String read GetOldCONCEPTOValue;
+ property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull;
+ property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue;
+ property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull;
+ property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue;
+ property OldIMPORTE_UNIDADIsNull : Boolean read GetOldIMPORTE_UNIDADIsNull;
+ property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue;
+ property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
+ property OldDESCUENTO : Float read GetOldDESCUENTOValue;
+ property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull;
+ property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
+ property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull;
+ property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue;
+ property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
@@ -2681,7 +2872,7 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvID_PROVEEDOR] := Null;
end;
-function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetCANT_PEDIDA_PROVEEDORValue: Currency;
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetCANT_PEDIDA_PROVEEDORValue: Integer;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR];
end;
@@ -2691,7 +2882,7 @@ begin
result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR]);
end;
-function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldCANT_PEDIDA_PROVEEDORValue: Currency;
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldCANT_PEDIDA_PROVEEDORValue: Integer;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR];
end;
@@ -2701,7 +2892,7 @@ begin
result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR]);
end;
-procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetCANT_PEDIDA_PROVEEDORValue(const aValue: Currency);
+procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PEDIDA_PROVEEDOR] := aValue;
end;
@@ -2743,6 +2934,452 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCANT_PENDIENTE_PEDIR] := Null;
end;
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetCONCEPTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetCONCEPTOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldCONCEPTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetCONCEPTOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvCONCEPTO] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_UNIDAD] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetDESCUENTOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvDESCUENTO] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvIMPORTE_TOTAL] := Null;
+end;
+
+
+{ TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules }
+constructor TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetID_PEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldID_PEDIDOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PEDIDO] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetID_ARTICULOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldID_ARTICULOValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_ARTICULO] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetCANT_PEDIDA_CLIENTEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetCANT_PEDIDA_CLIENTEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldCANT_PEDIDA_CLIENTEValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldCANT_PEDIDA_CLIENTEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetCANT_PEDIDA_CLIENTEValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetCANT_PEDIDA_CLIENTEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_CLIENTE] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetID_PROVEEDORValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosID_PROVEEDOR] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetCANT_PEDIDA_PROVEEDORValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetCANT_PEDIDA_PROVEEDORIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldCANT_PEDIDA_PROVEEDORValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldCANT_PEDIDA_PROVEEDORIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetCANT_PEDIDA_PROVEEDORValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetCANT_PEDIDA_PROVEEDORIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PEDIDA_PROVEEDOR] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetCANT_PENDIENTE_PEDIRValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetCANT_PENDIENTE_PEDIRIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldCANT_PENDIENTE_PEDIRValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldCANT_PENDIENTE_PEDIRIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetCANT_PENDIENTE_PEDIRValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetCANT_PENDIENTE_PEDIRIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCANT_PENDIENTE_PEDIR] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetCONCEPTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetCONCEPTOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldCONCEPTOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetCONCEPTOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosCONCEPTO] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_UNIDAD] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetDESCUENTOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldDESCUENTOValue: Float;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDESCUENTO] := Null;
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL]);
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL];
+end;
+
+function TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL]);
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL] := aValue;
+end;
+
+procedure TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosIMPORTE_TOTAL] := Null;
+end;
+
initialization
RegisterBusinessProcessorRules(RID_ListaAnosPedidosDelta, TListaAnosPedidosBusinessProcessorRules);
@@ -2750,5 +3387,6 @@ initialization
RegisterBusinessProcessorRules(RID_PedidosCliente_DetallesDelta, TPedidosCliente_DetallesBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_PedidosCliente_Articulos_PendientesDelta, TPedidosCliente_Articulos_PendientesBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_PedidoCliente_ArticulosPendientesPedirAProvDelta, TPedidoCliente_ArticulosPendientesPedirAProvBusinessProcessorRules);
+ RegisterBusinessProcessorRules(RID_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDelta, TPedidoCliente_ArticulosPendientesPedirAProvNoArticulosBusinessProcessorRules);
end.
diff --git a/Source/Modulos/Pedidos de cliente/Model/uBizPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Model/uBizPedidosCliente.pas
index 3a82230..1f82844 100644
--- a/Source/Modulos/Pedidos de cliente/Model/uBizPedidosCliente.pas
+++ b/Source/Modulos/Pedidos de cliente/Model/uBizPedidosCliente.pas
@@ -14,6 +14,7 @@ const
SITUACION_PEDIDO_PENDIENTE = 'PENDIENTE';
SITUACION_PEDIDO_ENPROCESO = 'EN PROCESO';
SITUACION_PEDIDO_SERVIDO = 'SERVIDO';
+ SITUACION_PEDIDO_ALBARANADO = 'ALBARANADO';
type
IBizPedidoCliente = interface(IPedidosCliente)
@@ -158,8 +159,9 @@ begin
with Result do
begin
Add(SITUACION_PEDIDO_PENDIENTE);
- Add(SITUACION_PEDIDO_ENPROCESO);
- Add(SITUACION_PEDIDO_SERVIDO);
+// Add(SITUACION_PEDIDO_ENPROCESO);
+// Add(SITUACION_PEDIDO_SERVIDO);
+ Add(SITUACION_PEDIDO_ALBARANADO);
end;
end;
diff --git a/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc
index f6f6002..51d14a8 100644
--- a/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc
+++ b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc
@@ -14,4 +14,4 @@ END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Plugin\uPluginPedidosCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Plugin\PedidosCliente_plugin.RES */
-/* c:\temp\dtf124.tmp */
+/* c:\temp\dtf8CF.tmp */
diff --git a/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas
index 16f16e8..c129044 100644
--- a/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas
+++ b/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas
@@ -53,7 +53,7 @@ end;
constructor TPluginPedidosCliente.Create(AOwner: TComponent);
begin
inherited;
- ModuleName := MODULENAME_PEDIDOS_PROVEEDOR;
+ ModuleName := MODULENAME_PEDIDOS_CLIENTE;
uPedidosClienteViewRegister.RegisterViews;
end;
diff --git a/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm
index a20dc76..5eae702 100644
--- a/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm
+++ b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm
@@ -591,16 +591,23 @@ object srvPedidosCliente: TsrvPedidosCliente
Params = <
item
Name = 'ID'
- Value = '41'
+ Value = '1138'
ParamType = daptInput
end>
Statements = <
item
Connection = 'IBX'
SQL =
- 'SELECT'#10' ID_PEDIDO, ID_ARTICULO, CANT_PEDIDA_CLIENTE, ID_PROVE' +
- 'EDOR,'#10' CANT_PEDIDA_PROVEEDOR, CANT_PENDIENTE_PEDIR'#10' FROM'#10' ' +
- ' V_PED_CLI_ART_PEND_PEDIR_PROV'#10' WHERE ID_PEDIDO = :ID'#10
+ 'SELECT PEDIDOS_CLIENTE_DETALLES.id_pedido, PEDIDOS_CLIENTE_DETA' +
+ 'LLES.id_articulo,'#10'PEDIDOS_CLIENTE_DETALLES.CANTIDAD as CANT_PEDI' +
+ 'DA_CLIENTE, articulos.id_PROVEEDOR,'#10'0 as CANT_PEDIDA_PROVEEDOR, ' +
+ 'PEDIDOS_CLIENTE_DETALLES.CANTIDAD as CANT_PENDIENTE_PEDIR,'#10'PEDID' +
+ 'OS_CLIENTE_DETALLES.CONCEPTO,'#10'PEDIDOS_CLIENTE_DETALLES.importe_u' +
+ 'nidad, PEDIDOS_CLIENTE_DETALLES.descuento, PEDIDOS_CLIENTE_DETAL' +
+ 'LES.importe_total'#10#10'FROM PEDIDOS_CLIENTE_DETALLES'#10'left join artic' +
+ 'ulos on (articulos.id = PEDIDOS_CLIENTE_DETALLES.id_articulo)'#10'wh' +
+ 'ere id_pedido =:ID'#10'and PEDIDOS_CLIENTE_DETALLES.id_articulo is n' +
+ 'ot null'#10'order by ARTICULOS.ID_PROVEEDOR'#10#10#10#10#10#10
StatementType = stSQL
ColumnMappings = <
item
@@ -626,6 +633,22 @@ object srvPedidosCliente: TsrvPedidosCliente
item
DatasetField = 'CANT_PENDIENTE_PEDIR'
TableField = 'CANT_PENDIENTE_PEDIR'
+ end
+ item
+ DatasetField = 'CONCEPTO'
+ TableField = 'CONCEPTO'
+ end
+ item
+ DatasetField = 'IMPORTE_UNIDAD'
+ TableField = 'IMPORTE_UNIDAD'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL'
+ TableField = 'IMPORTE_TOTAL'
end>
end>
Name = 'PedidoCliente_ArticulosPendientesPedirAProv'
@@ -649,11 +672,137 @@ object srvPedidosCliente: TsrvPedidosCliente
end
item
Name = 'CANT_PEDIDA_PROVEEDOR'
- DataType = datCurrency
+ DataType = datInteger
end
item
Name = 'CANT_PENDIENTE_PEDIR'
DataType = datCurrency
+ end
+ item
+ Name = 'CONCEPTO'
+ DataType = datString
+ Size = 2000
+ end
+ item
+ Name = 'IMPORTE_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ end
+ item
+ Name = 'IMPORTE_TOTAL'
+ DataType = datCurrency
+ end>
+ end
+ item
+ Params = <
+ item
+ Name = 'ID'
+ Value = '1138'
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ SQL =
+ 'SELECT PEDIDOS_CLIENTE_DETALLES.id_pedido, PEDIDOS_CLIENTE_DETA' +
+ 'LLES.id_articulo,'#10'PEDIDOS_CLIENTE_DETALLES.CANTIDAD as CANT_PEDI' +
+ 'DA_CLIENTE, articulos.id_PROVEEDOR,'#10'0 as CANT_PEDIDA_PROVEEDOR, ' +
+ 'PEDIDOS_CLIENTE_DETALLES.CANTIDAD as CANT_PENDIENTE_PEDIR,'#10'PEDID' +
+ 'OS_CLIENTE_DETALLES.CONCEPTO,'#10'PEDIDOS_CLIENTE_DETALLES.importe_u' +
+ 'nidad, PEDIDOS_CLIENTE_DETALLES.descuento, PEDIDOS_CLIENTE_DETAL' +
+ 'LES.importe_total'#10#10'FROM PEDIDOS_CLIENTE_DETALLES'#10'left join artic' +
+ 'ulos on (articulos.id = PEDIDOS_CLIENTE_DETALLES.id_articulo)'#10'wh' +
+ 'ere id_pedido =:ID'#10'and PEDIDOS_CLIENTE_DETALLES.id_articulo is n' +
+ 'ull'#10'order by ARTICULOS.ID_PROVEEDOR'#10#10#10#10#10#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ID_ARTICULO'
+ TableField = 'ID_ARTICULO'
+ end
+ item
+ DatasetField = 'ID_PEDIDO'
+ TableField = 'ID_PEDIDO'
+ end
+ item
+ DatasetField = 'CANT_PEDIDA_CLIENTE'
+ TableField = 'CANT_PEDIDA_CLIENTE'
+ end
+ item
+ DatasetField = 'ID_PROVEEDOR'
+ TableField = 'ID_PROVEEDOR'
+ end
+ item
+ DatasetField = 'CANT_PEDIDA_PROVEEDOR'
+ TableField = 'CANT_PEDIDA_PROVEEDOR'
+ end
+ item
+ DatasetField = 'CANT_PENDIENTE_PEDIR'
+ TableField = 'CANT_PENDIENTE_PEDIR'
+ end
+ item
+ DatasetField = 'CONCEPTO'
+ TableField = 'CONCEPTO'
+ end
+ item
+ DatasetField = 'IMPORTE_UNIDAD'
+ TableField = 'IMPORTE_UNIDAD'
+ end
+ item
+ DatasetField = 'DESCUENTO'
+ TableField = 'DESCUENTO'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL'
+ TableField = 'IMPORTE_TOTAL'
+ end>
+ end>
+ Name = 'PedidoCliente_ArticulosPendientesPedirAProvNoArticulos'
+ Fields = <
+ item
+ Name = 'ID_PEDIDO'
+ DataType = datInteger
+ end
+ item
+ Name = 'ID_ARTICULO'
+ DataType = datInteger
+ DictionaryEntry = 'PedidosProveedor_Detalles_ID_ARTICULO'
+ end
+ item
+ Name = 'CANT_PEDIDA_CLIENTE'
+ DataType = datCurrency
+ end
+ item
+ Name = 'ID_PROVEEDOR'
+ DataType = datInteger
+ end
+ item
+ Name = 'CANT_PEDIDA_PROVEEDOR'
+ DataType = datInteger
+ end
+ item
+ Name = 'CANT_PENDIENTE_PEDIR'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CONCEPTO'
+ DataType = datString
+ Size = 2000
+ end
+ item
+ Name = 'IMPORTE_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'DESCUENTO'
+ DataType = datFloat
+ end
+ item
+ Name = 'IMPORTE_TOTAL'
+ DataType = datCurrency
end>
end>
JoinDataTables = <>
diff --git a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc
index b8cfd49..523820a 100644
--- a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc
+++ b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc
@@ -26,4 +26,4 @@ END
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorElegirArticulosPedidoCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\uEditorDireccionEntregaPedidoCliente.dfm */
/* C:\Codigo\Source\Modulos\Pedidos de cliente\Views\PedidosCliente_view.RES */
-/* c:\temp\dtf122.tmp */
+/* c:\temp\dtf8CD.tmp */
diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm
index cb8a6d1..5ba3b8c 100644
--- a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm
+++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm
@@ -5,6 +5,7 @@ inherited fEditorPedidosCliente: TfEditorPedidosCliente
ClientWidth = 700
Position = poDesigned
ExplicitWidth = 708
+ ExplicitHeight = 240
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
@@ -156,22 +157,26 @@ inherited fEditorPedidosCliente: TfEditorPedidosCliente
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 243
+ Width = 243
end
inherited edtFechaFinFiltro: TcxDateEdit
- Left = 233
+ Left = 244
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
- ExplicitLeft = 233
+ ExplicitLeft = 244
+ ExplicitWidth = 482
+ Width = 482
end
inherited eLista: TcxComboBox
- Left = 577
+ Left = 605
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
- ExplicitLeft = 577
+ ExplicitLeft = 605
ExplicitWidth = 140
Width = 140
end
@@ -2034,10 +2039,7 @@ inherited fEditorPedidosCliente: TfEditorPedidosCliente
Value = 100
Default = True
Info.Strings = (
-
- 'Se generar'#225' un albar'#225'n de cliente basado en este pedido. Solo se' +
- ' tendr'#225'n en cuenta aquellos art'#237'culos que existan en el cat'#225'logo' +
- ' y sean inventariables.'
+ 'Se generar'#225' un albar'#225'n de cliente basado en este pedido.'
'')
end
item
@@ -2046,7 +2048,7 @@ inherited fEditorPedidosCliente: TfEditorPedidosCliente
Info.Strings = (
'Generar pedidos a los proveedores con los art'#237'culos de este pedi' +
- 'do que existan en el cat'#225'logo y sean inventariables.')
+ 'do.')
end>
ButtonBar.Buttons = [cbCancel]
MainIcon = tdiCustom
diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas
index cffb950..720581b 100644
--- a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas
+++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas
@@ -210,7 +210,7 @@ begin
(Sender as TAction).Enabled := HayDatos and
not (ViewGrid.NumSeleccionados > 1) and
ViewGrid.esSeleccionCeldaDatos and
- (FPedidos.SITUACION <> SITUACION_PEDIDO_SERVIDO);
+ ((FPedidos.SITUACION <> SITUACION_PEDIDO_SERVIDO) and (FPedidos.SITUACION <> SITUACION_PEDIDO_ALBARANADO));
end;
procedure TfEditorPedidosCliente.actInformesExecute(Sender: TObject);
diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm
index bd08e96..681f50f 100644
--- a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm
+++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm
@@ -97,6 +97,10 @@ inherited frViewPedidosCliente: TfrViewPedidosCliente
DataBinding.FieldName = 'FECHA_PREVISTA_ENVIO'
Width = 44
end
+ object cxGridViewREFERENCIA_CLIENTE: TcxGridDBColumn
+ Caption = 'Ref. Cliente'
+ DataBinding.FieldName = 'REFERENCIA_CLIENTE'
+ end
object cxGridViewNOMBRE: TcxGridDBColumn
Caption = 'Cliente'
DataBinding.FieldName = 'NOMBRE'
@@ -155,10 +159,7 @@ inherited frViewPedidosCliente: TfrViewPedidosCliente
Caption = 'Pendientes'
end
object cxGridLevel2: TcxGridLevel
- Caption = 'En proceso'
- end
- object cxGridLevel3: TcxGridLevel
- Caption = 'Servidos'
+ Caption = 'Albaranado'
end
end
inherited frViewFiltroBase1: TfrViewFiltroBase
@@ -202,6 +203,8 @@ inherited frViewPedidosCliente: TfrViewPedidosCliente
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 673
+ ExplicitWidth = 215
+ Width = 215
end
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas
index d632a81..08b07ae 100644
--- a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas
+++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas
@@ -26,7 +26,6 @@ type
cxGridDBTableView1: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridLevel2: TcxGridLevel;
- cxGridLevel3: TcxGridLevel;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn;
cxGridViewNOMBRE: TcxGridDBColumn;
@@ -50,6 +49,7 @@ type
cxGridViewINCIDENCIAS: TcxGridDBColumn;
cxGridViewNUM_COPIAS: TcxGridDBColumn;
cxGridViewNUM_CORREOS: TcxGridDBColumn;
+ cxGridViewREFERENCIA_CLIENTE: TcxGridDBColumn;
procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel:
TcxGridLevel);
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
@@ -146,8 +146,9 @@ begin
case cxGrid.ActiveLevel.Index of
1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_PENDIENTE, SITUACION_PEDIDO_PENDIENTE);
- 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_ENPROCESO, SITUACION_PEDIDO_ENPROCESO);
- 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_SERVIDO, SITUACION_PEDIDO_SERVIDO);
+ 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_ALBARANADO, SITUACION_PEDIDO_ALBARANADO);
+// 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_ENPROCESO, SITUACION_PEDIDO_ENPROCESO);
+// 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_SERVIDO, SITUACION_PEDIDO_SERVIDO);
end;
end;
@@ -275,6 +276,8 @@ begin
else if ASituacion = SITUACION_PEDIDO_ENPROCESO then
AStyle := cxStyleENPROCESO
else if ASituacion = SITUACION_PEDIDO_SERVIDO then
+ AStyle := cxStyleSERVIDO
+ else if ASituacion = SITUACION_PEDIDO_ALBARANADO then
AStyle := cxStyleSERVIDO;
end;
end;
diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas
index 83bac4f..64a4051 100644
--- a/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas
+++ b/Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas
@@ -69,6 +69,70 @@ begin
AAlbaran.FECHA_PREVISTA_ENVIO := APedido.FECHA_PREVISTA_ENVIO;
end;
+procedure CopiarDetallesAAlbaran(
+ APedido: IBizPedidoCliente;
+ AAlbaran: IBizAlbaranCliente;
+ AArticulos: IBizDetallesPedidoCliente);
+var
+ i : integer;
+ ADetalles : IBizDetallesAlbaranCliente;
+ ADetallesController : IDetallesAlbaranClienteController;
+begin
+ if not Assigned(AAlbaran) then
+ raise Exception.Create ('Albaran no asignado(CopiarDetallesAAlbaran)');
+
+ if not Assigned(APedido) then
+ raise Exception.Create ('Pedido no asignado (CopiarDetallesAAlbaran)');
+
+ if not Assigned(AArticulos) then
+ raise Exception.Create ('Artículos no asignado (CopiarDetallesAAlbaran)');
+
+ if not AArticulos.DataTable.Active then
+ AArticulos.DataTable.Active := True;
+
+ // El contrato tiene que venir ya abierto y posicionado donde hay que copiar
+
+ ADetalles := AAlbaran.Detalles;
+ ADetallesController := TDetallesAlbaranClienteController.Create;
+ try
+ //OJO IMPORTANTE
+ //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para
+ //obligarle siempre a recalcular los detalles una sola vez
+ ADetallesController.BeginUpdate(ADetalles);
+
+ AArticulos.DataTable.First;
+ for i := 0 to AArticulos.DataTable.RecordCount - 1 do
+ begin
+ ADetallesController.Add(ADetalles, AArticulos.TIPO_DETALLE);
+ ADetalles.Edit;
+ ADetalles.REFERENCIA := AArticulos.REFERENCIA;
+ ADetalles.ID_ARTICULO := AArticulos.ID_ARTICULO;
+// if (AArticulos.PROPIEDAD <> '') then
+// ADetalles.CONCEPTO := AArticulos.PROPIEDAD + ' '+ AArticulos.CONCEPTO
+// else
+ ADetalles.CONCEPTO := AArticulos.CONCEPTO;
+
+ if not AArticulos.CANTIDADIsNull then
+ ADetalles.CANTIDAD := AArticulos.CANTIDAD;
+ if not AArticulos.IMPORTE_UNIDADIsNull then
+ ADetalles.IMPORTE_UNIDAD := AArticulos.IMPORTE_UNIDAD;
+ if not AArticulos.IMPORTE_TOTALIsNull then
+ ADetalles.IMPORTE_TOTAL := AArticulos.IMPORTE_TOTAL;
+ if not AArticulos.DESCUENTOIsNull then
+ ADetalles.DESCUENTO := AArticulos.DESCUENTO;
+ if not AArticulos.IMPORTE_PORTEIsNull then
+ ADetalles.IMPORTE_PORTE := AArticulos.IMPORTE_PORTE;
+ ADetalles.VISIBLE := AArticulos.VISIBLE;
+ ADetalles.REFERENCIA_PROVEEDOR := AArticulos.REFERENCIA_PROVEEDOR;
+ ADetalles.Post;
+ AArticulos.Next;
+ end;
+ finally
+ ADetallesController.EndUpdate(ADetalles);
+ ADetallesController := NIL;
+ end;
+end;
+
procedure CopiarArticulosPendAAlbaran(
APedido: IBizPedidoCliente;
AAlbaran: IBizAlbaranCliente;
@@ -206,6 +270,7 @@ begin
Inicializar;
try
+{
AArticulosPendientes := APedidosClienteController.ArticulosPendientes(APedido.ID);
if not Assigned(AArticulosPendientes) then
raise Exception.Create('Error al recuperar los artículos sin albarán del pedido (GenerarAlbaranCli)');
@@ -216,10 +281,12 @@ begin
ShowWarningMessage('Generar albarán a partir del pedido', 'Todos los artículos de este pedido ya figuran en uno o más albaranes de cliente. Por lo que no se pueden generar nuevos albaranes para este pedido');
Exit; // Aunque es un exit, se ejecuta la parte del finally antes de salir.
end;
+}
AuxAlbaran := AAlbaranesClienteController.Nuevo;
CopiarPedidoAAlbaran(APedido, AuxAlbaran);
- CopiarArticulosPendAAlbaran(APedido, AuxAlbaran, AArticulosPendientes);
+// CopiarArticulosPendAAlbaran(APedido, AuxAlbaran, AArticulosPendientes);
+ CopiarDetallesAAlbaran(APedido, AuxAlbaran, APedido.Detalles);
//Sustituir por if de guardar
if AAlbaranesClienteController.Guardar(AuxAlbaran) then
@@ -246,7 +313,7 @@ begin
Result := True;
finally
- AArticulosPendientes := NIL;
+// AArticulosPendientes := NIL;
if Assigned(APedidosClienteController) then
Finalizar;
end;
diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.dfm b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.dfm
index bd0f9f2..421c8ad 100644
--- a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.dfm
+++ b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.dfm
@@ -302,4 +302,320 @@ object dmGenerarPedidosProv: TdmGenerarPedidosProv
Left = 40
Top = 16
end
+ object JsListaArticulosSinProveedor: TJSDialog
+ Glyph.Data = {
+ 0B546478504E47496D61676589504E470D0A1A0A0000000D494844520000001C
+ 0000001C0806000000720DDF94000000017352474200AECE1CE9000000046741
+ 4D410000B18F0BFC6105000000206348524D00007A26000080840000FA000000
+ 80E8000075300000EA6000003A98000017709CBA513C00000009704859730000
+ 0AEA00000AEA0150CCEFBE000004CE49444154484BBDD67F50D3751CC7F12FE3
+ 57DA2576E41919D28F3941C656271A982C08952B03059193CC5444D24E44C008
+ 8F08C323E48708D655C60F393DA5D3ABCCC34A0B4DB3E4C7F8A10213D94070FC
+ DA2F366243FFE8FBEAF3FD22935F1B5B1771F7FD737BECF979BFF7191400CADA
+ BFB4348AD372C4A390BCD2C6DAD752FF06D47FB6709DEC9B80BF8F25506BA71D
+ 3C7D9AB2D51DE7D7EB15B9F82163A618A4D62AD4DA4255DEA270437D0C8634D9
+ 905C5C4E97245261D3068A8F52F6DAE35EF50FB45F41AF4C81B6633BA974A849
+ 7B8DB2B318B5A6507998BF565F17431BD49918542463B0772F1ACBBDE8A2382B
+ 6669290866762784E207DA2F8DD85F3D7BA069DB84739F3AD6595C69293890E7
+ B1C650B71D72E97EECDA198C8D914178FFBD37D07E2B1A4DE59E288AA7D65974
+ AC1683A59EB54C5DC627E1F0F7F787482482AFAF2F529383A06E8DC0B90C879B
+ FF193870C83DD450174316251DE9A96146CCDBDB1B49F101E86FDF04C979771C
+ DD4D6D98129DAA90F99E694B1789EF933A6666FB53D6B0650C2610089018EB47
+ E61809A56435CE673ADE22B790F98D9D0A5465F343F5B5D1F460DFC718E8DA85
+ 93C5E146CCC3C303854702A1964690630D43D3D9F9F4D77154A4D94A732073AB
+ 684BBDC4F7359FB3984EBE0395156FB3650CB66001170D5742584C7527047D4D
+ 2BF063D6638DA7D7530E265173A0F2B070ADBE761B3DD89BC262DACE6828A59B
+ B174091F5C2E173E4B79464CD9B21A0A491024E52FD2457BA84D5683E453DAEA
+ 8E09AA86D405464C7B770BBB205B367AC3CDCD0D3BA3846CD908D6D71C88EEBA
+ 25F8E9A0BDC464A5A9425DAEE75B86DA28B228C96CD908A69145223FD30F2E2E
+ 2E28CCF781F2F670595FD3EBE86D14A1E7A62F9ACFCE45713CB575D2CAC940E6
+ F76EA0445033A4CA9F80A9A5EBF1F39940383B3BA3E23BD128CC8FC57A1A9640
+ 5EBD0817B2EC5BD3269BE564A02687BFDA20DE4A0F74278D296330756B287A9B
+ 83F1F4DCD9E8695CF9B0EC11D65DFF12BA6A3DD1FCBD335D1CCFD936A1723C48
+ FE01B0D116F26B87D4F9E86767F60E34B20D64F5D74345307666B7DF04F779A7
+ 3158778337463079CD42745E77C3C56CFBF68258CA710C3A1E54667985E8C551
+ F4803CD124A690AC328BDDAB7A019D95F349E52CBA3481B3D324C8DC2ABA22CF
+ AA21551E6DAA4C7E63150EA404206EC732A4EF5B8CF6EAB1652358C79F2E68BF
+ EA4CFF9A632F4B8BA1661AD1D1859A3CAF357A323BDDBDDD638FB165F81899B2
+ FCCC00F66A130A85E0F178484DE0B13393D7F0301ABB7B6D0EDA7F9F8DE66F67
+ D027F67262278097C91DD85FE2556950E48CC3828D18B3FAFBE29719B179F3E6
+ 6173C43393604FB158DB95C721AD704045AE5D475614F5048B8E146A0EBF1CA2
+ AFDE426B3B63C982840F2F48CB682C00BDB7FC5090E14DAEB4056030272727A4
+ C6CD1D57F608935D7684F412078D676CE953499CDD4690B955B4C582EB064596
+ 196C39F99EF980D9C6535F78E040921B4A0E3DFB10730533B3BBD7087675B86C
+ 0493565068FD85C2A543765D6C2553A8C91104EBAEAEA4552DEF928A15E8BD19
+ 809E1B22F2E6AF92ABEA1532A3C5E4D884B857CD4767953B59792E3AFE788E00
+ AEE4E85C0830076DBF3D09D9A559E4086710C001772E7270E702657C9ACA6CE9
+ B20F391FB0E0ED6CD7ECB28F6C6A4EA650D3FA14C7DB9C65C1FFF3F90772E0BD
+ 22E5E8ABC20000000049454E44AE426082}
+ Instruction.Text = 'Lista de art'#237'culos no incluidos, por no tener proveedor asignado'
+ Instruction.Glyph.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
+ 00001C0806000000720DDF940000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14
+ 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD
+ 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2
+ 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD
+ B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010
+ 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3
+ 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045
+ A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8
+ 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281
+ 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87
+ A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F
+ 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B
+ EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F
+ 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8
+ 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10
+ 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8
+ CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF
+ 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32
+ F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF
+ 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165
+ 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF
+ 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2
+ ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312
+ FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312
+ 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA
+ 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082}
+ Instruction.Icon = tdiCustom
+ ButtonBar.Buttons = [cbOK]
+ ButtonBar.Cancel = cbOK
+ ButtonBar.UseCancel = False
+ MainIcon = tdiCustom
+ Title = 'FactuGES'
+ Position = dpMainFormCenter
+ Icon.Data = {
+ 0000010003002020100001000400E8020000360000002020000001000800A808
+ 00001E0300002020000001002000A8100000C60B000028000000200000004000
+ 0000010004000000000000020000000000000000000000000000000000000000
+ 000000008000008000000080800080000000800080008080000080808000C0C0
+ C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000
+ 0000000000000000000000000000000008777777777777777777777700000000
+ 0877767777677776777767760000000008F88888888888888888888700000000
+ 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000
+ 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000
+ 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000
+ 08F8676767677677677658E50000000008FF8888888887878787888700000000
+ 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000
+ 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000
+ 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000
+ 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7
+ 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087
+ B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB
+ B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008
+ B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B
+ B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0
+ 08BB883B78888788787700000000000000B9000000000000000000000000FFFF
+ FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800
+ 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800
+ 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000
+ 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800
+ 0000200000004000000001000800000000000004000000000000000000000001
+ 00000001000000000000694731007C5D49007E604C0081635000826451008567
+ 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72
+ 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84
+ 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A
+ 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A
+ E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC
+ FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6
+ F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE
+ C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD
+ E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC
+ F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8
+ F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE
+ FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8
+ F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1
+ F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A
+ 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4
+ 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8
+ 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF
+ A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC
+ 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5
+ AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4
+ 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6
+ BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8
+ B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7
+ F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9
+ C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1
+ C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA
+ D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2
+ DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3
+ FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE
+ EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4
+ F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D
+ 0D0D0000000000000000009C9C19191919191919191919191919191919191919
+ 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0
+ 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB
+ 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0
+ 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0
+ 9007000000000000000000AFF0D5017783838386868686869099909999907BB0
+ 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA
+ 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0
+ 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3
+ 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB
+ 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2
+ 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2
+ 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5
+ 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5
+ 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2
+ 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2
+ 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5
+ 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2
+ 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5
+ 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA
+ 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5
+ 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675
+ 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101
+ 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0
+ A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB
+ 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514
+ 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F
+ 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300
+ 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000
+ 0000000000000000000000003227000000000000000000000000000000000000
+ 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800
+ 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800
+ 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000
+ 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800
+ 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000007067
+ 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355
+ 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355
+ 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB
+ A070000000000000000000000000000000000000000000000000000000005E54
+ 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A
+ 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A
+ 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1
+ 967F000000000000000000000000000000000000000000000000000000006055
+ 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7
+ BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC
+ B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006056
+ 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE
+ D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB
+ C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006155
+ 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0
+ DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD
+ C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006157
+ 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3
+ CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4
+ B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006256
+ 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3
+ 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8
+ 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006256
+ 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2
+ CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006256
+ 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE
+ C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006257
+ 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60
+ 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C
+ 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006357
+ 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1
+ A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4
+ 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006357
+ 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4
+ 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1
+ DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006458
+ 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7
+ 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1
+ DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006458
+ 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5
+ F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3
+ DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006459
+ 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED
+ EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE
+ D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006559
+ 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D
+ 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C
+ 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006559
+ 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC
+ C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6
+ F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1
+ 967E00000000000000000000000000000000000000000000000000000000685A
+ 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD
+ C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1
+ 967E00000000000000000000000000000000007792910072A7A3001E33366957
+ 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C
+ A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85
+ 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1
+ 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90
+ A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4
+ CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99
+ 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1
+ 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0
+ FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA
+ B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6
+ F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1
+ 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE
+ F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB
+ 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6
+ F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1
+ 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB
+ FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8
+ FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7
+ F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1
+ 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD
+ FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0
+ FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA
+ F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3
+ 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD
+ FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1
+ F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC
+ FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2
+ 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8
+ FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2
+ FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE
+ FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985
+ 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9
+ FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF
+ FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000
+ 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9
+ FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000
+ 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD
+ BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4
+ F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6
+ E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000
+ 0000000000000000000000000000000000000075B7AF0099C7C500323E425442
+ 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85
+ A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89
+ 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000
+ 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000
+ 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000
+ 0007C0000007C000000700000007000000070000000700000007C000000FC000
+ 001F8000003F800000FFF8FFFFFF}
+ Width = 450
+ Left = 40
+ Top = 72
+ end
end
diff --git a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.pas b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.pas
index 0139517..b27f749 100644
--- a/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.pas
+++ b/Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.pas
@@ -3,11 +3,12 @@ unit uGenerarPedidosProvUtils;
interface
uses
- SysUtils, Classes, uBizPedidosCliente, pngimage, JSDialog;
+ SysUtils, Classes, uBizPedidosCliente, pngimage, JSDialog, dxGDIPlusClasses;
type
TdmGenerarPedidosProv = class(TDataModule)
JsListaPedidosGenerados: TJSDialog;
+ JsListaArticulosSinProveedor: TJSDialog;
end;
function GenerarPedidosProv(const IDPedido : Integer) : Boolean; overload;
@@ -19,10 +20,10 @@ implementation
{$R *.dfm}
uses
- uDialogUtils,
+ uDialogUtils, Windows, uRTFUtils,
uPedidosClienteController, uPedidosProveedorController, uProveedoresController,
uDetallesPedidoProveedorController, uControllerDetallesBase,
- uBizPedidosProveedor, uBizContactos, schPedidosProveedorClient_Intf;
+ uBizPedidosProveedor, uBizDetallesPedidoProveedor, uBizContactos, schPedidosProveedorClient_Intf;
var
dmGenerarPedidosProv: TdmGenerarPedidosProv;
@@ -50,6 +51,49 @@ begin
AProveedoresController := nil;
end;
+procedure AnadirLineasNoArticulos(AOrigen: IBizPedidoClienteArticulosPendientesPedirAProv;
+ ADestino : IBizDetallesPedidoProveedor);
+var
+ i : integer;
+begin
+ if not Assigned(AOrigen) then
+ raise Exception.Create ('Origen no asignado (AnadirLineasNoArticulos)');
+
+ if not Assigned(ADestino) then
+ raise Exception.Create ('Destino no asignado (AnadirLineasNoArticulos)');
+
+ if not AOrigen.DataTable.Active then
+ AOrigen.DataTable.Active := True;
+
+ if not ADestino.DataTable.Active then
+ ADestino.DataTable.Active := True;
+
+ try
+ //OJO IMPORTANTE
+ //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para
+ //obligarle siempre a recalcular los detalles una sola vez
+ ADetallesPedidosProvController.BeginUpdate(ADestino);
+
+ AOrigen.DataTable.First;
+ for i := 0 to AOrigen.DataTable.RecordCount - 1 do
+ begin
+ ADetallesPedidosProvController.Add(ADestino, TIPO_DETALLE_CONCEPTO);
+ ADestino.Edit;
+ ADestino.CONCEPTO := AOrigen.CONCEPTO;
+ ADestino.CANTIDAD := AOrigen.CANT_PENDIENTE_PEDIR;
+// ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD;
+// ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL;
+// ADestino.DESCUENTO := AOrigen.DESCUENTO;
+// ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE;
+ ADestino.Post;
+ AOrigen.Next;
+ end;
+ finally
+ ADetallesPedidosProvController.EndUpdate(ADestino);
+ end;
+end;
+
+
function GenerarPedidosProv(const IDPedido : Integer) : Boolean; overload;
var
@@ -74,7 +118,10 @@ function GenerarPedidosProv(APedidoCli : IBizPedidoCliente) : Boolean; overload;
var
APedidoProv : IBizPedidoProveedor;
AArticulosPend : IBizPedidoClienteArticulosPendientesPedirAProv;
+ AArticulosPendNoArticulos : IBizPedidoClienteArticulosPendientesPedirAProv;
+ bAnadirNoArticulos: Boolean;
ALista : TStringList;
+ AListaArticulosSinProveedor : TStringList;
begin
Result := False;
@@ -88,20 +135,31 @@ begin
Inicializar;
AArticulosPend := APedidosClienteController.BuscarPendientesPedir(APedidoCli.ID);
- if not Assigned(AArticulosPend) then
+ AArticulosPendNoArticulos := APedidosClienteController.BuscarPendientesPedirNoArticulos(APedidoCli.ID);
+ if not Assigned(AArticulosPend)
+ or not Assigned(AArticulosPendNoArticulos) then
raise Exception.Create('Error al recuperar la lista de artículos pendientes de pedir (GenerarPedidosProv)');
ALista := TStringList.Create;
+ AListaArticulosSinProveedor := TStringList.Create;
try
if not AArticulosPend.DataTable.Active then
AArticulosPend.DataTable.Active := True;
- if AArticulosPend.DataTable.RecordCount = 0 then
+ if not AArticulosPendNoArticulos.DataTable.Active then
+ AArticulosPendNoArticulos.DataTable.Active := True;
+
+ if (AArticulosPend.DataTable.RecordCount = 0)
+ and (AArticulosPendNoArticulos.DataTable.RecordCount = 0) then
begin
ShowInfoMessage('Este pedido a cliente no tiene artículos pendientes que se tengan que pedir a los proveedores');
Exit;
end;
+ bAnadirNoArticulos := False;
+ if (AArticulosPendNoArticulos.DataTable.RecordCount > 0) then
+ bAnadirNoArticulos := (ShowConfirmMessage('Articulos', 'Desea añadir en el/los pedido/s a proveedor las lineas que no se corresponden con artículos (lineas texto libre)') = IDYES);
+
APedidoProv := NIL;
AArticulosPend.DataTable.First;
while not AArticulosPend.DataTable.EOF do
@@ -109,6 +167,7 @@ begin
if Assigned(APedidoProv) and
(AArticulosPend.ID_PROVEEDOR <> APedidoProv.ID_PROVEEDOR) then
begin
+ AnadirLineasNoArticulos(AArticulosPendNoArticulos, APedidoProv.Detalles);
APedidosProveedorController.Guardar(APedidoProv);
ALista.Add(APedidoProv.REFERENCIA + ': ' + APedidoProv.NOMBRE);
APedidoProv := NIL;
@@ -118,8 +177,14 @@ begin
begin
APedidoProv := APedidosProveedorController.Nuevo;
APedidoProv.Edit;
+ while (AArticulosPend.ID_PROVEEDOR = 0) do
+ begin
+ AListaArticulosSinProveedor.Add(RtfToText(AArticulosPend.CONCEPTO));
+ AArticulosPend.Next;
+ end;
APedidoProv.Proveedor := (AProveedoresController.Buscar(AArticulosPend.ID_PROVEEDOR) as IBizProveedor);
APedidoProv.ID_PEDIDO_CLIENTE := APedidoCli.ID;
+ APedidoProv.REFERENCIA_CLIENTE := APedidoCli.REFERENCIA_CLIENTE;
end;
//OJO IMPORTANTE
@@ -132,6 +197,7 @@ begin
with APedidoProv.Detalles do
begin
Edit;
+ CONCEPTO := AArticulosPend.CONCEPTO;
CANTIDAD := AArticulosPend.CANT_PENDIENTE_PEDIR;
Post;
end;
@@ -141,11 +207,19 @@ begin
if Assigned(APedidoProv) then
begin
+ AnadirLineasNoArticulos(AArticulosPendNoArticulos, APedidoProv.Detalles);
APedidosProveedorController.Guardar(APedidoProv);
ALista.Add(APedidoProv.REFERENCIA + ': ' + APedidoProv.NOMBRE);
APedidoProv := NIL;
end;
+ if AListaArticulosSinProveedor.Count > 0 then
+ begin
+ dmGenerarPedidosProv.JsListaArticulosSinProveedor.Content.Clear;
+ dmGenerarPedidosProv.JsListaArticulosSinProveedor.Content.AddStrings(AListaArticulosSinProveedor);
+ dmGenerarPedidosProv.JsListaArticulosSinProveedor.Execute;
+ end;
+
if ALista.Count > 0 then
begin
dmGenerarPedidosProv.JsListaPedidosGenerados.Content.Clear;
@@ -156,6 +230,7 @@ begin
Result := True;
finally
FreeAndNIL(ALista);
+ FreeAndNIL(AListaArticulosSinProveedor);
AArticulosPend := NIL;
if Assigned(APedidosClienteController) then
diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas
index 4d1bce0..8c2236d 100644
--- a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas
+++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas
@@ -74,6 +74,70 @@ begin
AAlbaran.ID_FORMA_PAGO := APedido.ID_FORMA_PAGO;
end;
+procedure CopiarDetallesAAlbaran(
+ APedido: IBizPedidoProveedor;
+ AAlbaran: IBizAlbaranProveedor;
+ AArticulos: IBizDetallesPedidoProveedor);
+var
+ i : integer;
+ ADetalles : IBizDetallesAlbaranProveedor;
+ ADetallesController : IDetallesAlbaranProveedorController;
+begin
+ if not Assigned(AAlbaran) then
+ raise Exception.Create ('Albaran no asignado(CopiarDetallesAAlbaran)');
+
+ if not Assigned(APedido) then
+ raise Exception.Create ('Pedido no asignado (CopiarDetallesAAlbaran)');
+
+ if not Assigned(AArticulos) then
+ raise Exception.Create ('Artículos no asignado (CopiarDetallesAAlbaran)');
+
+ if not AArticulos.DataTable.Active then
+ AArticulos.DataTable.Active := True;
+
+ // El contrato tiene que venir ya abierto y posicionado donde hay que copiar
+
+ ADetalles := AAlbaran.Detalles;
+ ADetallesController := TDetallesAlbaranProveedorController.Create;
+ try
+ //OJO IMPORTANTE
+ //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para
+ //obligarle siempre a recalcular los detalles una sola vez
+ ADetallesController.BeginUpdate(ADetalles);
+
+ AArticulos.DataTable.First;
+ for i := 0 to AArticulos.DataTable.RecordCount - 1 do
+ begin
+ ADetallesController.Add(ADetalles, AArticulos.TIPO_DETALLE);
+ ADetalles.Edit;
+ ADetalles.REFERENCIA := AArticulos.REFERENCIA;
+ ADetalles.ID_ARTICULO := AArticulos.ID_ARTICULO;
+// if (AArticulos.PROPIEDAD <> '') then
+// ADetalles.CONCEPTO := AArticulos.PROPIEDAD + ' '+ AArticulos.CONCEPTO
+// else
+ ADetalles.CONCEPTO := AArticulos.CONCEPTO;
+
+ if not AArticulos.CANTIDADIsNull then
+ ADetalles.CANTIDAD := AArticulos.CANTIDAD;
+ if not AArticulos.IMPORTE_UNIDADIsNull then
+ ADetalles.IMPORTE_UNIDAD := AArticulos.IMPORTE_UNIDAD;
+ if not AArticulos.IMPORTE_TOTALIsNull then
+ ADetalles.IMPORTE_TOTAL := AArticulos.IMPORTE_TOTAL;
+ if not AArticulos.DESCUENTOIsNull then
+ ADetalles.DESCUENTO := AArticulos.DESCUENTO;
+ if not AArticulos.IMPORTE_PORTEIsNull then
+ ADetalles.IMPORTE_PORTE := AArticulos.IMPORTE_PORTE;
+ ADetalles.VISIBLE := AArticulos.VISIBLE;
+ ADetalles.REFERENCIA_PROVEEDOR := AArticulos.REFERENCIA_PROVEEDOR;
+ ADetalles.Post;
+ AArticulos.Next;
+ end;
+ finally
+ ADetallesController.EndUpdate(ADetalles);
+ ADetallesController := NIL;
+ end;
+end;
+
procedure CopiarArticulosPendAAlbaran(
APedido: IBizPedidoProveedor;
AAlbaran: IBizAlbaranProveedor;
@@ -195,7 +259,7 @@ begin
try
if not Assigned(APedidosProveedorController) then
Inicializar;
-
+{
AArticulosPendientes := ADetallesPedidosProveedorController.ArticulosPendientes(APedido.ID);
if not Assigned(AArticulosPendientes) then
raise Exception.Create('Error al recuperar los artículos sin albarán del pedido (GenerarAlbaranProv)');
@@ -208,10 +272,11 @@ begin
if (ARespuesta = IDNO) then
Exit; // Aunque es un exit, se ejecuta la parte del finally antes de salir.
end;
-
+}
AAlbaran := AAlbaranesProveedorController.Nuevo;
CopiarPedidoAAlbaran(APedido, AAlbaran);
- CopiarArticulosPendAAlbaran(APedido, AAlbaran, AArticulosPendientes);
+// CopiarArticulosPendAAlbaran(APedido, AAlbaran, AArticulosPendientes);
+ CopiarDetallesAAlbaran(APedido, AAlbaran, APedido.Detalles);
//Sustituir por if de guardar
if AAlbaranesProveedorController.Guardar(AAlbaran) then
@@ -222,7 +287,7 @@ begin
begin
Instruction.Text := 'Se ha generado el albarán';
Content.Clear;
- Content.Add(Format('Se ha generado correctamente el albarán %s a partir del pedido de cliente' + #10#13, [AAlbaran.REFERENCIA]));
+ Content.Add(Format('Se ha generado correctamente el albarán %s a partir del pedido de proveedor' + #10#13, [AAlbaran.REFERENCIA]));
Execute;
ARespuesta := CustomButtonResult;
diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dfm b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dfm
index 2f04463..064b260 100644
--- a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dfm
+++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dfm
@@ -1,12 +1,5 @@
inherited fEditorRemesaClientePreview: TfEditorRemesaClientePreview
Caption = 'Previsualizar la remesa'
- ExplicitWidth = 660
- ExplicitHeight = 494
PixelsPerInch = 96
TextHeight = 13
- inherited frxReport1: TfrxReport
- Datasets = <>
- Variables = <>
- Style = <>
- end
end
diff --git a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.pas b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.pas
index 90fd8b7..efd1695 100644
--- a/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.pas
+++ b/Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.pas
@@ -10,7 +10,8 @@ uses
JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls,
TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage,
ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorRemesasClientePreview,
- JvExComCtrls, JvStatusBar;
+ JvExComCtrls, JvStatusBar, frxExportText, frxExportRTF, frxExportMail,
+ frxExportXLS;
type
TfEditorRemesaClientePreview = class(TfEditorPreview, IEditorRemesasClientePreview)
diff --git a/Source/Modulos/Tienda web/Controller/Utiles/uActualizarPedidosUtils.pas b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarPedidosUtils.pas
index 4a7ff4d..bf23d20 100644
--- a/Source/Modulos/Tienda web/Controller/Utiles/uActualizarPedidosUtils.pas
+++ b/Source/Modulos/Tienda web/Controller/Utiles/uActualizarPedidosUtils.pas
@@ -23,10 +23,12 @@ function DarNumSituacionEquivalente(ASituacion : String) : Integer;
begin
if ASituacion = SITUACION_PEDIDO_PENDIENTE then
Result := 1
- else if ASituacion = SITUACION_PEDIDO_ENPROCESO then
+ else if ASituacion = SITUACION_PEDIDO_ALBARANADO then
Result := 2
- else if ASituacion = SITUACION_PEDIDO_SERVIDO then
- Result := 3
+// else if ASituacion = SITUACION_PEDIDO_ENPROCESO then
+// Result := 2
+// else if ASituacion = SITUACION_PEDIDO_SERVIDO then
+// Result := 3
else
Result := -1;
end;
diff --git a/Source/Modulos/Tienda web/Data/TiendaWeb_data.drc b/Source/Modulos/Tienda web/Data/TiendaWeb_data.drc
index 4c7b731..5f6023d 100644
--- a/Source/Modulos/Tienda web/Data/TiendaWeb_data.drc
+++ b/Source/Modulos/Tienda web/Data/TiendaWeb_data.drc
@@ -14,4 +14,4 @@ END
/* C:\Codigo\Source\Modulos\Tienda web\Data\uDataModuleTiendaWeb.dfm */
/* C:\Codigo\Source\Modulos\Tienda web\Data\TiendaWeb_data.res */
-/* c:\temp\dtfD2.tmp */
+/* c:\temp\dtf87D.tmp */
diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL
index 585ea87..5f8200c 100644
--- a/Source/Servicios/FactuGES.RODL
+++ b/Source/Servicios/FactuGES.RODL
@@ -426,9 +426,7 @@
-
-
-
+
diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas
index 650c47c..c19bccb 100644
--- a/Source/Servicios/FactuGES_Intf.pas
+++ b/Source/Servicios/FactuGES_Intf.pas
@@ -616,7 +616,7 @@ type
['{6E910718-9AB0-47BB-9875-B0DE66A68D7A}']
function GenerarInforme(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean;
const VerIncidencias: Boolean): Binary;
- function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
+ function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean;
const VerIncidencias: Boolean): Binary;
function DarListaAnos: StringArray;
@@ -634,7 +634,7 @@ type
function GenerarInforme(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean;
const VerIncidencias: Boolean): Binary;
- function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
+ function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean;
const VerIncidencias: Boolean): Binary;
function DarListaAnos: StringArray;
@@ -2215,13 +2215,12 @@ begin
end
end;
-function TsrvAlbaranesCliente_Proxy.GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
+function TsrvAlbaranesCliente_Proxy.GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEtiquetas');
- __Message.Write('ID', TypeInfo(Integer), ID, []);
- __Message.Write('withRefCliente', TypeInfo(Boolean), withRefCliente, []);
+ __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas
index 1a091dd..ee99edb 100644
--- a/Source/Servicios/FactuGES_Invk.pas
+++ b/Source/Servicios/FactuGES_Invk.pas
@@ -1372,19 +1372,18 @@ begin
end;
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; }
+{ function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary; }
var
- ID: Integer;
- withRefCliente: Boolean;
+ ListaID: FactuGES_Intf.TIntegerArray;
lResult: Binary;
__lObjectDisposer: TROObjectDisposer;
begin
+ ListaID := nil;
lResult := nil;
try
- __Message.Read('ID', TypeInfo(Integer), ID, []);
- __Message.Read('withRefCliente', TypeInfo(Boolean), withRefCliente, []);
+ __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
- lResult := (__Instance as IsrvAlbaranesCliente).GenerarInformeEtiquetas(ID, withRefCliente);
+ lResult := (__Instance as IsrvAlbaranesCliente).GenerarInformeEtiquetas(ListaID);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeEtiquetasResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []);
@@ -1394,6 +1393,7 @@ begin
finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance);
try
+ __lObjectDisposer.Add(ListaID);
__lObjectDisposer.Add(lResult);
finally
__lObjectDisposer.Free();
diff --git a/Source/Servicios/RODLFile.res b/Source/Servicios/RODLFile.res
index 40218f1..442cce8 100644
Binary files a/Source/Servicios/RODLFile.res and b/Source/Servicios/RODLFile.res differ
diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES
index 126ba91..09df67b 100644
Binary files a/Source/Servidor/FactuGES_Server.RES and b/Source/Servidor/FactuGES_Server.RES differ
diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr
index 4c9e1dc..4ae9af9 100644
--- a/Source/Servidor/FactuGES_Server.dpr
+++ b/Source/Servidor/FactuGES_Server.dpr
@@ -110,8 +110,6 @@ uses
uBizAgentesServer in '..\Modulos\Contactos\Model\uBizAgentesServer.pas',
srvPedidosCliente_Impl in '..\Modulos\Pedidos de cliente\Servidor\srvPedidosCliente_Impl.pas' {srvPedidosCliente: TDataAbstractService},
uBizPedidosClienteServer in '..\Modulos\Pedidos de cliente\Model\uBizPedidosClienteServer.pas',
- schPedidosClienteClient_Intf in '..\Modulos\Pedidos de cliente\Model\schPedidosClienteClient_Intf.pas',
- schPedidosClienteServer_Intf in '..\Modulos\Pedidos de cliente\Model\schPedidosClienteServer_Intf.pas',
schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas',
schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas',
schRecibosClienteClient_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas',
@@ -123,8 +121,6 @@ uses
schRecibosProveedorClient_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas',
schRecibosProveedorServer_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas',
uRptRemesasProveedor_Server in '..\Modulos\Remesas de proveedor\Reports\uRptRemesasProveedor_Server.pas' {RptRemesasProveedor: TDataModule},
- schPedidosProveedorClient_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas',
- schPedidosProveedorServer_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas',
schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas',
schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas',
srvImpresiones_Impl in '..\Modulos\Impresiones\Servidor\srvImpresiones_Impl.pas' {srvImpresiones: TDARemoteService},
@@ -163,7 +159,11 @@ uses
schInfVentasArticuloClient_Intf in '..\Modulos\Informe ventas por articulo\Model\schInfVentasArticuloClient_Intf.pas',
schInfVentasArticuloServer_Intf in '..\Modulos\Informe ventas por articulo\Model\schInfVentasArticuloServer_Intf.pas',
schAlbaranesProveedorClient_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas',
- schAlbaranesProveedorServer_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas';
+ schAlbaranesProveedorServer_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas',
+ schPedidosClienteClient_Intf in '..\Modulos\Pedidos de cliente\Model\schPedidosClienteClient_Intf.pas',
+ schPedidosClienteServer_Intf in '..\Modulos\Pedidos de cliente\Model\schPedidosClienteServer_Intf.pas',
+ schPedidosProveedorClient_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas',
+ schPedidosProveedorServer_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas';
{$R *.res}
{$R ..\Servicios\RODLFile.res}
diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj
index b2cf1e6..8b4ad0c 100644
--- a/Source/Servidor/FactuGES_Server.dproj
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -1,405 +1,407 @@
-
+
-
- {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}
- FactuGES_Server.dpr
- Debug
- AnyCPU
- DCC32
- ..\..\Output\Debug\Servidor\FactuGES_Server.exe
- vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100
-
-
- 7.0
- False
- False
- 0
- 3
- ..\..\Output\Release\Servidor
- RELEASE
-
-
- 7.0
- 3
- ..\..\Output\Debug\Servidor
- DEBUG;
- True
- True
- True
- C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
- C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
- C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
- C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
-
-
- Delphi.Personality
-
-
-False True False /standalone True False 4 2 9 0 False False False False False 3082 1252 4.2.9.0 4.2.9.0 miércoles, 13 de febrero de 2013 12:02
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ExpressPrinting System by Developer Express Inc.
- FactuGES_Server.dpr False
-
-
-
-
- MainSource
-
-
-
-
-
-
- TDARemoteService
-
-
-
- TDataModule
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDARemoteService
-
-
-
-
-
-
- TDARemoteService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataModule
-
-
-
- TDARemoteService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
- TDataAbstractService
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDARemoteService
-
-
-
- TDARemoteService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
- TFrame
-
-
-
- TFrame
-
-
-
- TFrame
-
-
-
- TForm
-
-
-
- TFrame
-
-
-
- TDARemoteService
-
-
-
-
-
-
- TDataModule
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}
+ FactuGES_Server.dpr
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Output\Debug\Servidor\FactuGES_Server.exe
+ vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100
+
+
+ 7.0
+ False
+ False
+ 0
+ 3
+ ..\..\Output\Release\Servidor
+ RELEASE
+
+
+ 7.0
+ 3
+ ..\..\Output\Debug\Servidor
+ DEBUG;
+ True
+ True
+ True
+ C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
+ C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
+ C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
+ C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10
+
+
+ Delphi.Personality
+
+
+ False True False /standalone True False 4 3 1 0 False False False False False 3082 1252 4.3.1.0 4.3.1.0 martes, 25 de junio de 2013 13:34
+ ExpressPrinting System by Developer Express Inc.
+ FactuGES_Server.dpr False
+
+
+
+
+ MainSource
+
+
+
+
+
+
+ TDARemoteService
+
+
+
+ TDataModule
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+ TDataModule
+
+
+ TDataModule
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+ TDataModule
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+ TDARemoteService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+ TDataModule
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+ TDataAbstractService
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDARemoteService
+
+
+
+ TDARemoteService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+ TDataModule
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+ TFrame
+
+
+
+ TFrame
+
+
+
+ TFrame
+
+
+
+ TForm
+
+
+
+ TFrame
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+ TDataModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+upx - compress or expand executable files
+
+
+
+
+upx [ command ] [ options ] filename ...
+
+
+
+
+
+ The Ultimate Packer for eXecutables
+ Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser
+ http://upx.sourceforge.net
+UPX is a portable, extendable, high-performance executable packer for
+several different executable formats. It achieves an excellent compression
+ratio and offers *very* fast decompression. Your executables suffer
+no memory overhead or other drawbacks for most of the formats supported,
+because of in-place decompression.
+While you may use UPX freely for both non-commercial and commercial
+executables (for details see the file LICENSE), we would highly
+appreciate if you credit UPX and ourselves in the documentation,
+possibly including a reference to the UPX home page. Thanks.
+[ Using UPX in non-OpenSource applications without proper credits
+is considered not politically correct ;-) ]
+
+
+
+
+UPX comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE.
+This is the first production quality release, and we plan that future 1.xx
+releases will be backward compatible with this version.
+Please report all problems or suggestions to the authors. Thanks.
+
+
+
+
+UPX is a versatile executable packer with the following features:
+
+ - excellent compression ratio: compresses better than zip/gzip,
+ use UPX to decrease the size of your distribution !
+
+ - very fast decompression: about 10 MiB/sec on an ancient Pentium 133,
+ about 200 MiB/sec on an Athlon XP 2000+.
+
+ - no memory overhead for your compressed executables for most of the
+ supported formats
+
+ - safe: you can list, test and unpack your executables
+ Also, a checksum of both the compressed and uncompressed file is
+ maintained internally.
+
+ - universal: UPX can pack a number of executable formats:
+ * atari/tos
+ * bvmlinuz/386 [bootable Linux kernel]
+ * djgpp2/coff
+ * dos/com
+ * dos/exe
+ * dos/sys
+ * linux/386
+ * linux/elf386
+ * linux/sh386
+ * ps1/exe
+ * rtm32/pe
+ * tmt/adam
+ * vmlinuz/386 [bootable Linux kernel]
+ * vmlinux/386
+ * watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)
+ * win32/pe (exe and dll)
+ * arm/pe (exe and dll)
+ * linux/elfamd64
+ * linux/elfppc32
+ * mach/elfppc32
+
+ - portable: UPX is written in portable endian-neutral C++
+
+ - extendable: because of the class layout it's very easy to support
+ new executable formats or add new compression algorithms
+
+ - free: UPX can be distributed and used freely. And from version 0.99
+ the full source code of UPX is released under the GNU General Public
+ License (GPL) !
+You probably understand now why we call UPX the "ultimate "
+executable packer.
+
+
+
+
+
+
+
+This is the default operation, eg. upx yourfile.exe will compress the file
+specified on the command line.
+
+
+
+All UPX supported file formats can be unpacked using the -d switch, eg.
+upx -d yourfile.exe will uncompress the file you've just compressed.
+
+
+
+The -t command tests the integrity of the compressed and uncompressed
+data, eg. upx -t yourfile.exe check whether your file can be safely
+decompressed. Note, that this command doesn't check the whole file, only
+the part that will be uncompressed during program execution. This means
+that you should not use this command instead of a virus checker.
+
+
+
+The -l command prints out some information about the compressed files
+specified on the command line as parameters, eg upx -l yourfile.exe
+shows the compressed / uncompressed size and the compression ratio of
+yourfile.exe .
+
+
+
+
+-q : be quiet, suppress warnings
+-q -q (or -qq ): be very quiet, suppress errors
+-q -q -q (or -qqq ): produce no output at all
+--help : prints the help
+--version : print the version of UPX
+--exact : when compressing, require to be able to get a byte-identical file
+after decompression with option -d . [NOTE: this is work in progress and is
+not supported for all formats yet. If you do care, as a workaround you can
+compress and then decompress your program a first time - any further
+compress-decompress steps should then yield byte-identical results
+as compared to the first decompressed version.]
+[ ...to be written... - type `upx --help ' for now ]
+
+
+
+
+UPX offers ten different compression levels from -1 to -9 ,
+and --best . The default compression level is -8 for files
+smaller than 512 KiB, and -7 otherwise.
+
+
+Compression levels 1, 2 and 3 are pretty fast.
+
+
+Compression levels 4, 5 and 6 achieve a good time/ratio performance.
+
+
+Compression levels 7, 8 and 9 favor compression ratio over speed.
+
+
+Compression level --best may take a long time.
+
+
+Note that compression level --best can be somewhat slow for large
+files, but you definitely should use it when releasing a final version
+of your program.
+Quick info for achieving the best compression ratio:
+
+
+Try upx --brute myfile.exe or even upx --ultra-brute myfile.exe .
+
+
+Try if --overlay=strip works.
+
+
+For win32/pe programs there's --strip-relocs=0 . See notes below.
+
+
+
+
+
+
+Info: An "overlay" means auxiliary data attached after the logical end of
+an executable, and it often contains application specific data
+(this is a common practice to avoid an extra data file, though
+it would be better to use resource sections).
+UPX handles overlays like many other executable packers do: it simply
+copies the overlay after the compressed image. This works with some
+files, but doesn't work with others, depending on how an application
+actually accesses this overlayed data.
+
+ --overlay=copy Copy any extra data attached to the file. [DEFAULT]
+
+ --overlay=strip Strip any overlay from the program instead of
+ copying it. Be warned, this may make the compressed
+ program crash or otherwise unusable.
+
+ --overlay=skip Refuse to compress any program which has an overlay.
+
+
+
+
+The environment variable UPX can hold a set of default
+options for UPX . These options are interpreted first and
+can be overwritten by explicit command line parameters.
+For example:
+
+ for DOS/Windows: set UPX=-9 --compress-icons#0
+ for sh/ksh/zsh: UPX="-9 --compress-icons=0"; export UPX
+ for csh/tcsh: setenv UPX "-9 --compress-icons=0"
+Under DOS/Windows you must use '#' instead of '=' when setting the
+environment variable because of a COMMAND.COM limitation.
+Not all of the options are valid in the environment variable -
+UPX will tell you.
+You can explicitly use the --no-env option to ignore the
+environment variable.
+
+
+
+
+
+
+
+This is the executable format used by the Atari ST/TT, a Motorola 68000
+based personal computer which was popular in the late '80s. Support
+of this format is only because of nostalgic feelings of one of
+the authors and serves no practical purpose :-).
+See http://www.freemint.de for more info.
+Packed programs will be byte-identical to the original after uncompression.
+All debug information will be stripped, though.
+Extra options available for this executable format:
+
+ --all-methods Compress the program several times, using all
+ available compression methods. This may improve
+ the compression ratio in some cases, but usually
+ the default method gives the best results anyway.
+
+
+
+Same as vmlinuz/i386.
+
+
+
+Obviously UPX won't work with executables that want to read data from
+themselves (like some commandline utilities that ship with Win95/98/ME).
+Compressed programs only work on a 286+.
+Packed programs will be byte-identical to the original after uncompression.
+Maximum uncompressed size: ~65100 bytes.
+Extra options available for this executable format:
+
+ --8086 Create an executable that works on any 8086 CPU.
+
+ --all-methods Compress the program several times, using all
+ available compression methods. This may improve
+ the compression ratio in some cases, but usually
+ the default method gives the best results anyway.
+
+ --all-filters Compress the program several times, using all
+ available preprocessing filters. This may improve
+ the compression ratio in some cases, but usually
+ the default filter gives the best results anyway.
+
+
+
+dos/exe stands for all "normal" 16-bit DOS executables.
+Obviously UPX won't work with executables that want to read data from
+themselves (like some command line utilities that ship with Win95/98/ME).
+Compressed programs only work on a 286+.
+Extra options available for this executable format:
+
+ --8086 Create an executable that works on any 8086 CPU.
+
+ --no-reloc Use no relocation records in the exe header.
+
+ --all-methods Compress the program several times, using all
+ available compression methods. This may improve
+ the compression ratio in some cases, but usually
+ the default method gives the best results anyway.
+
+
+
+Compressed programs only work on a 286+.
+Packed programs will be byte-identical to the original after uncompression.
+Maximum uncompressed size: ~65350 bytes.
+Extra options available for this executable format:
+
+ --8086 Create an executable that works on any 8086 CPU.
+
+ --all-methods Compress the program several times, using all
+ available compression methods. This may improve
+ the compression ratio in some cases, but usually
+ the default method gives the best results anyway.
+
+ --all-filters Compress the program several times, using all
+ available preprocessing filters. This may improve
+ the compression ratio in some cases, but usually
+ the default filter gives the best results anyway.
+
+
+
+First of all, it is recommended to use UPX *instead* of strip . strip has
+the very bad habit of replacing your stub with its own (outdated) version.
+Additionally UPX corrects a bug/feature in strip v2.8.x: it
+will fix the 4 KiB alignment of the stub.
+UPX includes the full functionality of stubify. This means it will
+automatically stubify your COFF files. Use the option --coff to
+disable this functionality (see below).
+UPX automatically handles Allegro packfiles.
+The DLM format (a rather exotic shared library extension) is not supported.
+Packed programs will be byte-identical to the original after uncompression.
+All debug information and trailing garbage will be stripped, though.
+Extra options available for this executable format:
+
+ --coff Produce COFF output instead of EXE. By default
+ UPX keeps your current stub.
+
+ --all-methods Compress the program several times, using all
+ available compression methods. This may improve
+ the compression ratio in some cases, but usually
+ the default method gives the best results anyway.
+
+ --all-filters Compress the program several times, using all
+ available preprocessing filters. This may improve
+ the compression ratio in some cases, but usually
+ the default filter gives the best results anyway.
+
+
+
+Introduction
+
+ Linux/386 support in UPX consists of 3 different executable formats,
+ one optimized for ELF executables ("linux/elf386"), one optimized
+ for shell scripts ("linux/sh386"), and one generic format
+ ("linux/386").
+
+ We will start with a general discussion first, but please
+ also read the relevant docs for each of the individual formats.
+
+ Also, there is special support for bootable kernels - see the
+ description of the vmlinuz/386 format.
+General user's overview
+
+ Running a compressed executable program trades less space on a
+ ``permanent'' storage medium (such as a hard disk, floppy disk,
+ CD-ROM, flash memory, EPROM, etc.) for more space in one or more
+ ``temporary'' storage media (such as RAM, swap space, /tmp, etc.).
+ Running a compressed executable also requires some additional CPU
+ cycles to generate the compressed executable in the first place,
+ and to decompress it at each invocation.
+
+ How much space is traded? It depends on the executable, but many
+ programs save 30% to 50% of permanent disk space. How much CPU
+ overhead is there? Again, it depends on the executable, but
+ decompression speed generally is at least many megabytes per second,
+ and frequently is limited by the speed of the underlying disk
+ or network I/O.
+
+ Depending on the statistics of usage and access, and the relative
+ speeds of CPU, RAM, swap space, /tmp, and file system storage, then
+ invoking and running a compressed executable can be faster than
+ directly running the corresponding uncompressed program.
+ The operating system might perform fewer expensive I/O operations
+ to invoke the compressed program. Paging to or from swap space
+ or /tmp might be faster than paging from the general file system.
+ ``Medium-sized'' programs which access about 1/3 to 1/2 of their
+ stored program bytes can do particularly well with compression.
+ Small programs tend not to benefit as much because the absolute
+ savings is less. Big programs tend not to benefit proportionally
+ because each invocation may use only a small fraction of the program,
+ yet UPX decompresses the entire program before invoking it.
+ But in environments where disk or flash memory storage is limited,
+ then compression may win anyway.
+
+ Currently, executables compressed by UPX do not share RAM at runtime
+ in the way that executables mapped from a file system do. As a
+ result, if the same program is run simultaneously by more than one
+ process, then using the compressed version will require more RAM and/or
+ swap space. So, shell programs (bash, csh, etc.) and ``make''
+ might not be good candidates for compression.
+
+ UPX recognizes three executable formats for Linux: Linux/elf386,
+ Linux/sh386, and Linux/386. Linux/386 is the most generic format;
+ it accommodates any file that can be executed. At runtime, the UPX
+ decompression stub re-creates in /tmp a copy of the original file,
+ and then the copy is (re-)executed with the same arguments.
+ ELF binary executables prefer the Linux/elf386 format by default,
+ because UPX decompresses them directly into RAM, uses only one
+ exec, does not use space in /tmp, and does not use /proc.
+ Shell scripts where the underlying shell accepts a ``-c'' argument
+ can use the Linux/sh386 format. UPX decompresses the shell script
+ into low memory, then maps the shell and passes the entire text of the
+ script as an argument with a leading ``-c''.
+General benefits:
+
+ - UPX can compress all executables, be it AOUT, ELF, libc4, libc5,
+ libc6, Shell/Perl/Python/... scripts, standalone Java .class
+ binaries, or whatever...
+ All scripts and programs will work just as before.
+
+ - Compressed programs are completely self-contained. No need for
+ any external program.
+
+ - UPX keeps your original program untouched. This means that
+ after decompression you will have a byte-identical version,
+ and you can use UPX as a file compressor just like gzip.
+ [ Note that UPX maintains a checksum of the file internally,
+ so it is indeed a reliable alternative. ]
+
+ - As the stub only uses syscalls and isn't linked against libc it
+ should run under any Linux configuration that can run ELF
+ binaries.
+
+ - For the same reason compressed executables should run under
+ FreeBSD and other systems which can run Linux binaries.
+ [ Please send feedback on this topic ]
+General drawbacks:
+
+ - It is not advisable to compress programs which usually have many
+ instances running (like `sh' or `make') because the common segments of
+ compressed programs won't be shared any longer between different
+ processes.
+
+ - `ldd' and `size' won't show anything useful because all they
+ see is the statically linked stub. Since version 0.82 the section
+ headers are stripped from the UPX stub and `size' doesn't even
+ recognize the file format. The file patches/patch-elfcode.h has a
+ patch to fix this bug in `size' and other programs which use GNU BFD.
+General notes:
+
+ - As UPX leaves your original program untouched it is advantageous
+ to strip it before compression.
+
+ - If you compress a script you will lose platform independence -
+ this could be a problem if you are using NFS mounted disks.
+
+ - Compression of suid, guid and sticky-bit programs is rejected
+ because of possible security implications.
+
+ - For the same reason there is no sense in making any compressed
+ program suid.
+
+ - Obviously UPX won't work with executables that want to read data
+ from themselves. E.g., this might be a problem for Perl scripts
+ which access their __DATA__ lines.
+
+ - In case of internal errors the stub will abort with exitcode 127.
+ Typical reasons for this to happen are that the program has somehow
+ been modified after compression.
+ Running `strace -o strace.log compressed_file' will tell you more.
+
+
+
+Please read the general Linux description first.
+The linux/elf386 format decompresses directly into RAM,
+uses only one exec, does not use space in /tmp,
+and does not use /proc.
+Linux/elf386 is automatically selected for Linux ELF executables.
+Packed programs will be byte-identical to the original after uncompression.
+How it works:
+
+ For ELF executables, UPX decompresses directly to memory, simulating
+ the mapping that the operating system kernel uses during exec(),
+ including the PT_INTERP program interpreter (if any).
+ The brk() is set by a special PT_LOAD segment in the compressed
+ executable itself. UPX then wipes the stack clean except for
+ arguments, environment variables, and Elf_auxv entries (this is
+ required by bugs in the startup code of /lib/ld-linux.so as of
+ May 2000), and transfers control to the program interpreter or
+ the e_entry address of the original executable.
+
+ The UPX stub is about 1700 bytes long, partly written in assembler
+ and only uses kernel syscalls. It is not linked against any libc.
+Specific drawbacks:
+
+ - For linux/elf386 and linux/sh386 formats, you will be relying on
+ RAM and swap space to hold all of the decompressed program during
+ the lifetime of the process. If you already use most of your swap
+ space, then you may run out. A system that is "out of memory"
+ can become fragile. Many programs do not react gracefully when
+ malloc() returns 0. With newer Linux kernels, the kernel
+ may decide to kill some processes to regain memory, and you
+ may not like the kernel's choice of which to kill. Running
+ /usr/bin/top is one way to check on the usage of swap space.
+Extra options available for this executable format:
+
+ (none)
+
+
+
+Please read the general Linux description first.
+Shell scripts where the underling shell accepts a ``-c'' argument
+can use the Linux/sh386 format. UPX decompresses the shell script
+into low memory, then maps the shell and passes the entire text of the
+script as an argument with a leading ``-c''.
+It does not use space in /tmp, and does not use /proc.
+Linux/sh386 is automatically selected for shell scripts that
+use a known shell.
+Packed programs will be byte-identical to the original after uncompression.
+How it works:
+
+ For shell script executables (files beginning with "#!/" or "#! /")
+ where the shell is known to accept "-c <command>", UPX decompresses
+ the file into low memory, then maps the shell (and its PT_INTERP),
+ and passes control to the shell with the entire decompressed file
+ as the argument after "-c". Known shells are sh, ash, bash, bsh, csh,
+ ksh, tcsh, pdksh. Restriction: UPX cannot use this method
+ for shell scripts which use the one optional string argument after
+ the shell name in the script (example: "#! /bin/sh option3\n".)
+
+ The UPX stub is about 1700 bytes long, partly written in assembler
+ and only uses kernel syscalls. It is not linked against any libc.
+Specific drawbacks:
+
+ - For linux/elf386 and linux/sh386 formats, you will be relying on
+ RAM and swap space to hold all of the decompressed program during
+ the lifetime of the process. If you already use most of your swap
+ space, then you may run out. A system that is "out of memory"
+ can become fragile. Many programs do not react gracefully when
+ malloc() returns 0. With newer Linux kernels, the kernel
+ may decide to kill some processes to regain memory, and you
+ may not like the kernel's choice of which to kill. Running
+ /usr/bin/top is one way to check on the usage of swap space.
+Extra options available for this executable format:
+
+ (none)
+
+
+
+Please read the general Linux description first.
+The generic linux/386 format decompresses to /tmp and needs
+/proc file system support. It starts the decompressed program
+via the execve() syscall.
+Linux/386 is only selected if the specialized linux/elf386
+and linux/sh386 won't recognize a file.
+Packed programs will be byte-identical to the original after uncompression.
+How it works:
+
+ For files which are not ELF and not a script for a known "-c" shell,
+ UPX uses kernel execve(), which first requires decompressing to a
+ temporary file in the file system. Interestingly -
+ because of the good memory management of the Linux kernel - this
+ often does not introduce a noticeable delay, and in fact there
+ will be no disk access at all if you have enough free memory as
+ the entire process takes places within the file system buffers.
+
+ A compressed executable consists of the UPX stub and an overlay
+ which contains the original program in a compressed form.
+
+ The UPX stub is a statically linked ELF executable and does
+ the following at program startup:
+
+ 1) decompress the overlay to a temporary location in /tmp
+ 2) open the temporary file for reading
+ 3) try to delete the temporary file and start (execve)
+ the uncompressed program in /tmp using /proc/<pid>/fd/X as
+ attained by step 2)
+ 4) if that fails, fork off a subprocess to clean up and
+ start the program in /tmp in the meantime
+
+ The UPX stub is about 1700 bytes long, partly written in assembler
+ and only uses kernel syscalls. It is not linked against any libc.
+Specific drawbacks:
+
+ - You need additional free disk space for the uncompressed program
+ in your /tmp directory. This program is deleted immediately after
+ decompression, but you still need it for the full execution time
+ of the program.
+
+ - You must have /proc file system support as the stub wants to open
+ /proc/<pid>/exe and needs /proc/<pid>/fd/X. This also means that you
+ cannot compress programs that are used during the boot sequence
+ before /proc is mounted.
+
+ - Utilities like `top' will display numerical values in the process
+ name field. This is because Linux computes the process name from
+ the first argument of the last execve syscall (which is typically
+ something like /proc/<pid>/fd/3).
+
+ - Because of temporary decompression to disk the decompression speed
+ is not as fast as with the other executable formats. Still, I can see
+ no noticeable delay when starting programs like my ~3 MiB emacs (which
+ is less than 1 MiB when compressed :-).
+Extra options available for this executable format:
+
+ --force-execve Force the use of the generic linux/386 "execve"
+ format, i.e. do not try the linux/elf386 and
+ linux/sh386 formats.
+
+
+
+This is the executable format used by the Sony PlayStation (PSone),
+a Mips R3000 based gaming console which is popular since the late '90s.
+Support of this format is very similar to the Atari one, because of
+nostalgic feelings of one of the authors.
+Packed programs will be byte-identical to the original after uncompression,
+until further notice.
+Maximum uncompressed size: ~1.89 / ~7.60 MiB.
+Notes:
+
+ - UPX creates as default a suitable executable for CD-Mastering
+ and console transfer. For a CD-Master main executable you could also try
+ the special option "--boot-only" as described below.
+ It has been reported that upx packed executables are fully compatible with
+ the Sony PlayStation 2 (PS2, PStwo) and Sony PlayStation Portable (PSP) in
+ Sony PlayStation (PSone) emulation mode.
+
+ - Normally the packed files use the same memory areas like the uncompressed
+ versions, so they will not override other memory areas while unpacking.
+ If this isn't possible UPX will abort showing a 'packed data overlap'
+ error. With the "--force" option UPX will relocate the loading address
+ for the packed file, but this isn't a real problem if it is a single or
+ the main executable.
+Extra options available for this executable format:
+
+ --all-methods Compress the program several times, using all
+ available compression methods. This may improve
+ the compression ratio in some cases, but usually
+ the default method gives the best results anyway.
+
+ --8-bit Uses 8 bit size compression [default: 32 bit]
+
+ --8mib-ram PSone has 8 MiB ram available [default: 2 MiB]
+
+ --boot-only This format is for main exes and CD-Mastering only !
+ It may slightly improve the compression ratio,
+ decompression routines are faster than default ones.
+ But it cannot be used for console transfer !
+
+ --no-align This option disables CD mode 2 data sector format
+ alignment. May slightly improves the compression ratio,
+ but the compressed executable will not boot from a CD.
+ Use it for console transfer only !
+
+
+
+Same as win32/pe.
+
+
+
+This format is used by the TMT Pascal compiler - see http://www.tmt.com/ .
+Extra options available for this executable format:
+
+ --all-methods Compress the program several times, using all
+ available compression methods. This may improve
+ the compression ratio in some cases, but usually
+ the default method gives the best results anyway.
+
+ --all-filters Compress the program several times, using all
+ available preprocessing filters. This may improve
+ the compression ratio in some cases, but usually
+ the default filter gives the best results anyway.
+
+
+
+The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed
+bootable Linux kernel image ("vmlinuz", "zImage", "bzImage"),
+gzip-decompress it and re-compress it with the UPX compression method.
+vmlinuz/386 is completely unrelated to the other Linux executable
+formats, and it does not share any of their drawbacks.
+Notes:
+
+ - Be sure that "vmlinuz/386" or "bvmlinuz/386" is displayed
+ during compression - otherwise a wrong executable format
+ may have been used, and the kernel won't boot.
+Benefits:
+
+ - Better compression (but note that the kernel was already compressed,
+ so the improvement is not as large as with other formats).
+ Still, the bytes saved may be essential for special needs like
+ boot disks.
+
+ For example, this is what I get for my 2.2.16 kernel:
+ 1589708 vmlinux
+ 641073 bzImage [original]
+ 560755 bzImage.upx [compressed by "upx -9"]
+
+ - Much faster decompression at kernel boot time (but kernel
+ decompression speed is not really an issue these days).
+Drawbacks:
+
+ (none)
+Extra options available for this executable format:
+
+ --all-methods Compress the program several times, using all
+ available compression methods. This may improve
+ the compression ratio in some cases, but usually
+ the default method gives the best results anyway.
+
+ --all-filters Compress the program several times, using all
+ available preprocessing filters. This may improve
+ the compression ratio in some cases, but usually
+ the default filter gives the best results anyway.
+
+
+
+UPX has been successfully tested with the following extenders:
+ DOS4G, DOS4GW, PMODE/W, DOS32a, CauseWay.
+ The WDOS/X extender is partly supported (for details
+ see the file bugs BUGS).
+DLLs and the LX format are not supported.
+Extra options available for this executable format:
+
+ --le Produce an unbound LE output instead of
+ keeping the current stub.
+
+
+
+The PE support in UPX is quite stable now, but probably there are
+still some incompatibilities with some files.
+Because of the way UPX (and other packers for this format) works, you
+can see increased memory usage of your compressed files because the whole
+program is loaded into memory at startup.
+If you start several instances of huge compressed programs you're
+wasting memory because the common segments of the program won't
+get shared across the instances.
+On the other hand if you're compressing only smaller programs, or
+running only one instance of larger programs, then this penalty is
+smaller, but it's still there.
+If you're running executables from network, then compressed programs
+will load faster, and require less bandwidth during execution.
+DLLs are supported. But UPX compressed DLLs can not share common data and
+code when they got used by multiple applications. So compressing msvcrt.dll
+is a waste of memory, but compressing the dll plugins of a particular
+application may be a better idea.
+Screensavers are supported, with the restriction that the filename
+must end with ".scr" (as screensavers are handled slightly different
+than normal exe files).
+UPX compressed PE files have some minor memory overhead (usually in the
+10 - 30 KiB range) which can be seen by specifying the "-i" command
+line switch during compression.
+Extra options available for this executable format:
+
+ --compress-exports=0 Don't compress the export section.
+ Use this if you plan to run the compressed
+ program under Wine.
+ --compress-exports=1 Compress the export section. [DEFAULT]
+ Compression of the export section can improve the
+ compression ratio quite a bit but may not work
+ with all programs (like winword.exe).
+ UPX never compresses the export section of a DLL
+ regardless of this option.
+
+ --compress-icons=0 Don't compress any icons.
+ --compress-icons=1 Compress all but the first icon.
+ --compress-icons=2 Compress all icons which are not in the
+ first icon directory. [DEFAULT]
+ --compress-icons=3 Compress all icons.
+
+ --compress-resources=0 Don't compress any resources at all.
+
+ --keep-resource=list Don't compress resources specified by the list.
+ The members of the list are separated by commas.
+ A list member has the following format: I<type[/name]>.
+ I<Type> is the type of the resource. Standard types
+ must be specified as decimal numbers, user types can be
+ specified by decimal IDs or strings. I<Name> is the
+ identifier of the resource. It can be a decimal number
+ or a string. For example:
+
+ --keep-resource=2/MYBITMAP,5,6/12345
+
+ UPX won't compress the named bitmap resource "MYBITMAP",
+ it leaves every dialog (5) resource uncompressed, and
+ it won't touch the string table resource with identifier
+ 12345.
+
+ --force Force compression even when there is an
+ unexpected value in a header field.
+ Use with care.
+
+ --strip-relocs=0 Don't strip relocation records.
+ --strip-relocs=1 Strip relocation records. [DEFAULT]
+ This option only works on executables with base
+ address greater or equal to 0x400000. Usually the
+ compressed files becomes smaller, but some files
+ may become larger. Note that the resulting file will
+ not work under Windows 3.x (Win32s).
+ UPX never strips relocations from a DLL
+ regardless of this option.
+
+ --all-methods Compress the program several times, using all
+ available compression methods. This may improve
+ the compression ratio in some cases, but usually
+ the default method gives the best results anyway.
+
+ --all-filters Compress the program several times, using all
+ available preprocessing filters. This may improve
+ the compression ratio in some cases, but usually
+ the default filter gives the best results anyway.
+
+
+
+
+Exit status is normally 0; if an error occurs, exit status
+is 1. If a warning occurs, exit status is 2.
+UPX 's diagnostics are intended to be self-explanatory.
+
+
+
+
+Please report all bugs immediately to the authors.
+
+
+
+
+
+ Markus F.X.J. Oberhumer <markus@oberhumer.com>
+ http://www.oberhumer.com
+
+ Laszlo Molnar <ml1050@users.sourceforge.net>
+
+ John F. Reiser <jreiser@BitWagon.com>
+
+ Jens Medoch <jssg@users.sourceforge.net>
+
+
+
+
+Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer
+Copyright (C) 1996-2013 Laszlo Molnar
+Copyright (C) 2000-2013 John F. Reiser
+Copyright (C) 2002-2013 Jens Medoch
+This program may be used freely, and you are welcome to
+redistribute it under certain conditions.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+UPX License Agreement for more details.
+You should have received a copy of the UPX License Agreement along
+with this program; see the file LICENSE. If not, visit the UPX home page.
+
+