This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Noviseda_FactuGES2/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.dfm

925 lines
27 KiB
Plaintext

object srvComisiones: TsrvComisiones
OldCreateOrder = True
OnCreate = DARemoteServiceCreate
ConnectionName = 'IBX'
ServiceSchema = schComisiones
ServiceDataStreamer = Bin2DataStreamer
ExportedDataTables = <>
BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection
Height = 180
Width = 386
object schComisiones: TDASchema
ConnectionManager = dmServer.ConnectionManager
DataDictionary = DataDictionary
Diagrams = Diagrams
Datasets = <
item
Params = <>
Statements = <
item
Connection = 'IBX'
ConnectionType = 'Interbase'
Default = True
Name = 'IBX'
SQL =
'select ANO from'#10'(select distinct(substr(FECHA, 1,4)) as ANO'#10'from' +
' comisiones_liquidadas'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select disti' +
'nct '#39'Todos'#39' as ANO'#10'from empresas'#10#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ANO'
TableField = 'ANO'
end>
end>
Name = 'ListaAnosComisiones'
Fields = <
item
Name = 'ANO'
DataType = datString
Size = 254
end>
end
item
Params = <>
Statements = <
item
ConnectionType = 'Interbase'
Default = True
TargetTable = 'V_FACTURAS_CLIENTE'
Name = 'IBX'
SQL =
'SELECT V_FACTURAS_CLIENTE.ID,'#10' V_FACTURAS_CLIENTE.ID_EMPRE' +
'SA,'#10' V_FACTURAS_CLIENTE.FECHA_FACTURA,'#10' V_FACTURAS_C' +
'LIENTE.REFERENCIA,'#10' V_FACTURAS_CLIENTE.SITUACION,'#10' V' +
'_FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA,'#10' V_FACTURAS_CLIEN' +
'TE.ID_CLIENTE,'#10' V_FACTURAS_CLIENTE.ID_AGENTE,'#10' V_FAC' +
'TURAS_CLIENTE.BASE_IMPONIBLE,'#10' V_FACTURAS_CLIENTE.COMISION' +
','#10' V_FACTURAS_CLIENTE.IMPORTE_COMISION'#10#10'FROM V_FACTURAS_CL' +
'IENTE'#10'WHERE {Where}'#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'ID_EMPRESA'
TableField = 'ID_EMPRESA'
end
item
DatasetField = 'FECHA_FACTURA'
TableField = 'FECHA_FACTURA'
end
item
DatasetField = 'REFERENCIA'
TableField = 'REFERENCIA'
end
item
DatasetField = 'SITUACION'
TableField = 'SITUACION'
end
item
DatasetField = 'ID_COMISION_LIQUIDADA'
TableField = 'ID_COMISION_LIQUIDADA'
end
item
DatasetField = 'ID_CLIENTE'
TableField = 'ID_CLIENTE'
end
item
DatasetField = 'ID_AGENTE'
TableField = 'ID_AGENTE'
end
item
DatasetField = 'BASE_IMPONIBLE'
TableField = 'BASE_IMPONIBLE'
end
item
DatasetField = 'COMISION'
TableField = 'COMISION'
end
item
DatasetField = 'IMPORTE_COMISION'
TableField = 'IMPORTE_COMISION'
end>
end>
Name = 'FacturasComision'
Fields = <
item
Name = 'ID'
DataType = datInteger
InPrimaryKey = True
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'FECHA_FACTURA'
DataType = datDateTime
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'SITUACION'
DataType = datString
Size = 19
end
item
Name = 'ID_COMISION_LIQUIDADA'
DataType = datInteger
end
item
Name = 'ID_CLIENTE'
DataType = datInteger
end
item
Name = 'ID_AGENTE'
DataType = datInteger
end
item
Name = 'BASE_IMPONIBLE'
DataType = datCurrency
end
item
Name = 'COMISION'
DataType = datCurrency
end
item
Name = 'IMPORTE_COMISION'
DataType = datCurrency
end>
end
item
Params = <>
Statements = <
item
Connection = 'IBX'
TargetTable = 'COMISIONES_LIQUIDADAS'
SQL =
'SELECT'#10' COMISIONES_LIQUIDADAS.ID, COMISIONES_LIQUIDADAS.ID_EM' +
'PRESA,'#10' COMISIONES_LIQUIDADAS.REFERENCIA, COMISIONES_LIQUIDAD' +
'AS.ID_AGENTE,'#10' COMISIONES_LIQUIDADAS.DESCRIPCION, COMISIONES_' +
'LIQUIDADAS.FECHA,'#10' COMISIONES_LIQUIDADAS.IMPORTE_TOTAL, COMIS' +
'IONES_LIQUIDADAS.USUARIO,'#10' CONTACTOS.NOMBRE'#10'FROM COMISIONES_L' +
'IQUIDADAS'#10'LEFT JOIN CONTACTOS ON (CONTACTOS.ID = COMISIONES_LIQU' +
'IDADAS.ID_AGENTE)'#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'ID_EMPRESA'
TableField = 'ID_EMPRESA'
end
item
DatasetField = 'REFERENCIA'
TableField = 'REFERENCIA'
end
item
DatasetField = 'ID_AGENTE'
TableField = 'ID_AGENTE'
end
item
DatasetField = 'DESCRIPCION'
TableField = 'DESCRIPCION'
end
item
DatasetField = 'FECHA'
TableField = 'FECHA'
end
item
DatasetField = 'IMPORTE_TOTAL'
TableField = 'IMPORTE_TOTAL'
end
item
DatasetField = 'USUARIO'
TableField = 'USUARIO'
end
item
DatasetField = 'NOMBRE'
TableField = '<unknown>'
SQLOrigin = 'NOMBRE'
end>
end>
Name = 'Comisiones'
Fields = <
item
Name = 'ID'
DataType = datInteger
InPrimaryKey = True
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'ID_AGENTE'
DataType = datInteger
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
end
item
Name = 'FECHA'
DataType = datDateTime
end
item
Name = 'IMPORTE_TOTAL'
DataType = datCurrency
end
item
Name = 'USUARIO'
DataType = datString
Size = 30
end
item
Name = 'NOMBRE'
DataType = datString
Size = 255
end>
end>
JoinDataTables = <>
UnionDataTables = <>
Commands = <
item
Params = <
item
Name = 'OLD_ID'
DataType = datInteger
Value = ''
ParamType = daptInput
end>
Statements = <
item
Connection = 'IBX'
TargetTable = 'COMISIONES_LIQUIDADAS'
SQL =
'DELETE'#10' FROM'#10' COMISIONES_LIQUIDADAS'#10' WHERE'#10' (ID = :OLD_I' +
'D)'#10
StatementType = stSQL
ColumnMappings = <>
end>
Name = 'Delete_Comisiones'
end
item
Params = <
item
Name = 'ID'
DataType = datInteger
Value = ''
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
Value = ''
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
Value = ''
end
item
Name = 'ID_AGENTE'
DataType = datInteger
Value = ''
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
Value = ''
end
item
Name = 'FECHA'
DataType = datDateTime
Value = ''
end
item
Name = 'IMPORTE_TOTAL'
DataType = datDecimal
Value = ''
end
item
Name = 'USUARIO'
DataType = datString
Size = 30
Value = ''
end>
Statements = <
item
Connection = 'IBX'
Default = True
TargetTable = 'COMISIONES_LIQUIDADAS'
SQL =
'INSERT'#10' INTO COMISIONES_LIQUIDADAS'#10' (ID, ID_EMPRESA, REFEREN' +
'CIA, ID_AGENTE, DESCRIPCION, FECHA, IMPORTE_TOTAL, USUARIO)'#10' VA' +
'LUES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, :ID_AGENTE, :DESCRIPCIO' +
'N, :FECHA, :IMPORTE_TOTAL, :USUARIO)'#10
StatementType = stSQL
ColumnMappings = <>
end>
Name = 'Insert_Comisiones'
end
item
Params = <
item
Name = 'ID'
DataType = datInteger
Value = ''
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
Value = ''
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
Value = ''
end
item
Name = 'ID_AGENTE'
DataType = datInteger
Value = ''
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
Value = ''
end
item
Name = 'FECHA'
DataType = datDateTime
Value = ''
end
item
Name = 'IMPORTE_TOTAL'
DataType = datDecimal
Value = ''
end
item
Name = 'USUARIO'
DataType = datString
Size = 30
Value = ''
end
item
Name = 'OLD_ID'
Value = ''
end>
Statements = <
item
Connection = 'IBX'
TargetTable = 'COMISIONES_LIQUIDADAS'
SQL =
'UPDATE COMISIONES_LIQUIDADAS'#10' SET'#10' ID = :ID,'#10' ID_EMPRESA ' +
'= :ID_EMPRESA,'#10' REFERENCIA = :REFERENCIA,'#10' ID_AGENTE = :ID' +
'_AGENTE,'#10' DESCRIPCION = :DESCRIPCION,'#10' FECHA = :FECHA,'#10' ' +
' IMPORTE_TOTAL = :IMPORTE_TOTAL,'#10' USUARIO = :USUARIO'#10' WHERE'#10 +
' (ID = :OLD_ID)'#10
StatementType = stSQL
ColumnMappings = <>
end>
Name = 'Update_Comisiones'
end
item
Params = <
item
Name = 'IDCOMISIONLIQUIDADA'
Value = ''
end
item
Name = 'COMISION'
DataType = datCurrency
Value = ''
end
item
Name = 'IMPORTECOMISION'
Value = ''
end
item
Name = 'OLD_ID'
Value = ''
end>
Statements = <
item
Connection = 'IBX'
ConnectionType = 'Interbase'
Default = True
TargetTable = 'FACTURAS_CLIENTE'
SQL =
'UPDATE FACTURAS_CLIENTE'#10' SET'#10' ID_COMISION_LIQUIDADA = :IDCOM' +
'ISIONLIQUIDADA,'#10' COMISION = :COMISION,'#10' IMPORTE_COMISION =' +
' :IMPORTECOMISION'#10' WHERE'#10' (ID = :OLD_ID)'#10
StatementType = stSQL
ColumnMappings = <>
end>
Name = 'Insert_FacturasComision'
end
item
Params = <
item
Name = 'OLD_ID'
DataType = datInteger
Value = ''
end>
Statements = <
item
Connection = 'IBX'
ConnectionType = 'Interbase'
Default = True
TargetTable = 'FACTURAS_CLIENTE'
SQL =
'UPDATE FACTURAS_CLIENTE'#10' SET'#10' ID_COMISION_LIQUIDADA = NULL'#10' ' +
' WHERE'#10' (ID = :OLD_ID)'#10
StatementType = stSQL
ColumnMappings = <>
end>
Name = 'Delete_FacturasComision'
end
item
Params = <
item
Name = 'IDCOMISIONLIQUIDADA'
Value = ''
end
item
Name = 'COMISION'
DataType = datCurrency
Value = ''
end
item
Name = 'IMPORTECOMISION'
Value = ''
end
item
Name = 'OLD_ID'
Value = ''
end>
Statements = <
item
Connection = 'IBX'
ConnectionType = 'Interbase'
Default = True
TargetTable = 'FACTURAS_CLIENTE'
SQL =
'UPDATE FACTURAS_CLIENTE'#10' SET '#10' ID_COMISION_LIQUIDADA = :IDCO' +
'MISIONLIQUIDADA,'#10' COMISION = :COMISION,'#10' IMPORTE_COMISION ' +
'= :IMPORTECOMISION'#10' WHERE'#10' (ID = :OLD_ID)'#10
StatementType = stSQL
ColumnMappings = <>
end>
Name = 'Update_FacturasComision'
end>
RelationShips = <
item
Name = 'FacturasComision_FK'
MasterDatasetName = 'Comisiones'
MasterFields = 'ID'
DetailDatasetName = 'FacturasComision'
DetailFields = 'ID_COMISION_LIQUIDADA'
RelationshipType = rtForeignKey
end>
UpdateRules = <
item
Name = 'Insert FacturasCliente'
DoUpdate = False
DoDelete = False
DatasetName = 'FacturasCliente'
FailureBehavior = fbRaiseException
end
item
Name = 'Insert DetallesFacturasCliente'
DoUpdate = False
DoDelete = False
DatasetName = 'FacturasCliente_Detalles'
FailureBehavior = fbRaiseException
end
item
Name = 'Update FacturasCliente'
DoInsert = False
DoDelete = False
DatasetName = 'FacturasCliente'
FailureBehavior = fbRaiseException
end
item
Name = 'Update DetallesFacturasCliente'
DoInsert = False
DoDelete = False
DatasetName = 'FacturasCliente_Detalles'
FailureBehavior = fbRaiseException
end
item
Name = 'Delete DetallesFacturasCliente'
DoUpdate = False
DoInsert = False
DatasetName = 'FacturasCliente_Detalles'
FailureBehavior = fbRaiseException
end
item
Name = 'Delete FacturasCliente'
DoUpdate = False
DoInsert = False
DatasetName = 'FacturasCliente'
FailureBehavior = fbRaiseException
end>
Version = 0
Left = 48
Top = 24
end
object Diagrams: TDADiagrams
Left = 150
Top = 74
DiagramData = '<Diagrams>'#13#10'</Diagrams>'#13#10
end
object DataDictionary: TDADataDictionary
Fields = <
item
Name = 'FacturasCliente_CLIENTE_FINAL'
DataType = datString
Size = 255
DisplayLabel = 'Cliente final'
end
item
Name = 'FacturasCliente_ID'
DataType = datAutoInc
GeneratorName = 'GEN_FACTURAS_CLIENTE_ID'
Required = True
DisplayLabel = 'ID'
ServerAutoRefresh = True
end
item
Name = 'FacturasCliente_ID_EMPRESA'
DataType = datInteger
DisplayLabel = 'ID_EMPRESA'
end
item
Name = 'FacturasCliente_FECHA_FACTURA'
DataType = datDateTime
DisplayLabel = 'Fecha de las factura'
end
item
Name = 'FacturasCliente_VENCIMIENTO'
DataType = datInteger
DisplayLabel = 'Vencimiento'
end
item
Name = 'FacturasCliente_SITUACION'
DataType = datString
Size = 255
DisplayLabel = 'Situaci'#243'n'
end
item
Name = 'FacturasCliente_BASE_IMPONIBLE'
DataType = datCurrency
DisplayLabel = 'Base imponible'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_IMPORTE_DESCUENTO'
DataType = datCurrency
DisplayLabel = 'Importe dto.'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_IMPORTE_IVA'
DataType = datCurrency
DisplayLabel = 'Importe IVA'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_IMPORTE_TOTAL'
DataType = datCurrency
DisplayLabel = 'Importe total'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_FORMA_PAGO'
DataType = datMemo
DisplayLabel = 'Forma de pago'
end
item
Name = 'FacturasCliente_ID_CLIENTE'
DataType = datInteger
DisplayLabel = 'ID_CLIENTE'
end
item
Name = 'FacturasCliente_NIF_CIF'
DataType = datString
Size = 15
DisplayLabel = 'NIF/CIF'
end
item
Name = 'FacturasCliente_CODIGO_POSTAL'
DataType = datString
Size = 10
DisplayLabel = 'C'#243'd. postal'
end
item
Name = 'FacturasCliente_FECHA_ALTA'
DataType = datDateTime
DisplayLabel = 'FECHA_ALTA'
end
item
Name = 'FacturasCliente_FECHA_MODIFICACION'
DataType = datDateTime
DisplayLabel = 'FECHA_MODIFICACION'
end
item
Name = 'FacturasCliente_OBSERVACIONES'
DataType = datMemo
DisplayLabel = 'Observaciones'
end
item
Name = 'FacturasCliente_NOMBRE'
DataType = datString
Size = 100
DisplayLabel = 'Cliente'
end
item
Name = 'FacturasCliente_CALLE'
DataType = datString
Size = 150
DisplayLabel = 'Direcci'#243'n'
end
item
Name = 'FacturasCliente_PROVINCIA'
DataType = datString
Size = 30
DisplayLabel = 'Provincia'
end
item
Name = 'FacturasCliente_POBLACION'
DataType = datString
Size = 150
DisplayLabel = 'Poblaci'#243'n'
end
item
Name = 'FacturasCliente_IVA'
DataType = datFloat
DisplayLabel = 'IVA'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_USUARIO'
DataType = datString
Size = 100
DisplayLabel = 'USUARIO'
end
item
Name = 'FacturasCliente_DESCUENTO'
DataType = datFloat
DisplayLabel = 'Dto.'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_Detalles_ID'
DataType = datAutoInc
GeneratorName = 'GEN_FACTURA_CLIENTE_DETALLES_ID'
Required = True
DisplayLabel = 'ID'
ServerAutoRefresh = True
end
item
Name = 'FacturasCliente_Detalles_ID_FACTURA'
DataType = datInteger
DisplayLabel = 'ID_FACTURA'
end
item
Name = 'FacturasCliente_Detalles_TIPO_DETALLE'
DataType = datString
Size = 25
DisplayLabel = 'Tipo detalle'
end
item
Name = 'FacturasCliente_Detalles_CONCEPTO'
DataType = datString
Size = 2000
DisplayLabel = 'Concepto'
end
item
Name = 'FacturasCliente_Detalles_IMPORTE_UNIDAD'
DataType = datCurrency
DisplayLabel = 'Importe unidad'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_Detalles_IMPORTE_TOTAL'
DataType = datCurrency
DisplayLabel = 'Importe total'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_Detalles_VISIBLE'
DataType = datInteger
DisplayLabel = #191'Visible?'
end
item
Name = 'FacturasCliente_Detalles_POSICION'
DataType = datInteger
DisplayLabel = 'Posici'#243'n'
end
item
Name = 'FacturasCliente_Detalles_CANTIDAD'
DataType = datFloat
DisplayLabel = 'Cantidad'
end
item
Name = 'FacturasCliente_FECHA_PAGADO'
DataType = datDateTime
DisplayLabel = 'Fecha de pago'
end
item
Name = 'FacturasCliente_FECHA_VENCIMIENTO'
DataType = datDateTime
DisplayLabel = 'Fecha de vencimiento'
ServerAutoRefresh = True
end
item
Name = 'FacturasCliente_RE'
DataType = datFloat
DisplayLabel = 'RE'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_IMPORTE_RE'
DataType = datCurrency
DisplayLabel = 'Importe RE'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_REFERENCIA'
DataType = datString
Size = 20
DisplayLabel = 'Referencia'
ServerAutoRefresh = True
end
item
Name = 'FacturasCliente_ID_FORMA_PAGO'
DataType = datInteger
end
item
Name = 'FacturasCliente_IMPORTE_NETO'
DataType = datCurrency
DisplayLabel = 'Importe neto'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_IMPORTE_PORTE'
DataType = datCurrency
DisplayLabel = 'Importe del porte'
Alignment = taRightJustify
end
item
Name = 'FacturasCliente_RECARGO_EQUIVALENCIA'
DataType = datSmallInt
DisplayLabel = #191'Con R.E.?'
end
item
Name = 'FacturasCliente_TIPO'
DataType = datString
Size = 1
DisplayLabel = 'Tipo'
end
item
Name = 'FacturasCliente_ID_TIPO_IVA'
DataType = datInteger
DisplayLabel = 'ID_TIPO_IVA'
end
item
Name = 'FacturasCliente_ID_COMISION_LIQUIDADA'
DataType = datInteger
DisplayLabel = 'ID_COMISION_LIQUIDADA'
end
item
Name = 'FacturasCliente_REFERENCIA_COMISION'
DataType = datString
Size = 255
DisplayLabel = 'REFERENCIA_COMISION'
end
item
Name = 'FacturasCliente_ID_AGENTE'
DataType = datInteger
DisplayLabel = 'ID_AGENTE'
end
item
Name = 'FacturasCliente_Detalles_ID_ARTICULO'
DataType = datInteger
end
item
Name = 'FacturasCliente_Detalles_DESCUENTO'
DataType = datFloat
end
item
Name = 'FacturasCliente_Detalles_IMPORTE_PORTE'
DataType = datCurrency
end
item
Name = 'FacturasCliente_Detalles_REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'FacturasCliente_Detalles_REFERENCIA_PROVEEDOR'
DataType = datString
Size = 255
end
item
Name = 'FacturasCliente_DATOS_BANCARIOS'
DataType = datString
Size = 255
DisplayLabel = 'Datos bancarios'
end
item
Name = 'FacturasCliente_FECHA_RETENCION'
DataType = datDateTime
end
item
Name = 'FacturasCliente_ID_DIRECCION'
DataType = datInteger
end
item
Name = 'FacturasCliente_PERSONA_CONTACTO'
DataType = datString
Size = 255
end
item
Name = 'FacturasCliente_RETENCION'
DataType = datFloat
DisplayLabel = 'RETENCION'
end
item
Name = 'FacturasCliente_IMPORTE_RETENCION'
DataType = datCurrency
DisplayLabel = 'IMPORTE_RETENCION'
end
item
Name = 'FacturasCliente_DESCUENTO2'
DataType = datFloat
DisplayLabel = 'DESCUENTO2'
end
item
Name = 'FacturasCliente_IMPORTE_DESCUENTO2'
DataType = datCurrency
DisplayLabel = 'IMPORTE_DESCUENTO2'
end
item
Name = 'FacturasCliente_COMISION'
DataType = datFloat
DisplayLabel = 'COMISION'
end
item
Name = 'FacturasCliente_IMPORTE_COMISION'
DataType = datCurrency
DecimalPrecision = 11
DecimalScale = 2
DisplayLabel = 'IMPORTE_COMISION'
end>
Left = 150
Top = 22
end
object Bin2DataStreamer: TDABin2DataStreamer
Left = 48
Top = 80
end
object bpComisiones: TDABusinessProcessor
Schema = schComisiones
InsertCommandName = 'Insert_Comisiones'
DeleteCommandName = 'Delete_Comisiones'
UpdateCommandName = 'Update_Comisiones'
ReferencedDataset = 'Comisiones'
ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands]
UpdateMode = updWhereKeyOnly
Left = 248
Top = 24
end
object bpFacturasComision: TDABusinessProcessor
Schema = schComisiones
InsertCommandName = 'Insert_FacturasComision'
DeleteCommandName = 'Delete_FacturasComision'
UpdateCommandName = 'Update_FacturasComision'
ReferencedDataset = 'FacturasComision'
ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands]
UpdateMode = updWhereKeyOnly
Left = 248
Top = 80
end
end