WCF Service

NET-WS-Farmacia

WCF service for pharmacy integration

60
Endpoints
39
Internal Funcs
155
SQL Statements

Last commit: 2025-09-30

🔗 Cross-service similarity detected

⚠ Similar operations in other services:
ObtenerPaciente also in → NET-WS-Pacs, NET-WS-Informes, NET-WS-Monitorizacion
ObtenerCodPersona also in → NET-WS-HL7Broker, NET-WS-FuncionesGenerales
ObtenerCodUsuario also in → NET-WS-Pacs, NET-WS-Informes, NET-WS-FuncionesGenerales
ObtenerCodAsistencia also in → NET-WS-HL7Broker, NET-WS-PruebasPDF, NET-WS-Monitorizacion
ContarSinProcesar also in → NET-WS-Pacs, NET-WS-Laboratorio
ObtenerCodigoCentro also in → NET-WS-Laboratorio
🔁 Similar SQL queries found in other services:
SELECT * FROM [Hoja1$]…
→ also in NET-AnonimizadorDICOM, NET-WS-FormacionCUN, NET-WS-CRM
SELECT 1 EXISTE FROM EC.EC0100 WHERE EC01NUMENSAYO_FUN = :numEnsayoFun…
→ also in NET-WS-HL7Broker, NET-WS-CRM, NET-WS-Informes, NET-WS-FuncionesGenerales
SELECT EC12ID_PROCEDIMIENTO_FUN FROM EC1200, EC0100…
→ also in NET-WS-HL7Broker, NET-WS-FormacionCUN, NET-WS-CRM
SELECT NVL(MAX(CI10.CI10NUMDIRECCI), 0) + 1 CI10NUMDIRECCI FROM CI1000 CI10 WHERE CI10.CI2…
→ also in NET-WS-FormacionCUN, NET-WS-CRM
SELECT EC03COD from EC0300 where sg02cod = :codStakeholder…
→ also in NET-WS-CRM
🗄 Shared DB tables with other services:
CI2200DUALPR0400SG0200ci2200AD0200ad0100ad0500GC7300

📋 Endpoints Overview (60)

Operation ⇅Verb Returns ⇅Parameters SQLs ⇅DescriptionFlags
ObtenerPaciente SOAP RespPacienteEntity numHistoria 2 Obtiene los datos de un paciente a partir del nº de historia 🔁
ObtenerConsumos SOAP RespListConsumosEntity codPersona, esConsumoQuirofano, -1 9 Obtiene los consumos para un paciente que tenga una intervención. Si no se pasa la intervención (hoj…
RegistrarConsumos SOAP RespListConsumosEntity consumos 0 Registra una lista de consumos realizados a un paciente. Los consumos pueden ser de Quirófano o de A…
EliminarConsumo SOAP RespListConsumosEntity consumo 2 Elimina un consumo
ObtenerProducto SOAP RespProductoEntity codigo 0 Obtiene la información de un producto a partir del código de barras.
CerrarPaciente SOAP RespBool paciente 0 Cierra los consumos de un paciente
GetInfoEspecialidad SOAP RespEspecialidadBaxterEntity codEspecialidad 1 Obtiene la información de la especialidad solicitada (codProducto=codEspecialidad)
GetInfoLote SOAP RespLoteBaxterEntity codLote 1 Obtiene la información del Lote solicitado (codLote = codAlbaran)
GetInfoPreparacion SOAP RespPreparacionBaxterEntity idPreparacion, fr28NumLinea, fr43NumLinea 1 Obtiene la información de la Preparación solicitada
GetInfoFamilia SOAP RespFamiliaKardexEntity codFamilia 1 Obtiene la información de la familia solicitada
GetInfoProducto SOAP RespProductoKardexEntity codProducto 1 Obtiene la información del producto solicitado
ValidarProductoMadrid SOAP RespBool codProducto 0 Valida si producto solicitado esta activo para Madrid
GetInfoProveedor SOAP RespProveedorKardexEntity codProveedor 1 Obtiene la información del proveedor solicitado
GetInfoAlbaran SOAP RespListAlbaranKardex codAlbaran 3 Obtiene la información del albarán solicitado
GetInfoPeticion SOAP RespListPeticionKardexEntity codPeticion 0 Obtiene la información de la petición solicitada
GetInfoServicio SOAP RespListPeticionKardexEntity codPeticionServ 1 Obtiene la información de la petición solicitada, asociada a un servicio
GetInfoQuirofano SOAP RespListPeticionKardexEntity codPeticionQuir 1 Obtiene la información de la petición solicitada, asociada a una petición de quirófano
GetInfoPeticionByFecha SOAP RespListPeticionKardexEntity fechaReg, codTipoEvento 6 Obtiene la información de las peticiones que tienen el mismo FRADFECHA_REG
GetInfoCarro SOAP RespListPeticionKardexEntity fechaCarga, horaCarga, numRevision, codTipoEvento 3 Obtiene la información de la petición solicitada, asociada a una petición de dispensación de carro
GetInfoFabricacion SOAP RespListPeticionKardexEntity codPeticion, numLinea, numLineaToma, codTipoEvento 0 Obtiene la información de la petición solicitada, asociada a una petición de fabricación de citostát…
GetInfoFabricacionByFecha SOAP RespListPeticionKardexEntity fechaReg, codTipoEvento 7 Obtiene la información de las peticiones de fabricación que tienen el mismo FRADFECHA_REG
GetInfoKit SOAP RespListPeticionKardexEntity codKit, cantidadKit, codTipoEvento, cantidadOriginal 2 Obtiene la información de la petición solicitada, asociada a una petición de fabricación de kits
GetInfoPeticionExterno SOAP RespListPeticionKardexEntity codDispensacion, codTipoEvento 1 Obtiene la información de la petición solicitada, asociada a una petición de dispensación a paciente…
GetInfoDevolucionProveedor SOAP RespListPeticionKardexEntity codDevolucion 0 Obtiene la información de la petición solicitada, asociada a una petición de devolución a proveedor
ObtenerCodProducto SOAP RespString codIntFar 1 Obtiene el código de producto a partir del código interno de farmacia
SetPreparacionTerminada SOAP RespVoid codPeticion, fr28numlinea, fr43numlinea 1 Marca una preparación como terminada
GetPeticionesAsociadas SOAP RespListPeticionKardexEntity fechaReg, codTipoEvento 6 Obtiene la lista de peticiones + numLinea asociadas a FRADFECHA_REG
GetEstadoPeticion SOAP RespString codPeticion, codTipoEvento 2 Devuelve el estado de una petición
ActualizarTodasLineas SOAP RespVoid codPeticion, codTipoEvento 2 Actualiza todas las líneas de una petición
ActualizarLinea SOAP RespVoid codPeticion, numLinea, cantidad, codTipoEvento 3 Actualiza una línea
RealizarMovimiento SOAP RespVoid codPeticion, codCentro, codDpto, codSeccion, codProducto, cantidad, codTipoMov, codTipoEvento, addObservacion, numRevision, cambiarAlmacenes 3 Realiza un movimiento de almacén
RealizarCargoServicio SOAP RespVoid codPeticion, codDpto, codSeccion, codProducto, cantidad, tamEnvase, esInteresCientifico, codDptoCargo, numCuenta 2 Realiza un cargo a servicio
RealizarCargoPaciente SOAP RespVoid fechaCarga, horaCarga, codPeticion, numLinea, horaToma, codTipoEvento 2 Realiza un cargo a paciente
ActualizarPeticion SOAP RespVoid codPeticion, codTipoEvento 6 Actualiza una petición
InsertarResultadoConsulta SOAP RespVoid codCentro, codProducto, fechaConsulta, existencias, ubicacionString, tipoConsulta, ubicacion 1 Inserta el resultado de una consulta sobre el stock de un producto
InsertarResultadoConsultaRepo SOAP RespVoid codCentro, codProducto, fechaConsulta, cantidad, ubicacion 1 Inserta el resultado de una consulta sobre la reposición de un producto
AumentarExistencias SOAP RespVoid codCentro, codProducto, cantidad 1 Realiza un movimiento de almacén, que consiste en aumentar las existencias
DisminuirExistencias SOAP RespVoid codCentro, codProducto, cantidad 1 Realiza un movimiento de almacén, que consiste en disminuir las existencias
InsertarEntradaProducto SOAP RespVoid codProducto, cantidad 1 Inserta un registro de entrada de producto en FRAD00
ActualizarMaestro SOAP RespVoid codProducto, ubicacionKardex 1 Actualiza el maestro de productos, para añadirle la ubicación de Kardex
ContarSinProcesar SOAP RespInt 1 Devuelve los registros sin procesar 🔁
ObtenerCodPersona SOAP RespString numHistoria 1 🔁
GetZFM SOAP RespZFMEntity registro, tipo 1
GetRDE SOAP RespRDEEntity registro 1 Obtener prescripción
ObtenerSiguienteSecuencia SOAP RespString codigo 5
InsertarFRK100 SOAP RespVoid codMovimiento, fecMovimiento, codDepto, codProducto, cantidad, observacion 1
InsertarFR6500 SOAP RespVoid codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codUsuario 1 Método para insertar los consumos de medicamentos.
ActualizarFR6500 SOAP RespVoid codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codUsuario 1 <param name="codPersona"></param> <param name="codProducto"></param> <param name="fecha"></param> <p…
InsertarFR8000 SOAP RespVoid numMovimiento, codAlmacenOrigen, codAlmacenDestino, codTipoMovimiento, fecMovimiento, codProducto, cantidadProducto, precioUnidad, codUnidadMedida, uniSalen, observMovimiento 1
InsertarFRZ200 SOAP RespVoid strockActual, stockMinimo, stockMaximo, idMaquina, codProducto, idCajon, division, subDivision 1
ActualizarFRZ200 SOAP RespVoid strockActual, stockMinimo, stockMaximo, idMaquina, codProducto, idCajon, division, subDivision 1
EliminarFRZ200 SOAP RespVoid idMaquina, codProducto, idCajon, division, subDivision 1
InsertarFRS400 SOAP RespVoid numMovimiento, codCentro, codAlmacenOrigen, codAlmacenDestino, codTipoMovimiento, fecMovimiento, observMovimiento, codProducto, cantidadProducto 1 Insertar movimientos en el maestro de Madrid
ObtenerCodigoCentro SOAP RespString codDepartamento 1 Obtiene el código del Centro al que pertenece el código de departamento 🔁
ObtenerCodUsuario SOAP RespString codUsuario 1 Obtiene el código del Usuario SG02COD a partir del código de LDAP (SG02CODWINDOWS) 🔁
ObtenerCodAsistencia SOAP RespString numHistoria 2 🔁
ObtenerCodProceso SOAP RespString codAsistencia, codDepartamento 1
BuscarProductoPorCodNacFR73 SOAP RespString codNac 1 Obtiene el código de CUN de un producto de FR73, a partir del código nacional(6 dígitos)
InsertarConsumoFR65 SOAP RespVoid codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codDpto 1 Insertar consumo igual que Pyxis pero sin insertar comentario.
InsertarConsumoFRN0 SOAP RespVoid codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codDpto 1 Insertar consumo para Nefrolink, igual que Pyxis pero sin insertar comentario.

🔌 Endpoint Details

ObtenerPaciente

SOAP

Obtiene los datos de un paciente a partir del nº de historia

⚠ Similar operation ObtenerPaciente exists in: NET-WS-Pacs, NET-WS-Informes, NET-WS-Monitorizacion

📥 Input Parameters

intnumHistoria

📤 Return Type

RespPacienteEntity
ci2200

🗄 SQL Queries (2)

select CI21CodPersona,CI22NumHistoria,CI22PriApel,CI22SegApel, CI22Nombre
select CI21CodPersona,CI22NumHistoria,CI22PriApel,CI22SegApel, CI22Nombre   from ci2200 where CI22NumHistoria = :numHistoria
ci2200

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

ce.Debbug = "Operación realizada con éxito";
📝 Suggested XML doc comment
/// <summary>
/// Obtiene los datos de un paciente a partir del nº de historia
/// </summary>
/// <param name="numHistoria">TODO: describe numHistoria</param>
/// <returns>RespPacienteEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerPaciente_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var numHistoria = 1;

            // Act
            var result = client.ObtenerPaciente(numHistoria);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_ObtenerPaciente_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var numHistoria = -1;

            // Act
            var result = client.ObtenerPaciente(numHistoria);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ObtenerConsumos

SOAP

Obtiene los consumos para un paciente que tenga una intervención. Si no se pasa la intervención (hojaQuir) se busca la que tenga.

📥 Input Parameters

intcodPersona
BooleanesConsumoQuirofano
int codHojaQuir =-1

📤 Return Type

RespListConsumosEntity
PRC600 PR0400 fr7300

🗄 SQL Queries (9)

SELECT AG1100.AG11DesRecurso, PR0100.PR01Descorta, PR0400.AD01CodAsistenci,
EXISTS (SELECT 1 FROM PRC600 WHERE PRC600.PR62CodHojaQuir = PR0400.PR62CodHojaQuir) AND
PRC600
(NOT EXISTS(SELECT 1 FROM PRC600 WHERE PRC600.PR62CodHojaQuir = PR0400.PR62CodHojaQuir AND PRC600.PRC5CodEstInterv = 13) OR
PRC600
select fr1800.PR62CODHOJAQUIR CODHOJAQUIR, fr1800.FR18NUMLINEA NUMLINEA, fr1800.FR73CODPRODUCTO CODPRODUCTO, '' CODUNIMEDIDA, fr1800.FR18CANTCONSUMIDA CANTIDAD,
select fr1700.PR62CODHOJAQUIR CODHOJAQUIR, fr1700.FR17NUMLINEA NUMLINEA, fr1700.FR73CODPRODUCTO CODPRODUCTO, fr1700.FR93CODUNIMEDIDA CODUNIMEDIDA, fr1700.FR17CANTIDAD CANTIDAD,
SELECT AG1100.AG11DesRecurso, PR0100.PR01Descorta, PR0400.AD01CodAsistenci,   PR0400.AD07CodProceso, PR0400.AD02CodDpto, PR0400.PR62CodHojaQuir    FROM PR0400, CI0100, AG1100, PR6200, PR0100 WHERE    PR0400.CI21CodPersona = :CodPersona AND   PR0400.PR01CodActuacion = PR0100.PR01CodActuacion AND   PR0400.PR04NumActPlan = CI0100.PR04NumActPlan AND   PR0400.PR62CodHojaQuir = PR6200.PR62CodHojaQuir AND   CI0100.CI01SitCita = '1' AND   CI0100.AG11CodRecurso = AG1100.AG11CodRecurso AND   PR0400.PR37CodEstado IN (3, 4, 5) AND   PR0400.PR04FeciniAct BETWEEN TRUNC(SYSDATE - 7) AND SYSDATE
PR0400
SELECT AG1100.AG11DesRecurso, PR0100.PR01Descorta, PR0400.AD01CodAsistenci,   PR0400.AD07CodProceso, PR0400.AD02CodDpto, PR0400.PR62CodHojaQuir    FROM PR0400, CI0100, AG1100, PR6200, PR0100, AD0100 WHERE    PR0400.CI21CodPersona = :CodPersona AND   PR0400.PR01CodActuacion = PR0100.PR01CodActuacion AND   PR0400.AD01CodAsistenci = AD0100.AD01CodAsistenci AND   AD0100.AD01FecFin IS NULL AND   PR0400.PR04NumActPlan = CI0100.PR04NumActPlan AND   PR0400.PR62CodHojaQuir = PR6200.PR62CodHojaQuir AND   CI0100.CI01SitCita = '1' AND   CI0100.AG11CodRecurso = AG1100.AG11CodRecurso AND   EXISTS (SELECT 1 
PR0400 PRC600
select fr1800.PR62CODHOJAQUIR CODHOJAQUIR, fr1800.FR18NUMLINEA NUMLINEA, fr1800.FR73CODPRODUCTO CODPRODUCTO, '' CODUNIMEDIDA, fr1800.FR18CANTCONSUMIDA CANTIDAD,   fr7300.FR73DESPRODUCTO DESPRODUCTO, 1 ESCONSUMOQUIROFANO, FR1800.FR18FECADD FECADD, fr1800.fr51numreg, fr1800.frm5numreg from fr7300, fr1800 where   fr7300.FR73CODPRODUCTO = fr1800.FR73CODPRODUCTO and   fr1800.PR62CODHOJAQUIR = :hojaQuiro   order by fr1800.fr18fecadd desc
fr7300
select fr1700.PR62CODHOJAQUIR CODHOJAQUIR, fr1700.FR17NUMLINEA NUMLINEA, fr1700.FR73CODPRODUCTO CODPRODUCTO, fr1700.FR93CODUNIMEDIDA CODUNIMEDIDA, fr1700.FR17CANTIDAD CANTIDAD,   fr7300.FR73DESPRODUCTO DESPRODUCTO, 0 ESCONSUMOQUIROFANO, FR1700.FR17FECADD FECADD from fr7300, fr1700 where   fr7300.FR73CODPRODUCTO = fr1700.FR73CODPRODUCTO and   fr1700.PR62CODHOJAQUIR = :hojaQuiro   order by fr1700.fr17fecadd desc
fr7300

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

sb.AppendLine(" SELECT AG1100.AG11DesRecurso, PR0100.PR01Descorta, PR0400.AD01CodAsistenci, ");
sb.AppendLine(" PR0400.AD07CodProceso, PR0400.AD02CodDpto, PR0400.PR62CodHojaQuir ");
sb.AppendLine(" FROM PR0400, CI0100, AG1100, PR6200, PR0100 WHERE ");
sb.AppendLine(" PR0400.CI21CodPersona = :CodPersona AND ");
sb.AppendLine(" PR0400.PR01CodActuacion = PR0100.PR01CodActuacion AND ");
sb.AppendLine(" PR0400.PR04NumActPlan = CI0100.PR04NumActPlan AND ");
sb.AppendLine(" PR0400.PR62CodHojaQuir = PR6200.PR62CodHojaQuir AND ");
sb.AppendLine(" CI0100.CI01SitCita = '1' AND ");
📝 Suggested XML doc comment
/// <summary>
/// Obtiene los consumos para un paciente que tenga una intervención. Si no se pasa la intervención (hojaQuir) se busca la que tenga.
/// </summary>
/// <param name="codPersona">TODO: describe codPersona</param>
/// <param name="esConsumoQuirofano">TODO: describe esConsumoQuirofano</param>
/// <param name="-1">TODO: describe -1</param>
/// <returns>RespListConsumosEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerConsumos_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPersona = 1;
            var esConsumoQuirofano = true;
            var -1 = 1;

            // Act
            var result = client.ObtenerConsumos(codPersona, esConsumoQuirofano, -1);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_ObtenerConsumos_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPersona = -1;
            var esConsumoQuirofano = -1;
            var -1 = -1;

            // Act
            var result = client.ObtenerConsumos(codPersona, esConsumoQuirofano, -1);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

RegistrarConsumos

SOAP

Registra una lista de consumos realizados a un paciente. Los consumos pueden ser de Quirófano o de Anestesia

📥 Input Parameters

List<ConsumoEntity>consumos

📤 Return Type

RespListConsumosEntity

🗄 SQL Queries (0)

No SQL detected

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Start a local transaction
📝 Suggested XML doc comment
/// <summary>
/// Registra una lista de consumos realizados a un paciente. Los consumos pueden ser de Quirófano o de Anestesia
/// </summary>
/// <param name="consumos">TODO: describe consumos</param>
/// <returns>RespListConsumosEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_RegistrarConsumos_ReturnsSuccess()
        {
            // Arrange
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var consumos = null;

            // Act
            var result = client.RegistrarConsumos(consumos);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_RegistrarConsumos_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var consumos = -1;

            // Act
            var result = client.RegistrarConsumos(consumos);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

EliminarConsumo

SOAP

Elimina un consumo

📥 Input Parameters

ConsumoEntityconsumo

📤 Return Type

RespListConsumosEntity
FR1800 FR1700

🗄 SQL Queries (2)

DELETE FROM FR1800 WHERE PR62CODHOJAQUIR = :hojaQuiro AND FR18NUMLINEA = :numLinea
FR1800
DELETE FROM FR1700 WHERE PR62CODHOJAQUIR = :hojaQuiro AND FR17NUMLINEA = :numLinea
FR1700

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Start a local transaction
Si tiene lote, resetearlo:
📝 Suggested XML doc comment
/// <summary>
/// Elimina un consumo
/// </summary>
/// <param name="consumo">TODO: describe consumo</param>
/// <returns>RespListConsumosEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_EliminarConsumo_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var consumo = null;

            // Act
            var result = client.EliminarConsumo(consumo);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_EliminarConsumo_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var consumo = -1;

            // Act
            var result = client.EliminarConsumo(consumo);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ObtenerProducto

SOAP ⚠ Needs Review

Obtiene la información de un producto a partir del código de barras.

Needs Technical Revision — TODO/FIXME markers or incomplete logic detected

📥 Input Parameters

Stringcodigo

📤 Return Type

RespProductoEntity

🗄 SQL Queries (0)

No SQL detected

🔗 External Calls / Used By

None detected

💬 Logic / Comments

FR73CODINTFAR = MID(código, 4, 6).
se está leyendo medicación
frg8codproductoprov = MID(Codigo, 7, 7).
es material
frg8codproductoprov = MID(Codigo, 4, 12)
throw new Exception(String.Format("codigo.Substring(3, 12): {0}", codigo.Substring(3, 12)));
frg8codproductoprov = mid(Codigo, 3, 12)
frg8codproductoprov = mid(Codigo, 1, 12)
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de un producto a partir del código de barras.
/// </summary>
/// <param name="codigo">TODO: describe codigo</param>
/// <returns>RespProductoEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerProducto_ReturnsSuccess()
        {
            // Arrange
            var client = new WSFarmacia();
            var codigo = "test_value";

            // Act
            var result = client.ObtenerProducto(codigo);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_ObtenerProducto_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codigo = null;

            // Act
            var result = client.ObtenerProducto(codigo);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

CerrarPaciente

SOAP

Cierra los consumos de un paciente

📥 Input Parameters

PacienteEntitypaciente

📤 Return Type

RespBool

🗄 SQL Queries (0)

No SQL detected

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

int centro = 0;
Boolean esCentroPamplona = false;
ce.Debbug = "Obteniendo centro";
// Obtener el centro a partir del departamento:
centro = ObtenerCentro(intervencion.Departamento, con, ce);
if (centro > 0)
// Si el centro es 1, es PAMPLONA; sino, es MADRID
if (centro == 1)
📝 Suggested XML doc comment
/// <summary>
/// Cierra los consumos de un paciente
/// </summary>
/// <param name="paciente">TODO: describe paciente</param>
/// <returns>RespBool</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_CerrarPaciente_ReturnsSuccess()
        {
            // Arrange
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var paciente = null;

            // Act
            var result = client.CerrarPaciente(paciente);

            // Assert
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_CerrarPaciente_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var paciente = -1;

            // Act
            var result = client.CerrarPaciente(paciente);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoEspecialidad

SOAP

Obtiene la información de la especialidad solicitada (codProducto=codEspecialidad)

📥 Input Parameters

StringcodEspecialidad

📤 Return Type

RespEspecialidadBaxterEntity

🗄 SQL Queries (1)

select  fr7300.fr73codproducto Cod, fr7300.fr73codintfar Codigo, fr7300.fr73desproducto Descripcion, fr7300.fr73codnac CodNac,

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

res.TipoEtiquetado = dr["fr73desproducto"].ToString(); //Falta
TipoEspecialidad
Concentración solo para cistostáticos(CUN)
res.Material = dr["fr00desgrpterap"].ToString(); //Falta
En los principios activos no se considera el excipiente(CUN).
Concentración solo si citostático(Arriba)
res.EANQR = dr["fr00desgrpterap"].ToString(); //Falta
res.Densidad = dr["fr00desgrpterap"].ToString(); //Falta
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la especialidad solicitada (codProducto=codEspecialidad)
/// </summary>
/// <param name="codEspecialidad">TODO: describe codEspecialidad</param>
/// <returns>RespEspecialidadBaxterEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoEspecialidad_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codEspecialidad = "test_value";

            // Act
            var result = client.GetInfoEspecialidad(codEspecialidad);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_GetInfoEspecialidad_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codEspecialidad = null;

            // Act
            var result = client.GetInfoEspecialidad(codEspecialidad);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoLote

📋 COPY-PASTE 85% SOAP

Obtiene la información del Lote solicitado (codLote = codAlbaran)

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodLote

📤 Return Type

RespLoteBaxterEntity

🗄 SQL Queries (1)

select fr4900.frj1codalbaran CodAlbaran, fr4900.frj3numlinea NumLinea,

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información del Lote solicitado (codLote = codAlbaran)
/// </summary>
/// <param name="codLote">TODO: describe codLote</param>
/// <returns>RespLoteBaxterEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoLote_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codLote = "test_value";

            // Act
            var result = client.GetInfoLote(codLote);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_GetInfoLote_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codLote = null;

            // Act
            var result = client.GetInfoLote(codLote);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoPreparacion

SOAP

Obtiene la información de la Preparación solicitada

📥 Input Parameters

StringidPreparacion
Stringfr28NumLinea
Stringfr43NumLinea

📤 Return Type

RespPreparacionBaxterEntity

🗄 SQL Queries (1)

SELECT ci2200.ci22numhistoria Historia, ci2200.ci22priapel, ci2200.ci22segapel,ci2200.ci22nombre, ci2200.CI22FECNACIM,

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

res.IdPreparacion = dr["CodPreparacion"].ToString(); //Solo el albarán o (albarán + fr28NumLinea + fr43NumLinea)???
res.Accion = dr["???"].ToString(); //SI En Ensemble según evento
res.Refrigerar = dr["???"].ToString();
res.ProtegerDeLaLuz = dr["???"].ToString();
res.FechaPreparacion = dr["???"].ToString();
res.EstabilidadDias = dr["???"].ToString();
res.EstabilidadHoras = dr["???"].ToString();
res.TiempoInfusionHoras = dr["???"].ToString();
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la Preparación solicitada
/// </summary>
/// <param name="idPreparacion">TODO: describe idPreparacion</param>
/// <param name="fr28NumLinea">TODO: describe fr28NumLinea</param>
/// <param name="fr43NumLinea">TODO: describe fr43NumLinea</param>
/// <returns>RespPreparacionBaxterEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoPreparacion_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var idPreparacion = "test_value";
            var fr28NumLinea = "test_value";
            var fr43NumLinea = "test_value";

            // Act
            var result = client.GetInfoPreparacion(idPreparacion, fr28NumLinea, fr43NumLinea);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_GetInfoPreparacion_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var idPreparacion = null;
            var fr28NumLinea = null;
            var fr43NumLinea = null;

            // Act
            var result = client.GetInfoPreparacion(idPreparacion, fr28NumLinea, fr43NumLinea);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoFamilia

📋 COPY-PASTE 85% SOAP

Obtiene la información de la familia solicitada

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodFamilia

📤 Return Type

RespFamiliaKardexEntity
FR0000

🗄 SQL Queries (1)

SELECT fr00codgrpterap, fr00desgrpterap FROM FR0000 WHERE fr00codgrpterap = :codFamilia
FR0000

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la familia solicitada
/// </summary>
/// <param name="codFamilia">TODO: describe codFamilia</param>
/// <returns>RespFamiliaKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoFamilia_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codFamilia = "test_value";

            // Act
            var result = client.GetInfoFamilia(codFamilia);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_GetInfoFamilia_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codFamilia = null;

            // Act
            var result = client.GetInfoFamilia(codFamilia);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoProducto

SOAP

Obtiene la información del producto solicitado

📥 Input Parameters

StringcodProducto

📤 Return Type

RespProductoKardexEntity

🗄 SQL Queries (1)

SELECT fr7300.fr73codproducto,fr7300.fr73codintfar, fr7300.fr73codnac, fr7300.fr73fecfinvig, fr7300.fr73desproducto,fr7300.fr00codgrpterap,fr7300.FR79CODPROVEEDOR_A,fr7300.FR79CODPROVEEDOR_B,fr7300.FR79CODPROVEEDOR_C,fr0000.fr00desgrpterap

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información del producto solicitado
/// </summary>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <returns>RespProductoKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoProducto_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codProducto = "test_value";

            // Act
            var result = client.GetInfoProducto(codProducto);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_GetInfoProducto_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codProducto = null;

            // Act
            var result = client.GetInfoProducto(codProducto);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ValidarProductoMadrid

📋 COPY-PASTE 85% SOAP

Valida si producto solicitado esta activo para Madrid

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodProducto

📤 Return Type

RespBool

🗄 SQL Queries (0)

No SQL detected

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Valida si producto solicitado esta activo para Madrid
/// </summary>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <returns>RespBool</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ValidarProductoMadrid_ReturnsSuccess()
        {
            // Arrange
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codProducto = "test_value";

            // Act
            var result = client.ValidarProductoMadrid(codProducto);

            // Assert
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_ValidarProductoMadrid_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codProducto = null;

            // Act
            var result = client.ValidarProductoMadrid(codProducto);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoProveedor

📋 COPY-PASTE 85% SOAP

Obtiene la información del proveedor solicitado

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodProveedor

📤 Return Type

RespProveedorKardexEntity
fr7900

🗄 SQL Queries (1)

SELECT fr79codproveedor,fr79proveedor FROM fr7900 WHERE fr79codproveedor = :codProveedor
fr7900

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información del proveedor solicitado
/// </summary>
/// <param name="codProveedor">TODO: describe codProveedor</param>
/// <returns>RespProveedorKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoProveedor_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codProveedor = "test_value";

            // Act
            var result = client.GetInfoProveedor(codProveedor);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_GetInfoProveedor_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codProveedor = null;

            // Act
            var result = client.GetInfoProveedor(codProveedor);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoAlbaran

SOAP

Obtiene la información del albarán solicitado

📥 Input Parameters

StringcodAlbaran

📤 Return Type

RespListAlbaranKardex

🗄 SQL Queries (3)

SELECT frj100.frj1codalbaran,frj100.frj1fechaalbar,frj100.ad74codcentro,frj100.fr79codproveedor,fr7900.fr79proveedor,
SELECT fr4900.frj1codalbaran,frj3numlinea,fr49codlote,fr49deslote,fr49fecentradalot,fr49unidadeslote,fr49feccaducidad,
SELECT fr5100.frj1codalbaran,ad02coddpto,ad41codseccion,fr51numlote,fr51fecentrada,fr51feccaducidad,

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Añadir información de producto
Obtener la información del lote (si la tiene)
Obtener la información del depósito (si la tiene)
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información del albarán solicitado
/// </summary>
/// <param name="codAlbaran">TODO: describe codAlbaran</param>
/// <returns>RespListAlbaranKardex</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoAlbaran_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codAlbaran = "test_value";

            // Act
            var result = client.GetInfoAlbaran(codAlbaran);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoAlbaran_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codAlbaran = null;

            // Act
            var result = client.GetInfoAlbaran(codAlbaran);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoPeticion

SOAP

Obtiene la información de la petición solicitada

📥 Input Parameters

StringcodPeticion

📤 Return Type

RespListPeticionKardexEntity

🗄 SQL Queries (0)

No SQL detected

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Si es Pamplona:
Si es Madrid:
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la petición solicitada
/// </summary>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoPeticion_ReturnsSuccess()
        {
            // Arrange
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticion = "test_value";

            // Act
            var result = client.GetInfoPeticion(codPeticion);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoPeticion_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticion = null;

            // Act
            var result = client.GetInfoPeticion(codPeticion);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoServicio

SOAP

Obtiene la información de la petición solicitada, asociada a un servicio

📥 Input Parameters

StringcodPeticionServ

📤 Return Type

RespListPeticionKardexEntity

🗄 SQL Queries (1)

SELECT FR5500.FR55CODNECESUNID, FR5500.FR26CODESTPETIC, fr1900.FR20NUMLINEA, FR5500.FR26CODESTPETIC, fr5500.AD02CODDPTO, ad0200.ad02desdpto, ad0200.ad74codcentro,

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Si es Pamplona:
Si es Madrid:
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la petición solicitada, asociada a un servicio
/// </summary>
/// <param name="codPeticionServ">TODO: describe codPeticionServ</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoServicio_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticionServ = "test_value";

            // Act
            var result = client.GetInfoServicio(codPeticionServ);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoServicio_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticionServ = null;

            // Act
            var result = client.GetInfoServicio(codPeticionServ);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoQuirofano

📋 COPY-PASTE 85% SOAP

Obtiene la información de la petición solicitada, asociada a una petición de quirófano

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodPeticionQuir

📤 Return Type

RespListPeticionKardexEntity

🗄 SQL Queries (1)

SELECT frk300.frk3codnecesunid,frk300.fr26codestpetic,frk300.frk3indquiane,frk300.ad74codcentro,

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Si es Pamplona:
Si es Madrid:
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la petición solicitada, asociada a una petición de quirófano
/// </summary>
/// <param name="codPeticionQuir">TODO: describe codPeticionQuir</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoQuirofano_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticionQuir = "test_value";

            // Act
            var result = client.GetInfoQuirofano(codPeticionQuir);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoQuirofano_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticionQuir = null;

            // Act
            var result = client.GetInfoQuirofano(codPeticionQuir);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoPeticionByFecha

SOAP

Obtiene la información de las peticiones que tienen el mismo FRADFECHA_REG

📥 Input Parameters

StringfechaReg
StringcodTipoEvento

📤 Return Type

RespListPeticionKardexEntity
frad00

🗄 SQL Queries (6)

SELECT fr6600.ad02coddpto,ad0200.ad02desdpto,fr6600.ad41codseccion,ad4100.ad41desseccion,ad0200.ad74codcentro,
(SELECT fr66codpeticion FROM frad00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYY-MM-DD HH24:MI:SS')) AND
frad00
SELECT fr5500.AD02CODDPTO, ad0200.ad02desdpto, ad0200.ad74codcentro,
(SELECT FR55CODNECESUNID FROM frad00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYY-MM-DD HH24:MI:SS')) AND
frad00
SELECT frk300.frk3indquiane,frk300.ad74codcentro,
frk300.frk3codnecesunid IN (SELECT frk3codnecesunid FROM frad00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYY-MM-DD HH24:MI:SS')) AND
frad00

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

TipoEvento: Dispensación Cesta
TipoEvento: Dispensación Servicio
TipoEvento: Dispensación Quirófano
TipoEvento: Dispensación Cesta, Servicio
TipoEvento: Dispensación Quirófano
Si es Pamplona:
Si es Madrid:
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de las peticiones que tienen el mismo FRADFECHA_REG
/// </summary>
/// <param name="fechaReg">TODO: describe fechaReg</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoPeticionByFecha_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var fechaReg = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.GetInfoPeticionByFecha(fechaReg, codTipoEvento);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoPeticionByFecha_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var fechaReg = null;
            var codTipoEvento = null;

            // Act
            var result = client.GetInfoPeticionByFecha(fechaReg, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoCarro

SOAP

Obtiene la información de la petición solicitada, asociada a una petición de dispensación de carro

📥 Input Parameters

StringfechaCarga
StringhoraCarga
StringnumRevision
StringcodTipoEvento

📤 Return Type

RespListPeticionKardexEntity

🗄 SQL Queries (3)

SELECT fr3300.fr33feccarga,fr33horacarga,
SELECT ad0200.ad74codcentro,fr3300.fr73codproducto,fr7300.fr73codintfar,fr7300.fr73desproducto,fr3300.fr33grupo,CEIL(Sum(fr33cantidad)) CANTIDAD
SELECT fre900.fr73codproducto,fr7300.fr73codintfar,fr7300.fr73desproducto,CEIL(fre9cantidad) CANTIDAD

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

TipoEvento: Carro Unidosis
TipoEvento: Carro mezclas
TipoEvento: Carro parada
Poner el centro a mano (2 = MADRID)
TipoEvento: Carro Unidosis
spet.HoraToma = dr["fr33horatoma"].ToString();
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la petición solicitada, asociada a una petición de dispensación de carro
/// </summary>
/// <param name="fechaCarga">TODO: describe fechaCarga</param>
/// <param name="horaCarga">TODO: describe horaCarga</param>
/// <param name="numRevision">TODO: describe numRevision</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoCarro_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var fechaCarga = "test_value";
            var horaCarga = "test_value";
            var numRevision = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.GetInfoCarro(fechaCarga, horaCarga, numRevision, codTipoEvento);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoCarro_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var fechaCarga = null;
            var horaCarga = null;
            var numRevision = null;
            var codTipoEvento = null;

            // Act
            var result = client.GetInfoCarro(fechaCarga, horaCarga, numRevision, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoFabricacion

SOAP

Obtiene la información de la petición solicitada, asociada a una petición de fabricación de citostáticos o mezclas

📥 Input Parameters

StringcodPeticion
StringnumLinea
StringnumLineaToma
StringcodTipoEvento

📤 Return Type

RespListPeticionKardexEntity

🗄 SQL Queries (0)

No SQL detected

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

TipoEvento: Fabricación citostáticos
TipoEvento: Fabricación mezclas
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la petición solicitada, asociada a una petición de fabricación de citostáticos o mezclas
/// </summary>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <param name="numLinea">TODO: describe numLinea</param>
/// <param name="numLineaToma">TODO: describe numLineaToma</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoFabricacion_ReturnsSuccess()
        {
            // Arrange
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticion = "test_value";
            var numLinea = "test_value";
            var numLineaToma = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.GetInfoFabricacion(codPeticion, numLinea, numLineaToma, codTipoEvento);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoFabricacion_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticion = null;
            var numLinea = null;
            var numLineaToma = null;
            var codTipoEvento = null;

            // Act
            var result = client.GetInfoFabricacion(codPeticion, numLinea, numLineaToma, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoFabricacionByFecha

SOAP

Obtiene la información de las peticiones de fabricación que tienen el mismo FRADFECHA_REG

📥 Input Parameters

StringfechaReg
StringcodTipoEvento

📤 Return Type

RespListPeticionKardexEntity

🗄 SQL Queries (7)

SELECT PERSONA,CAMA,ci2200.ci22numhistORia, ci2200.ci22priapel, ci2200.ci22segapel,ci2200.ci22nombre,
SELECT fr6600.ci21codpersona PERSONA, gcfn06(ad15codcama) CAMA,fr2800.fr73codproducto CODPROD,sum(fr2800.fr28CANTIDAD) Cant1,fr6600.ad02coddpto CODDPTO,ad0200.ad02desdpto DESDPTO,ad0200.ad74codcentro CODCENTRO
SELECT fr66codpeticion,fr28numlINea,fr43numlINea
SELECT fr6600.ci21codpersona PERSONA,gcfn06(ad15codcama) CAMA,fr2800.fr73codproducto_dil CODPROD,sum(fr2800.fr28cantidaddil) CantDil,fr6600.ad02coddpto CODDPTO,ad0200.ad02desdpto DESDPTO,ad0200.ad74codcentro CODCENTRO
SELECT fr6600.ci21codpersona PERSONA,gcfn06(ad15codcama) CAMA,fr2800.fr73codproducto_2 CODPROD,sum(fr2800.fr28dosis_2) Dosis2,fr6600.ad02coddpto CODDPTO,ad0200.ad02desdpto DESDPTO,ad0200.ad74codcentro CODCENTRO
SELECT fr66codpeticion,fr28numlINea,fr48numlINea
SELECT PERSONA,CAMA,ci2200.ci22numhistORia, ci2200.ci22priapel,ci2200.ci22segapel,ci2200.ci22nombre,

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

TipoEvento: Fabricación citostáticos
TipoEvento: Fabricación mezclas
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de las peticiones de fabricación que tienen el mismo FRADFECHA_REG
/// </summary>
/// <param name="fechaReg">TODO: describe fechaReg</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoFabricacionByFecha_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var fechaReg = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.GetInfoFabricacionByFecha(fechaReg, codTipoEvento);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoFabricacionByFecha_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var fechaReg = null;
            var codTipoEvento = null;

            // Act
            var result = client.GetInfoFabricacionByFecha(fechaReg, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoKit

📋 COPY-PASTE 85% SOAP

Obtiene la información de la petición solicitada, asociada a una petición de fabricación de kits

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodKit
StringcantidadKit
StringcodTipoEvento
boolcantidadOriginal

📤 Return Type

RespListPeticionKardexEntity

🗄 SQL Queries (2)

SELECT fr7100.FR73CODPRODUCTO,fr7300.fr73codintfar,fr7300.fr73desproducto,CEIL(FR71CANTNECESARIA) AS CANTIDAD
SELECT fr7100.FR73CODPRODUCTO,fr7300.fr73codintfar,fr7300.fr73desproducto,CEIL(FR71CANTNECESARIA * :cantidadKit) AS CANTIDAD

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Centro: Madrid
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la petición solicitada, asociada a una petición de fabricación de kits
/// </summary>
/// <param name="codKit">TODO: describe codKit</param>
/// <param name="cantidadKit">TODO: describe cantidadKit</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <param name="cantidadOriginal">TODO: describe cantidadOriginal</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoKit_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codKit = "test_value";
            var cantidadKit = "test_value";
            var codTipoEvento = "test_value";
            var cantidadOriginal = true;

            // Act
            var result = client.GetInfoKit(codKit, cantidadKit, codTipoEvento, cantidadOriginal);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoKit_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codKit = null;
            var cantidadKit = null;
            var codTipoEvento = null;
            var cantidadOriginal = -1;

            // Act
            var result = client.GetInfoKit(codKit, cantidadKit, codTipoEvento, cantidadOriginal);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoPeticionExterno

SOAP

Obtiene la información de la petición solicitada, asociada a una petición de dispensación a paciente externo

📥 Input Parameters

StringcodDispensacion
StringcodTipoEvento

📤 Return Type

RespListPeticionKardexEntity

🗄 SQL Queries (1)

SELECT frt600.frt6coddispensacion,frt600.frt6fecdispen,

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Si el producto no está en la lista de productos a ignorar, añadirlo:
pet.CodCentro = dr["ad74codcentro"].ToString();
pet.CodDpto = dr["ad02coddpto"].ToString();
pet.DescDpto = dr["ad02desdpto"].ToString();
Si el producto no está en la lista de productos a ignorar, añadirlo:
pet.CodCentro = dr["ad74codcentro"].ToString();
pet.CodDpto = dr["ad02coddpto"].ToString();
pet.DescDpto = dr["ad02desdpto"].ToString();
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la petición solicitada, asociada a una petición de dispensación a paciente externo
/// </summary>
/// <param name="codDispensacion">TODO: describe codDispensacion</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoPeticionExterno_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codDispensacion = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.GetInfoPeticionExterno(codDispensacion, codTipoEvento);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoPeticionExterno_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codDispensacion = null;
            var codTipoEvento = null;

            // Act
            var result = client.GetInfoPeticionExterno(codDispensacion, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetInfoDevolucionProveedor

📋 COPY-PASTE 85% SOAP

Obtiene la información de la petición solicitada, asociada a una petición de devolución a proveedor

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodDevolucion

📤 Return Type

RespListPeticionKardexEntity

🗄 SQL Queries (0)

No SQL detected

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

pet.CodDpto = dr["ad02coddpto"].ToString();
pet.DescDpto = dr["ad02desdpto"].ToString();
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la información de la petición solicitada, asociada a una petición de devolución a proveedor
/// </summary>
/// <param name="codDevolucion">TODO: describe codDevolucion</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetInfoDevolucionProveedor_ReturnsSuccess()
        {
            // Arrange
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codDevolucion = "test_value";

            // Act
            var result = client.GetInfoDevolucionProveedor(codDevolucion);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetInfoDevolucionProveedor_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codDevolucion = null;

            // Act
            var result = client.GetInfoDevolucionProveedor(codDevolucion);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ObtenerCodProducto

📋 COPY-PASTE 85% SOAP

Obtiene el código de producto a partir del código interno de farmacia

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodIntFar

📤 Return Type

RespString
FR7300

🗄 SQL Queries (1)

SELECT FR73CODPRODUCTO FROM FR7300 WHERE FR73CODINTFAR = :codIntFar
FR7300

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene el código de producto a partir del código interno de farmacia
/// </summary>
/// <param name="codIntFar">TODO: describe codIntFar</param>
/// <returns>RespString</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerCodProducto_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codIntFar = "test_value";

            // Act
            var result = client.ObtenerCodProducto(codIntFar);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ObtenerCodProducto_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codIntFar = null;

            // Act
            var result = client.ObtenerCodProducto(codIntFar);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

SetPreparacionTerminada

📋 COPY-PASTE 85% SOAP

Marca una preparación como terminada

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodPeticion
Stringfr28numlinea
Stringfr43numlinea

📤 Return Type

RespVoid
fr4300

🗄 SQL Queries (1)

Update fr4300 set fr4300.fr43estado = 2,fr4300.fr43fecfinfab= sysdate where fr4300.fr66codpeticion = :codPeticion and fr4300.fr28numlinea = :fr28numlinea and fr4300.fr43numlinea = :fr43numlinea
fr4300

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Marca una preparación como terminada
/// </summary>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <param name="fr28numlinea">TODO: describe fr28numlinea</param>
/// <param name="fr43numlinea">TODO: describe fr43numlinea</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_SetPreparacionTerminada_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticion = "test_value";
            var fr28numlinea = "test_value";
            var fr43numlinea = "test_value";

            // Act
            var result = client.SetPreparacionTerminada(codPeticion, fr28numlinea, fr43numlinea);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_SetPreparacionTerminada_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticion = null;
            var fr28numlinea = null;
            var fr43numlinea = null;

            // Act
            var result = client.SetPreparacionTerminada(codPeticion, fr28numlinea, fr43numlinea);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetPeticionesAsociadas

SOAP

Obtiene la lista de peticiones + numLinea asociadas a FRADFECHA_REG

📥 Input Parameters

StringfechaReg
StringcodTipoEvento

📤 Return Type

RespListPeticionKardexEntity
FRAD00

🗄 SQL Queries (6)

SELECT fr6600.fr66codpeticion codpeticion,fr2800.fr28numlinea numlinea,fr6600.ad02coddpto,ad0200.ad74codcentro,fr6600.ad41codseccion,
fr6600.fr66codpeticion IN (SELECT fr66codpeticion FROM FRAD00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYYMMDDHH24MISS')) AND
FRAD00
SELECT FR5500.FR55CODNECESUNID codpeticion, FR5500.FR26CODESTPETIC, fr1900.FR20NUMLINEA numlinea, FR5500.FR26CODESTPETIC, fr5500.AD02CODDPTO, ad0200.ad02desdpto, ad0200.ad74codcentro,
FR5500.FR55CODNECESUNID IN (SELECT FR55CODNECESUNID FROM FRAD00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYYMMDDHH24MISS')) AND
FRAD00
SELECT frk300.frk3codnecesunid codpeticion,frk300.frk3indquiane,frk300.ad74codcentro,
frk300.frk3codnecesunid IN (SELECT frk3codnecesunid FROM FRAD00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYYMMDDHH24MISS'))  AND
FRAD00

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

TipoEvento: Dispensación Cesta
TipoEvento: Dispensación Servicio
TipoEvento: Dispensación Quirófano
TipoEvento: Cesta, Servicio
TipoEvento: Dispensación Servicio
Si es Pamplona:
Si es Madrid:
📝 Suggested XML doc comment
/// <summary>
/// Obtiene la lista de peticiones + numLinea asociadas a FRADFECHA_REG
/// </summary>
/// <param name="fechaReg">TODO: describe fechaReg</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespListPeticionKardexEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetPeticionesAsociadas_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var fechaReg = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.GetPeticionesAsociadas(fechaReg, codTipoEvento);

            // Assert
            Assert.IsNotNull(result.Resultado);
        }

        [TestMethod]
        public void Test_GetPeticionesAsociadas_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var fechaReg = null;
            var codTipoEvento = null;

            // Act
            var result = client.GetPeticionesAsociadas(fechaReg, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetEstadoPeticion

📋 COPY-PASTE 85% SOAP

Devuelve el estado de una petición

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodPeticion
StringcodTipoEvento

📤 Return Type

RespString
FR5500 FR6600

🗄 SQL Queries (2)

SELECT FR26CODESTPETIC FROM FR5500 WHERE FR55CODNECESUNID = :codPeticion
FR5500
SELECT FR26CODESTPETIC FROM FR6600 WHERE FR66CODPETICION = :codPeticion
FR6600

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

TipoEvento: Dispensación Servicio
📝 Suggested XML doc comment
/// <summary>
/// Devuelve el estado de una petición
/// </summary>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespString</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetEstadoPeticion_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticion = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.GetEstadoPeticion(codPeticion, codTipoEvento);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_GetEstadoPeticion_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticion = null;
            var codTipoEvento = null;

            // Act
            var result = client.GetEstadoPeticion(codPeticion, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ActualizarTodasLineas

📋 COPY-PASTE 85% SOAP

Actualiza todas las líneas de una petición

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodPeticion
StringcodTipoEvento

📤 Return Type

RespVoid
FR1900 FR2800

🗄 SQL Queries (2)

UPDATE FR1900 SET FR19CANTSUMIFARM = 0 WHERE FR55CODNECESUNID = :codPeticion AND FR19CANTSUMIFARM <> 0
FR1900
UPDATE FR2800 SET FR28CANTPEDORI = FR28CANTIDAD,FR28CANTDISP = 0 WHERE FR66CODPETICION = :codPeticion AND FR28CANTDISP <> 0
FR2800

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

TipoEvento: Dispensación Servicio
📝 Suggested XML doc comment
/// <summary>
/// Actualiza todas las líneas de una petición
/// </summary>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ActualizarTodasLineas_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticion = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.ActualizarTodasLineas(codPeticion, codTipoEvento);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ActualizarTodasLineas_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticion = null;
            var codTipoEvento = null;

            // Act
            var result = client.ActualizarTodasLineas(codPeticion, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ActualizarLinea

SOAP

Actualiza una línea

📥 Input Parameters

StringcodPeticion
StringnumLinea
Stringcantidad
StringcodTipoEvento

📤 Return Type

RespVoid
FR1900 FRK500 FR2800

🗄 SQL Queries (3)

UPDATE FR1900 SET FR19CANTSUMIFARM = FR19CANTSUMIFARM + :cantidad,
FR1900
UPDATE FRK500 SET FRK5CANTSUMIFARM = FRK5CANTSUMIFARM - :cantidad,
FRK500
UPDATE FR2800 SET FR28CANTIDAD = FR28CANTIDAD - :cantidad
FR2800

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

TipoEvento: Dispensación Servicio
TipoEvento: Dispensación Quirófano
TipoEvento: Dispensación Cesta
TipoEvento: Dispensación Servicio, Quirófano
TipoEvento: Dispensación Servicio
📝 Suggested XML doc comment
/// <summary>
/// Actualiza una línea
/// </summary>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <param name="numLinea">TODO: describe numLinea</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ActualizarLinea_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticion = "test_value";
            var numLinea = "test_value";
            var cantidad = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.ActualizarLinea(codPeticion, numLinea, cantidad, codTipoEvento);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ActualizarLinea_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticion = null;
            var numLinea = null;
            var cantidad = null;
            var codTipoEvento = null;

            // Act
            var result = client.ActualizarLinea(codPeticion, numLinea, cantidad, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

RealizarMovimiento

SOAP

Realiza un movimiento de almacén

📥 Input Parameters

StringcodPeticion
StringcodCentro
StringcodDpto
StringcodSeccion
StringcodProducto
Stringcantidad
StringcodTipoMov
StringcodTipoEvento
booladdObservacion
StringnumRevision
boolcambiarAlmacenes

📤 Return Type

RespVoid
fre800 FR0400 FRS400

🗄 SQL Queries (3)

SELECT prd900.ad02coddpto FROM fre800,prd900 WHERE fre8numrevision=:numRevision AND fre800.prd9numcarro=prd900.prd9numcarro
fre800
SELECT FR04CODALMACEN FROM FR0400 WHERE AD02CODDPTO = :codDpto AND FR0400.FR04INDPRINCIPAL = -1
FR0400
INSERT INTO FRS400 (FRS4NUMMOV, AD74CODCENTRO ,FR04CODALMACEN_ORI, FR04CODALMACEN_DES,
FRS400

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Valor por defecto
Valor por defecto
Tipo Evento: Quirófano
Tipo Evento: Quirófano Anestesia
Tipo Evento: Pacientes externos
Tipo Evento: Carro Parada
Si hay codDpto, buscar el almacén destino
Almacén destino por defecto
📝 Suggested XML doc comment
/// <summary>
/// Realiza un movimiento de almacén
/// </summary>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <param name="codCentro">TODO: describe codCentro</param>
/// <param name="codDpto">TODO: describe codDpto</param>
/// <param name="codSeccion">TODO: describe codSeccion</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <param name="codTipoMov">TODO: describe codTipoMov</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <param name="addObservacion">TODO: describe addObservacion</param>
/// <param name="numRevision">TODO: describe numRevision</param>
/// <param name="cambiarAlmacenes">TODO: describe cambiarAlmacenes</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_RealizarMovimiento_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticion = "test_value";
            var codCentro = "test_value";
            var codDpto = "test_value";
            var codSeccion = "test_value";
            var codProducto = "test_value";
            var cantidad = "test_value";
            var codTipoMov = "test_value";
            var codTipoEvento = "test_value";
            var addObservacion = true;
            var numRevision = "test_value";
            var cambiarAlmacenes = true;

            // Act
            var result = client.RealizarMovimiento(codPeticion, codCentro, codDpto, codSeccion, codProducto, cantidad, codTipoMov, codTipoEvento, addObservacion, numRevision, cambiarAlmacenes);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_RealizarMovimiento_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticion = null;
            var codCentro = null;
            var codDpto = null;
            var codSeccion = null;
            var codProducto = null;
            var cantidad = null;
            var codTipoMov = null;
            var codTipoEvento = null;
            var addObservacion = -1;
            var numRevision = null;
            var cambiarAlmacenes = -1;

            // Act
            var result = client.RealizarMovimiento(codPeticion, codCentro, codDpto, codSeccion, codProducto, cantidad, codTipoMov, codTipoEvento, addObservacion, numRevision, cambiarAlmacenes);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

RealizarCargoServicio

SOAP

Realiza un cargo a servicio

📥 Input Parameters

StringcodPeticion
StringcodDpto
StringcodSeccion
StringcodProducto
Stringcantidad
StringtamEnvase
StringesInteresCientifico
StringcodDptoCargo
StringnumCuenta

📤 Return Type

RespVoid
FR0400 FRK100

🗄 SQL Queries (2)

SELECT FR04CODALMACEN FROM FR0400 WHERE AD02CODDPTO = :codDpto AND FR0400.FR04INDPRINCIPAL = -1
FR0400
INSERT INTO FRK100 (FRK1CODMOV, FRK1FECMOV, AD02CODDPTO,
FRK100

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Valor por defecto
📝 Suggested XML doc comment
/// <summary>
/// Realiza un cargo a servicio
/// </summary>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <param name="codDpto">TODO: describe codDpto</param>
/// <param name="codSeccion">TODO: describe codSeccion</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <param name="tamEnvase">TODO: describe tamEnvase</param>
/// <param name="esInteresCientifico">TODO: describe esInteresCientifico</param>
/// <param name="codDptoCargo">TODO: describe codDptoCargo</param>
/// <param name="numCuenta">TODO: describe numCuenta</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_RealizarCargoServicio_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticion = "test_value";
            var codDpto = "test_value";
            var codSeccion = "test_value";
            var codProducto = "test_value";
            var cantidad = "test_value";
            var tamEnvase = "test_value";
            var esInteresCientifico = "test_value";
            var codDptoCargo = "test_value";
            var numCuenta = "test_value";

            // Act
            var result = client.RealizarCargoServicio(codPeticion, codDpto, codSeccion, codProducto, cantidad, tamEnvase, esInteresCientifico, codDptoCargo, numCuenta);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_RealizarCargoServicio_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticion = null;
            var codDpto = null;
            var codSeccion = null;
            var codProducto = null;
            var cantidad = null;
            var tamEnvase = null;
            var esInteresCientifico = null;
            var codDptoCargo = null;
            var numCuenta = null;

            // Act
            var result = client.RealizarCargoServicio(codPeticion, codDpto, codSeccion, codProducto, cantidad, tamEnvase, esInteresCientifico, codDptoCargo, numCuenta);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

RealizarCargoPaciente

SOAP

Realiza un cargo a paciente

📥 Input Parameters

StringfechaCarga
StringhoraCarga
StringcodPeticion
StringnumLinea
StringhoraToma
StringcodTipoEvento

📤 Return Type

RespVoid
FR6500

🗄 SQL Queries (2)

INSERT INTO FR6500
FR6500
(SELECT DISTINCT

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

cmd.Parameters.Add(":horaToma", OracleDbType.Varchar2).Value = horaToma;
📝 Suggested XML doc comment
/// <summary>
/// Realiza un cargo a paciente
/// </summary>
/// <param name="fechaCarga">TODO: describe fechaCarga</param>
/// <param name="horaCarga">TODO: describe horaCarga</param>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <param name="numLinea">TODO: describe numLinea</param>
/// <param name="horaToma">TODO: describe horaToma</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_RealizarCargoPaciente_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var fechaCarga = "test_value";
            var horaCarga = "test_value";
            var codPeticion = "test_value";
            var numLinea = "test_value";
            var horaToma = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.RealizarCargoPaciente(fechaCarga, horaCarga, codPeticion, numLinea, horaToma, codTipoEvento);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_RealizarCargoPaciente_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var fechaCarga = null;
            var horaCarga = null;
            var codPeticion = null;
            var numLinea = null;
            var horaToma = null;
            var codTipoEvento = null;

            // Act
            var result = client.RealizarCargoPaciente(fechaCarga, horaCarga, codPeticion, numLinea, horaToma, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ActualizarPeticion

SOAP

Actualiza una petición

📥 Input Parameters

StringcodPeticion
StringcodTipoEvento

📤 Return Type

RespVoid
fr1900 FRK500 fr2800 FR5500 FRK300 FR6600

🗄 SQL Queries (6)

SELECT COUNT(*) AS total FROM fr1900 WHERE fr55codnecesunid = :codPeticion AND nvl(fr19inddispensado,0) = 0 AND nvl(fr19indbloq,0) = 0
fr1900
SELECT COUNT(*) AS total FROM FRK500 WHERE FRK3CODNECESUNID = :codPeticion AND FRK5INDTRATADO <> 2 AND nvl(FRK5INDBLOQ,0) = 0
FRK500
SELECT COUNT(*) AS total FROM fr2800 WHERE fr2800.fr66codpeticion = :codPeticion AND FR2800.FR28cantidad <> 0 AND nvl(FR2800.FR28indbloqueada,0) = 0
fr2800
UPDATE FR5500 SET fr55indtranskardex = 0, FR55FECDISPEN = SYSDATE, FR26CODESTPETIC =
FR5500
UPDATE FRK300 SET FR26CODESTPETIC =
FRK300
UPDATE FR6600 SET fr66indtranskardex = 0, FR66FECDISPEN = SYSDATE, FR26CODESTPETIC =
FR6600

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Dispensada
TipoEvento: Dispensación Servicio
TipoEvento: Dispensación Quirófano
Dispensada parcial
TipoEvento: Dispensación Servicio
TipoEvento: Dispensación Quirófano
📝 Suggested XML doc comment
/// <summary>
/// Actualiza una petición
/// </summary>
/// <param name="codPeticion">TODO: describe codPeticion</param>
/// <param name="codTipoEvento">TODO: describe codTipoEvento</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ActualizarPeticion_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codPeticion = "test_value";
            var codTipoEvento = "test_value";

            // Act
            var result = client.ActualizarPeticion(codPeticion, codTipoEvento);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ActualizarPeticion_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codPeticion = null;
            var codTipoEvento = null;

            // Act
            var result = client.ActualizarPeticion(codPeticion, codTipoEvento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarResultadoConsulta

SOAP

Inserta el resultado de una consulta sobre el stock de un producto

📥 Input Parameters

StringcodCentro
StringcodProducto
StringfechaConsulta
Stringexistencias
StringubicacionString
StringtipoConsulta
UbicacionKardexEntityubicacion

📤 Return Type

RespVoid
FRAK00

🗄 SQL Queries (1)

INSERT INTO FRAK00 (FRAKNUMREG, AD74CODCENTRO, FR73CODPRODUCTO, FRAKFECHA, FRAKEXISTENCIAS, FRAKUBICACION, FRAKTIPOCONSULTA,
FRAK00

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Inserta el resultado de una consulta sobre el stock de un producto
/// </summary>
/// <param name="codCentro">TODO: describe codCentro</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="fechaConsulta">TODO: describe fechaConsulta</param>
/// <param name="existencias">TODO: describe existencias</param>
/// <param name="ubicacionString">TODO: describe ubicacionString</param>
/// <param name="tipoConsulta">TODO: describe tipoConsulta</param>
/// <param name="ubicacion">TODO: describe ubicacion</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarResultadoConsulta_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codCentro = "test_value";
            var codProducto = "test_value";
            var fechaConsulta = "test_value";
            var existencias = "test_value";
            var ubicacionString = "test_value";
            var tipoConsulta = "test_value";
            var ubicacion = null;

            // Act
            var result = client.InsertarResultadoConsulta(codCentro, codProducto, fechaConsulta, existencias, ubicacionString, tipoConsulta, ubicacion);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarResultadoConsulta_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codCentro = null;
            var codProducto = null;
            var fechaConsulta = null;
            var existencias = null;
            var ubicacionString = null;
            var tipoConsulta = null;
            var ubicacion = -1;

            // Act
            var result = client.InsertarResultadoConsulta(codCentro, codProducto, fechaConsulta, existencias, ubicacionString, tipoConsulta, ubicacion);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarResultadoConsultaRepo

SOAP

Inserta el resultado de una consulta sobre la reposición de un producto

📥 Input Parameters

StringcodCentro
StringcodProducto
StringfechaConsulta
Stringcantidad
UbicacionKardexEntityubicacion

📤 Return Type

RespVoid
FRAP00

🗄 SQL Queries (1)

INSERT INTO FRAP00 (FRAPNUMREG, AD74CODCENTRO, FR73CODPRODUCTO, FRAPFECHA, FRAPCANT,
FRAP00

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Falta en la tabla FRAP00 los campos FRAPUBICACION, FRAPEXISTENCIAS, FRAPTIPOCONSULTA (comparado con la FRAK00).
📝 Suggested XML doc comment
/// <summary>
/// Inserta el resultado de una consulta sobre la reposición de un producto
/// </summary>
/// <param name="codCentro">TODO: describe codCentro</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="fechaConsulta">TODO: describe fechaConsulta</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <param name="ubicacion">TODO: describe ubicacion</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarResultadoConsultaRepo_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codCentro = "test_value";
            var codProducto = "test_value";
            var fechaConsulta = "test_value";
            var cantidad = "test_value";
            var ubicacion = null;

            // Act
            var result = client.InsertarResultadoConsultaRepo(codCentro, codProducto, fechaConsulta, cantidad, ubicacion);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarResultadoConsultaRepo_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codCentro = null;
            var codProducto = null;
            var fechaConsulta = null;
            var cantidad = null;
            var ubicacion = -1;

            // Act
            var result = client.InsertarResultadoConsultaRepo(codCentro, codProducto, fechaConsulta, cantidad, ubicacion);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

AumentarExistencias

📋 COPY-PASTE 85% SOAP

Realiza un movimiento de almacén, que consiste en aumentar las existencias

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodCentro
StringcodProducto
Stringcantidad

📤 Return Type

RespVoid
FRS400

🗄 SQL Queries (1)

INSERT INTO FRS400 (FRS4NUMMOV,AD74CODCENTRO,FR04CODALMACEN_ORI,FR04CODALMACEN_DES,FR90CODTIPMOV,FRS4FECMOVIMIENTO,FR73CODPRODUCTO,FRS4CANTIDAD,FRS4OBSERVMOV)
FRS400

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Realiza un movimiento de almacén, que consiste en aumentar las existencias
/// </summary>
/// <param name="codCentro">TODO: describe codCentro</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_AumentarExistencias_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codCentro = "test_value";
            var codProducto = "test_value";
            var cantidad = "test_value";

            // Act
            var result = client.AumentarExistencias(codCentro, codProducto, cantidad);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_AumentarExistencias_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codCentro = null;
            var codProducto = null;
            var cantidad = null;

            // Act
            var result = client.AumentarExistencias(codCentro, codProducto, cantidad);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

DisminuirExistencias

📋 COPY-PASTE 85% SOAP

Realiza un movimiento de almacén, que consiste en disminuir las existencias

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodCentro
StringcodProducto
Stringcantidad

📤 Return Type

RespVoid
FRS400

🗄 SQL Queries (1)

INSERT INTO FRS400 (FRS4NUMMOV,AD74CODCENTRO,FR04CODALMACEN_ORI,FR04CODALMACEN_DES,FR90CODTIPMOV,FRS4FECMOVIMIENTO,FR73CODPRODUCTO,FRS4CANTIDAD,FRS4OBSERVMOV)
FRS400

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Realiza un movimiento de almacén, que consiste en disminuir las existencias
/// </summary>
/// <param name="codCentro">TODO: describe codCentro</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_DisminuirExistencias_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codCentro = "test_value";
            var codProducto = "test_value";
            var cantidad = "test_value";

            // Act
            var result = client.DisminuirExistencias(codCentro, codProducto, cantidad);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_DisminuirExistencias_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codCentro = null;
            var codProducto = null;
            var cantidad = null;

            // Act
            var result = client.DisminuirExistencias(codCentro, codProducto, cantidad);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarEntradaProducto

📋 COPY-PASTE 85% SOAP

Inserta un registro de entrada de producto en FRAD00

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodProducto
Stringcantidad

📤 Return Type

RespVoid
FRAD00

🗄 SQL Queries (1)

INSERT INTO FRAD00 (FRADNUMREG,FRADINDREALIZADO,FRAECODTIPEVENTO,FR73CODPRODUCTO,FRADCANTIDAD)
FRAD00

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Inserta un registro de entrada de producto en FRAD00
/// </summary>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarEntradaProducto_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codProducto = "test_value";
            var cantidad = "test_value";

            // Act
            var result = client.InsertarEntradaProducto(codProducto, cantidad);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarEntradaProducto_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codProducto = null;
            var cantidad = null;

            // Act
            var result = client.InsertarEntradaProducto(codProducto, cantidad);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ActualizarMaestro

📋 COPY-PASTE 85% SOAP

Actualiza el maestro de productos, para añadirle la ubicación de Kardex

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodProducto
StringubicacionKardex

📤 Return Type

RespVoid
FRS100

🗄 SQL Queries (1)

UPDATE FRS100 SET FRS5UBICACION_2 = :ubicacionKardex1
FRS100

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Actualiza el maestro de productos, para añadirle la ubicación de Kardex
/// </summary>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="ubicacionKardex">TODO: describe ubicacionKardex</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ActualizarMaestro_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codProducto = "test_value";
            var ubicacionKardex = "test_value";

            // Act
            var result = client.ActualizarMaestro(codProducto, ubicacionKardex);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ActualizarMaestro_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codProducto = null;
            var ubicacionKardex = null;

            // Act
            var result = client.ActualizarMaestro(codProducto, ubicacionKardex);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ContarSinProcesar

📋 COPY-PASTE 85% SOAP

Devuelve los registros sin procesar

⚠ Similar operation ContarSinProcesar exists in: NET-WS-Pacs, NET-WS-Laboratorio
📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

📤 Return Type

RespInt
FRAD00

🗄 SQL Queries (1)

SELECT COUNT(*) resultado FROM FRAD00 where fradindrealizado = 0
FRAD00

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Devuelve los registros sin procesar
/// </summary>
/// <returns>RespInt</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ContarSinProcesar_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();


            // Act
            var result = client.ContarSinProcesar();

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_ContarSinProcesar_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();


            // Act
            var result = client.ContarSinProcesar();

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ObtenerCodPersona

📋 COPY-PASTE 85% SOAP
⚠ Similar operation ObtenerCodPersona exists in: NET-WS-HL7Broker, NET-WS-FuncionesGenerales
📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringnumHistoria

📤 Return Type

RespString
CI2200

🗄 SQL Queries (1)

SELECT CI21CODPERSONA FROM CI2200 WHERE CI22NUMHISTORIA = :numHistoria
CI2200
Table CI2200 also used in: NET-WS-Pacs, NET-WS-HL7Broker, NET-WS-Laboratorio

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene obtener cod persona
/// </summary>
/// <param name="numHistoria">TODO: describe numHistoria</param>
/// <returns>RespString</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerCodPersona_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var numHistoria = "test_value";

            // Act
            var result = client.ObtenerCodPersona(numHistoria);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ObtenerCodPersona_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var numHistoria = null;

            // Act
            var result = client.ObtenerCodPersona(numHistoria);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetZFM

📋 COPY-PASTE 85% SOAP
📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

Stringregistro
Stringtipo

📤 Return Type

RespZFMEntity

🗄 SQL Queries (1)

select FR73CODPRODUCTO,FR24DESGENERICA,FR24DESFORMFAR,FR24DOSIS,FR93CODUNIMEDIDA,FR24VOLUMEN,FR24DESPRODUCTO,FR73CODINTFAR,FR24FECADD

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Retrieves get z f m
/// </summary>
/// <param name="registro">TODO: describe registro</param>
/// <param name="tipo">TODO: describe tipo</param>
/// <returns>RespZFMEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetZFM_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var registro = "test_value";
            var tipo = "test_value";

            // Act
            var result = client.GetZFM(registro, tipo);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_GetZFM_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var registro = null;
            var tipo = null;

            // Act
            var result = client.GetZFM(registro, tipo);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

GetRDE

SOAP

Obtener prescripción

📥 Input Parameters

Stringregistro

📤 Return Type

RespRDEEntity

🗄 SQL Queries (1)

select CI22NUMHISTORIA,FR59NOMBRE,FR59PRIAPEL,FR59SEGAPEL,FR59SEXO,FR59CAMA,AD07CODPROCESO,AD01CODASISTENCI,FR59DESDPTO,FR59TIPOEVENTO,

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtener prescripción
/// </summary>
/// <param name="registro">TODO: describe registro</param>
/// <returns>RespRDEEntity</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_GetRDE_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var registro = "test_value";

            // Act
            var result = client.GetRDE(registro);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Exito);
        }

        [TestMethod]
        public void Test_GetRDE_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var registro = null;

            // Act
            var result = client.GetRDE(registro);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ObtenerSiguienteSecuencia

SOAP

📥 Input Parameters

Stringcodigo

📤 Return Type

RespString
DUAL

🗄 SQL Queries (5)

SELECT FR65CODIGO_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL
SELECT FRN0CODIGO_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL
SELECT FRK1CODMOV_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL
SELECT fr80nummov_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL
SELECT frs4nummov_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene obtener siguiente secuencia
/// </summary>
/// <param name="codigo">TODO: describe codigo</param>
/// <returns>RespString</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerSiguienteSecuencia_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codigo = "test_value";

            // Act
            var result = client.ObtenerSiguienteSecuencia(codigo);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ObtenerSiguienteSecuencia_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codigo = null;

            // Act
            var result = client.ObtenerSiguienteSecuencia(codigo);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarFRK100

SOAP

📥 Input Parameters

StringcodMovimiento
StringfecMovimiento
StringcodDepto
StringcodProducto
Stringcantidad
Stringobservacion

📤 Return Type

RespVoid
frk100

🗄 SQL Queries (1)

INSERT INTO frk100
frk100

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

PYXIS: paciente ficticio
📝 Suggested XML doc comment
/// <summary>
/// Inserts insertar f r k100
/// </summary>
/// <param name="codMovimiento">TODO: describe codMovimiento</param>
/// <param name="fecMovimiento">TODO: describe fecMovimiento</param>
/// <param name="codDepto">TODO: describe codDepto</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <param name="observacion">TODO: describe observacion</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarFRK100_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codMovimiento = "test_value";
            var fecMovimiento = "test_value";
            var codDepto = "test_value";
            var codProducto = "test_value";
            var cantidad = "test_value";
            var observacion = "test_value";

            // Act
            var result = client.InsertarFRK100(codMovimiento, fecMovimiento, codDepto, codProducto, cantidad, observacion);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarFRK100_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codMovimiento = null;
            var fecMovimiento = null;
            var codDepto = null;
            var codProducto = null;
            var cantidad = null;
            var observacion = null;

            // Act
            var result = client.InsertarFRK100(codMovimiento, fecMovimiento, codDepto, codProducto, cantidad, observacion);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarFR6500

SOAP ⚠ Needs Review

Método para insertar los consumos de medicamentos.

Needs Technical Revision — TODO/FIXME markers or incomplete logic detected

📥 Input Parameters

Stringcodigo
StringcodPersona
StringcodProducto
Stringfecha
Stringhora
Stringcantidad
StringcodAsistencia
StringcodProceso
StringnumToma
StringcodUsuario

📤 Return Type

RespVoid
FR6500

🗄 SQL Queries (1)

insert into FR6500
FR6500

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

IOPSOP-15917. FR6500. SG02COD_ADD. Cambiar mecanismo registro de usuario. A raíz de Pyxis estupefacientes.
Aquí asignas el ClientId
(cuando hay numToma)
📝 Suggested XML doc comment
/// <summary>
/// Método para insertar los consumos de medicamentos.
/// </summary>
/// <param name="codigo">TODO: describe codigo</param>
/// <param name="codPersona">TODO: describe codPersona</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="fecha">TODO: describe fecha</param>
/// <param name="hora">TODO: describe hora</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <param name="codAsistencia">TODO: describe codAsistencia</param>
/// <param name="codProceso">TODO: describe codProceso</param>
/// <param name="numToma">TODO: describe numToma</param>
/// <param name="codUsuario">TODO: describe codUsuario</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarFR6500_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codigo = "test_value";
            var codPersona = "test_value";
            var codProducto = "test_value";
            var fecha = "test_value";
            var hora = "test_value";
            var cantidad = "test_value";
            var codAsistencia = "test_value";
            var codProceso = "test_value";
            var numToma = "test_value";
            var codUsuario = "test_value";

            // Act
            var result = client.InsertarFR6500(codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codUsuario);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarFR6500_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codigo = null;
            var codPersona = null;
            var codProducto = null;
            var fecha = null;
            var hora = null;
            var cantidad = null;
            var codAsistencia = null;
            var codProceso = null;
            var numToma = null;
            var codUsuario = null;

            // Act
            var result = client.InsertarFR6500(codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codUsuario);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ActualizarFR6500

SOAP

<param name="codPersona"></param> <param name="codProducto"></param> <param name="fecha"></param> <param name="hora"></param> <param name="cantidad"></param> <param name="codAsistencia"></param> <param name="codProceso"></param> <param name="numToma"></param>*/ <param name="codUsuario"></param> <returns>RespVoid</returns>

📥 Input Parameters

Stringcodigo
/* StringcodPersona
StringcodProducto
Stringfecha
Stringhora
Stringcantidad
StringcodAsistencia
StringcodProceso
StringnumToma
*/ StringcodUsuario

📤 Return Type

RespVoid
FR6500

🗄 SQL Queries (1)

update FR6500 set
FR6500

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

IOPSOP-15917. FR6500. SG02COD_ADD. Cambiar mecanismo registro de usuario. A raíz de Pyxis estupefacientes. NOTA: solo se inserta en el campo SG02COD_UPD este valor(ya que es un update), nunca se podrá actualizar los campos SG02COD_ADD/UPD ya que la BD no te deja.
Aquí asignas el ClientId
IN-4232 Guardar usuario que dispensa la medicación.
(cuando hay numToma)
📝 Suggested XML doc comment
/// <summary>
/// <param name="codPersona"></param> <param name="codProducto"></param> <param name="fecha"></param> <param name="hora"></param> <param name="cantidad"></param> <param name="codAsistencia"></param> <param name="codProceso"></param> <param name="numToma"></param>*/ <param name="codUsuario"></param> <returns>RespVoid</returns>
/// </summary>
/// <param name="codigo">TODO: describe codigo</param>
/// <param name="codPersona">TODO: describe codPersona</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="fecha">TODO: describe fecha</param>
/// <param name="hora">TODO: describe hora</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <param name="codAsistencia">TODO: describe codAsistencia</param>
/// <param name="codProceso">TODO: describe codProceso</param>
/// <param name="numToma">TODO: describe numToma</param>
/// <param name="codUsuario">TODO: describe codUsuario</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ActualizarFR6500_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codigo = "test_value";
            var codPersona = "test_value";
            var codProducto = "test_value";
            var fecha = "test_value";
            var hora = "test_value";
            var cantidad = "test_value";
            var codAsistencia = "test_value";
            var codProceso = "test_value";
            var numToma = "test_value";
            var codUsuario = "test_value";

            // Act
            var result = client.ActualizarFR6500(codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codUsuario);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ActualizarFR6500_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codigo = null;
            var codPersona = null;
            var codProducto = null;
            var fecha = null;
            var hora = null;
            var cantidad = null;
            var codAsistencia = null;
            var codProceso = null;
            var numToma = null;
            var codUsuario = null;

            // Act
            var result = client.ActualizarFR6500(codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codUsuario);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarFR8000

SOAP

📥 Input Parameters

StringnumMovimiento
StringcodAlmacenOrigen
StringcodAlmacenDestino
StringcodTipoMovimiento
StringfecMovimiento
StringcodProducto
StringcantidadProducto
StringprecioUnidad
StringcodUnidadMedida
StringuniSalen
StringobservMovimiento

📤 Return Type

RespVoid
FR8000

🗄 SQL Queries (1)

insert into FR8000
FR8000

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Inserts insertar f r8000
/// </summary>
/// <param name="numMovimiento">TODO: describe numMovimiento</param>
/// <param name="codAlmacenOrigen">TODO: describe codAlmacenOrigen</param>
/// <param name="codAlmacenDestino">TODO: describe codAlmacenDestino</param>
/// <param name="codTipoMovimiento">TODO: describe codTipoMovimiento</param>
/// <param name="fecMovimiento">TODO: describe fecMovimiento</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="cantidadProducto">TODO: describe cantidadProducto</param>
/// <param name="precioUnidad">TODO: describe precioUnidad</param>
/// <param name="codUnidadMedida">TODO: describe codUnidadMedida</param>
/// <param name="uniSalen">TODO: describe uniSalen</param>
/// <param name="observMovimiento">TODO: describe observMovimiento</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarFR8000_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var numMovimiento = "test_value";
            var codAlmacenOrigen = "test_value";
            var codAlmacenDestino = "test_value";
            var codTipoMovimiento = "test_value";
            var fecMovimiento = "test_value";
            var codProducto = "test_value";
            var cantidadProducto = "test_value";
            var precioUnidad = "test_value";
            var codUnidadMedida = "test_value";
            var uniSalen = "test_value";
            var observMovimiento = "test_value";

            // Act
            var result = client.InsertarFR8000(numMovimiento, codAlmacenOrigen, codAlmacenDestino, codTipoMovimiento, fecMovimiento, codProducto, cantidadProducto, precioUnidad, codUnidadMedida, uniSalen, observMovimiento);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarFR8000_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var numMovimiento = null;
            var codAlmacenOrigen = null;
            var codAlmacenDestino = null;
            var codTipoMovimiento = null;
            var fecMovimiento = null;
            var codProducto = null;
            var cantidadProducto = null;
            var precioUnidad = null;
            var codUnidadMedida = null;
            var uniSalen = null;
            var observMovimiento = null;

            // Act
            var result = client.InsertarFR8000(numMovimiento, codAlmacenOrigen, codAlmacenDestino, codTipoMovimiento, fecMovimiento, codProducto, cantidadProducto, precioUnidad, codUnidadMedida, uniSalen, observMovimiento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarFRZ200

SOAP

📥 Input Parameters

StringstrockActual
StringstockMinimo
StringstockMaximo
StringidMaquina
StringcodProducto
StringidCajon
Stringdivision
StringsubDivision

📤 Return Type

RespVoid
frz200

🗄 SQL Queries (1)

insert into frz200
frz200

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Inserts insertar f r z200
/// </summary>
/// <param name="strockActual">TODO: describe strockActual</param>
/// <param name="stockMinimo">TODO: describe stockMinimo</param>
/// <param name="stockMaximo">TODO: describe stockMaximo</param>
/// <param name="idMaquina">TODO: describe idMaquina</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="idCajon">TODO: describe idCajon</param>
/// <param name="division">TODO: describe division</param>
/// <param name="subDivision">TODO: describe subDivision</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarFRZ200_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var strockActual = "test_value";
            var stockMinimo = "test_value";
            var stockMaximo = "test_value";
            var idMaquina = "test_value";
            var codProducto = "test_value";
            var idCajon = "test_value";
            var division = "test_value";
            var subDivision = "test_value";

            // Act
            var result = client.InsertarFRZ200(strockActual, stockMinimo, stockMaximo, idMaquina, codProducto, idCajon, division, subDivision);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarFRZ200_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var strockActual = null;
            var stockMinimo = null;
            var stockMaximo = null;
            var idMaquina = null;
            var codProducto = null;
            var idCajon = null;
            var division = null;
            var subDivision = null;

            // Act
            var result = client.InsertarFRZ200(strockActual, stockMinimo, stockMaximo, idMaquina, codProducto, idCajon, division, subDivision);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ActualizarFRZ200

SOAP

📥 Input Parameters

StringstrockActual
StringstockMinimo
StringstockMaximo
StringidMaquina
StringcodProducto
StringidCajon
Stringdivision
StringsubDivision

📤 Return Type

RespVoid
FRZ200

🗄 SQL Queries (1)

UPDATE FRZ200 SET
FRZ200

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Actualiza actualizar f r z200
/// </summary>
/// <param name="strockActual">TODO: describe strockActual</param>
/// <param name="stockMinimo">TODO: describe stockMinimo</param>
/// <param name="stockMaximo">TODO: describe stockMaximo</param>
/// <param name="idMaquina">TODO: describe idMaquina</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="idCajon">TODO: describe idCajon</param>
/// <param name="division">TODO: describe division</param>
/// <param name="subDivision">TODO: describe subDivision</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ActualizarFRZ200_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var strockActual = "test_value";
            var stockMinimo = "test_value";
            var stockMaximo = "test_value";
            var idMaquina = "test_value";
            var codProducto = "test_value";
            var idCajon = "test_value";
            var division = "test_value";
            var subDivision = "test_value";

            // Act
            var result = client.ActualizarFRZ200(strockActual, stockMinimo, stockMaximo, idMaquina, codProducto, idCajon, division, subDivision);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ActualizarFRZ200_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var strockActual = null;
            var stockMinimo = null;
            var stockMaximo = null;
            var idMaquina = null;
            var codProducto = null;
            var idCajon = null;
            var division = null;
            var subDivision = null;

            // Act
            var result = client.ActualizarFRZ200(strockActual, stockMinimo, stockMaximo, idMaquina, codProducto, idCajon, division, subDivision);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

EliminarFRZ200

SOAP

📥 Input Parameters

StringidMaquina
StringcodProducto
StringidCajon
Stringdivision
StringsubDivision

📤 Return Type

RespVoid
frz200

🗄 SQL Queries (1)

delete from frz200 where
frz200

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Elimina eliminar f r z200
/// </summary>
/// <param name="idMaquina">TODO: describe idMaquina</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="idCajon">TODO: describe idCajon</param>
/// <param name="division">TODO: describe division</param>
/// <param name="subDivision">TODO: describe subDivision</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_EliminarFRZ200_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var idMaquina = "test_value";
            var codProducto = "test_value";
            var idCajon = "test_value";
            var division = "test_value";
            var subDivision = "test_value";

            // Act
            var result = client.EliminarFRZ200(idMaquina, codProducto, idCajon, division, subDivision);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_EliminarFRZ200_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var idMaquina = null;
            var codProducto = null;
            var idCajon = null;
            var division = null;
            var subDivision = null;

            // Act
            var result = client.EliminarFRZ200(idMaquina, codProducto, idCajon, division, subDivision);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarFRS400

SOAP

Insertar movimientos en el maestro de Madrid

📥 Input Parameters

StringnumMovimiento
StringcodCentro
StringcodAlmacenOrigen
StringcodAlmacenDestino
StringcodTipoMovimiento
StringfecMovimiento
StringobservMovimiento
StringcodProducto
StringcantidadProducto

📤 Return Type

RespVoid
FRS400

🗄 SQL Queries (1)

insert into FRS400
FRS400

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Insertar movimientos en el maestro de Madrid
/// </summary>
/// <param name="numMovimiento">TODO: describe numMovimiento</param>
/// <param name="codCentro">TODO: describe codCentro</param>
/// <param name="codAlmacenOrigen">TODO: describe codAlmacenOrigen</param>
/// <param name="codAlmacenDestino">TODO: describe codAlmacenDestino</param>
/// <param name="codTipoMovimiento">TODO: describe codTipoMovimiento</param>
/// <param name="fecMovimiento">TODO: describe fecMovimiento</param>
/// <param name="observMovimiento">TODO: describe observMovimiento</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="cantidadProducto">TODO: describe cantidadProducto</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarFRS400_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var numMovimiento = "test_value";
            var codCentro = "test_value";
            var codAlmacenOrigen = "test_value";
            var codAlmacenDestino = "test_value";
            var codTipoMovimiento = "test_value";
            var fecMovimiento = "test_value";
            var observMovimiento = "test_value";
            var codProducto = "test_value";
            var cantidadProducto = "test_value";

            // Act
            var result = client.InsertarFRS400(numMovimiento, codCentro, codAlmacenOrigen, codAlmacenDestino, codTipoMovimiento, fecMovimiento, observMovimiento, codProducto, cantidadProducto);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarFRS400_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var numMovimiento = null;
            var codCentro = null;
            var codAlmacenOrigen = null;
            var codAlmacenDestino = null;
            var codTipoMovimiento = null;
            var fecMovimiento = null;
            var observMovimiento = null;
            var codProducto = null;
            var cantidadProducto = null;

            // Act
            var result = client.InsertarFRS400(numMovimiento, codCentro, codAlmacenOrigen, codAlmacenDestino, codTipoMovimiento, fecMovimiento, observMovimiento, codProducto, cantidadProducto);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ObtenerCodigoCentro

📋 COPY-PASTE 85% SOAP

Obtiene el código del Centro al que pertenece el código de departamento

⚠ Similar operation ObtenerCodigoCentro exists in: NET-WS-Laboratorio
📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodDepartamento

📤 Return Type

RespString
AD0200

🗄 SQL Queries (1)

select AD74CODCENTRO from AD0200 where AD02CODDPTO=:codDepartamento
AD0200

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene el código del Centro al que pertenece el código de departamento
/// </summary>
/// <param name="codDepartamento">TODO: describe codDepartamento</param>
/// <returns>RespString</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerCodigoCentro_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codDepartamento = "test_value";

            // Act
            var result = client.ObtenerCodigoCentro(codDepartamento);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ObtenerCodigoCentro_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codDepartamento = null;

            // Act
            var result = client.ObtenerCodigoCentro(codDepartamento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ObtenerCodUsuario

📋 COPY-PASTE 85% SOAP

Obtiene el código del Usuario SG02COD a partir del código de LDAP (SG02CODWINDOWS)

⚠ Similar operation ObtenerCodUsuario exists in: NET-WS-Pacs, NET-WS-Informes, NET-WS-FuncionesGenerales
📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodUsuario

📤 Return Type

RespString
SG0200

🗄 SQL Queries (1)

SELECT SG02COD FROM SG0200 WHERE SG02CODWINDOWS =:codUsuario
SG0200

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene el código del Usuario SG02COD a partir del código de LDAP (SG02CODWINDOWS)
/// </summary>
/// <param name="codUsuario">TODO: describe codUsuario</param>
/// <returns>RespString</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerCodUsuario_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codUsuario = "test_value";

            // Act
            var result = client.ObtenerCodUsuario(codUsuario);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ObtenerCodUsuario_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codUsuario = null;

            // Act
            var result = client.ObtenerCodUsuario(codUsuario);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ObtenerCodAsistencia

SOAP
⚠ Similar operation ObtenerCodAsistencia exists in: NET-WS-HL7Broker, NET-WS-PruebasPDF, NET-WS-Monitorizacion

📥 Input Parameters

StringnumHistoria

📤 Return Type

RespString
ad0100

🗄 SQL Queries (2)

select AD01CODASISTENCI from ad0100 where ad01fecfin is null and ci22numhistoria = :numHistoria
ad0100
select AD01CODASISTENCI from ad0100 where ci22numhistoria = :numHistoria order by ad01fecadd desc
ad0100

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene obtener cod asistencia
/// </summary>
/// <param name="numHistoria">TODO: describe numHistoria</param>
/// <returns>RespString</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerCodAsistencia_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var numHistoria = "test_value";

            // Act
            var result = client.ObtenerCodAsistencia(numHistoria);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ObtenerCodAsistencia_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var numHistoria = null;

            // Act
            var result = client.ObtenerCodAsistencia(numHistoria);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

ObtenerCodProceso

📋 COPY-PASTE 85% SOAP
📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodAsistencia
StringcodDepartamento

📤 Return Type

RespString
ad0500

🗄 SQL Queries (1)

select ad07codproceso from ad0500 where ad01codasistenci = :codAsistencia AND ad02coddpto = :codDepartamento
ad0500
Table ad0500 also used in: NET-WS-HL7Broker

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Obtiene obtener cod proceso
/// </summary>
/// <param name="codAsistencia">TODO: describe codAsistencia</param>
/// <param name="codDepartamento">TODO: describe codDepartamento</param>
/// <returns>RespString</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_ObtenerCodProceso_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codAsistencia = "test_value";
            var codDepartamento = "test_value";

            // Act
            var result = client.ObtenerCodProceso(codAsistencia, codDepartamento);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_ObtenerCodProceso_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codAsistencia = null;
            var codDepartamento = null;

            // Act
            var result = client.ObtenerCodProceso(codAsistencia, codDepartamento);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

BuscarProductoPorCodNacFR73

📋 COPY-PASTE 85% SOAP

Obtiene el código de CUN de un producto de FR73, a partir del código nacional(6 dígitos)

📋 Copy-paste candidate — extract to shared library
Structural match: 85%  ·  Same code found in 11 other service(s): NET-WS-DestinoPaciente NET-WS-FormacionCUN NET-WS-FuncionesGenerales NET-WS-HL7Broker NET-WS-Informes NET-WS-Laboratorio
Suggested library: cysnet.cun.core

📥 Input Parameters

StringcodNac

📤 Return Type

RespString
FR7300

🗄 SQL Queries (1)

SELECT FR73CODPRODUCTO FROM FR7300 where FR73CODNAC LIKE :codNac AND FR73PRECIONETCOMPRA > :cero
FR7300

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

Para buscar con los 6 primeros dígitos(código Nacional), en CUN el codNac tiene 7. El último es un índice.
📝 Suggested XML doc comment
/// <summary>
/// Obtiene el código de CUN de un producto de FR73, a partir del código nacional(6 dígitos)
/// </summary>
/// <param name="codNac">TODO: describe codNac</param>
/// <returns>RespString</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_BuscarProductoPorCodNacFR73_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codNac = "test_value";

            // Act
            var result = client.BuscarProductoPorCodNacFR73(codNac);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_BuscarProductoPorCodNacFR73_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codNac = null;

            // Act
            var result = client.BuscarProductoPorCodNacFR73(codNac);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarConsumoFR65

SOAP

Insertar consumo igual que Pyxis pero sin insertar comentario.

📥 Input Parameters

Stringcodigo
StringcodPersona
StringcodProducto
Stringfecha
Stringhora
Stringcantidad
StringcodAsistencia
StringcodProceso
StringnumToma
StringcodDpto

📤 Return Type

RespVoid
FR6500

🗄 SQL Queries (1)

insert into FR6500
FR6500

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Insertar consumo igual que Pyxis pero sin insertar comentario.
/// </summary>
/// <param name="codigo">TODO: describe codigo</param>
/// <param name="codPersona">TODO: describe codPersona</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="fecha">TODO: describe fecha</param>
/// <param name="hora">TODO: describe hora</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <param name="codAsistencia">TODO: describe codAsistencia</param>
/// <param name="codProceso">TODO: describe codProceso</param>
/// <param name="numToma">TODO: describe numToma</param>
/// <param name="codDpto">TODO: describe codDpto</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarConsumoFR65_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codigo = "test_value";
            var codPersona = "test_value";
            var codProducto = "test_value";
            var fecha = "test_value";
            var hora = "test_value";
            var cantidad = "test_value";
            var codAsistencia = "test_value";
            var codProceso = "test_value";
            var numToma = "test_value";
            var codDpto = "test_value";

            // Act
            var result = client.InsertarConsumoFR65(codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codDpto);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarConsumoFR65_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codigo = null;
            var codPersona = null;
            var codProducto = null;
            var fecha = null;
            var hora = null;
            var cantidad = null;
            var codAsistencia = null;
            var codProceso = null;
            var numToma = null;
            var codDpto = null;

            // Act
            var result = client.InsertarConsumoFR65(codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codDpto);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

InsertarConsumoFRN0

SOAP

Insertar consumo para Nefrolink, igual que Pyxis pero sin insertar comentario.

📥 Input Parameters

Stringcodigo
StringcodPersona
StringcodProducto
Stringfecha
Stringhora
Stringcantidad
StringcodAsistencia
StringcodProceso
StringnumToma
StringcodDpto

📤 Return Type

RespVoid
FRN000

🗄 SQL Queries (1)

insert into FRN000
FRN000

🔗 External Calls / Used By

Oracle DB

💬 Logic / Comments

No comments
📝 Suggested XML doc comment
/// <summary>
/// Insertar consumo para Nefrolink, igual que Pyxis pero sin insertar comentario.
/// </summary>
/// <param name="codigo">TODO: describe codigo</param>
/// <param name="codPersona">TODO: describe codPersona</param>
/// <param name="codProducto">TODO: describe codProducto</param>
/// <param name="fecha">TODO: describe fecha</param>
/// <param name="hora">TODO: describe hora</param>
/// <param name="cantidad">TODO: describe cantidad</param>
/// <param name="codAsistencia">TODO: describe codAsistencia</param>
/// <param name="codProceso">TODO: describe codProceso</param>
/// <param name="numToma">TODO: describe numToma</param>
/// <param name="codDpto">TODO: describe codDpto</param>
/// <returns>RespVoid</returns>
🧪 Suggested unit test stubs (MSTest)
[TestMethod]
        public void Test_InsertarConsumoFRN0_ReturnsSuccess()
        {
            // Arrange
            // NOTE: requires Oracle DB connection — configure App.config or mock OracleConnection
            // NOTE: external dependency detected — consider mocking: Oracle DB
            var client = new WSFarmacia();
            var codigo = "test_value";
            var codPersona = "test_value";
            var codProducto = "test_value";
            var fecha = "test_value";
            var hora = "test_value";
            var cantidad = "test_value";
            var codAsistencia = "test_value";
            var codProceso = "test_value";
            var numToma = "test_value";
            var codDpto = "test_value";

            // Act
            var result = client.InsertarConsumoFRN0(codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codDpto);

            // Assert
            Assert.IsNotNull(result);
        }

        [TestMethod]
        public void Test_InsertarConsumoFRN0_WithInvalidInput_ReturnsFailure()
        {
            // Arrange
            var client = new WSFarmacia();
            var codigo = null;
            var codPersona = null;
            var codProducto = null;
            var fecha = null;
            var hora = null;
            var cantidad = null;
            var codAsistencia = null;
            var codProceso = null;
            var numToma = null;
            var codDpto = null;

            // Act
            var result = client.InsertarConsumoFRN0(codigo, codPersona, codProducto, fecha, hora, cantidad, codAsistencia, codProceso, numToma, codDpto);

            // Assert
            Assert.IsFalse(result?.Exito ?? true);
        }

⚙ Internal Functions (39)

Helper methods inside the service implementation — not part of the public contract.

Public (7)

publicADTEntityGetADT(ControlError ce, String registro)
publicvoidGBpGuardarLog(string gcb3cod, string gcb3observ, OracleConnection con)Obtiene el siguiente número de movimiento para una máquina y ubicación. </summary> <param name="codMaquina">Código de la máquina.</param> <param name="numUbicacion">Número de ubicación.</param> <param name="con">Conexión Oracle abierta.</param> <returns>El siguiente número de movimiento.</returns> private long fNumMov(int codMaquina, int numUbicacion, OracleConnection con) { long numMov = 0; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = "select nvl(max(fry5nummov),0) NUM from fry500 where fry3codmaquina = :codMaquina and fry4numubicacion = :numUbicacion"; cmd.BindByName = true; cmd.Parameters.Add(":codMaquina", OracleDbType.Int32).Value = codMaquina; cmd.Parameters.Add(":numUbicacion", OracleDbType.Int32).Value = numUbicacion; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL fNumMov: " + finalSql); // // Utilizamos ExecuteScalar ya que la consulta devuelve un único valor. object result = cmd.ExecuteScalar(); if (result != null && result != DBNull.Value) { numMov = Convert.ToInt64(result) + 1; } } return numMov; } <summary> Obtiene una línea libre para agregar un estupefaciente (producto) en el Libro de Estupefacientes. Se determina el Nº de Libro, Nº de Folio y Nº de Línea en el que se grabará el registro. Se usan variables globales (por ejemplo, gCentroLibro, gNumLibroSeleccionado, etc.) y se invocan métodos auxiliares para crear o cerrar folios/libros según el caso. </summary> <param name="lngCodProducto">Código del producto (estupefaciente)</param> <param name="lngNumLibro">Número de libro (parámetro de salida)</param> <param name="intNumFolio">Número de folio (parámetro de salida)</param> <param name="intNumLinea">Número de línea (parámetro de salida)</param> <param name="blnLineaObtenida">Bandera que indica si se ha obtenido la línea (parámetro de salida)</param> <param name="intCentro">Código de centro (opcional, por defecto 0)</param> <param name="con">Conexión Oracle abierta</param> /*private void pObtenerLineaLibre( long lngCodProducto, ref long lngNumLibro, ref int intNumFolio, ref int intNumLinea, ref bool blnLineaObtenida, int intCentro = 0, OracleConnection con = null) {*/ private void pObtenerLineaLibre(ref object[] data, OracleConnection con = null) { // data[0] ← Data(1) = lngCodProd, // data[1] ← Data(2) = lngNumLibro, // data[2] ← Data(3) = intNumFolio, // data[3] ← Data(4) = intNumLinea, // data[4] ← Data(5) = blnLineaObtenida, // data[5] ← Data(6) = intCentro. // Se asume que gCentroLibro, gNumLibroSeleccionado, gNumFolioSeleccionado y gNumLineaSeleccionada // son variables miembro (globales de la clase) //gCentroLibro = intCentro; // Para poder recibir por referencia he tenido que enviarme el data completo. gCentroLibro = (int)data[5]; // Se prepara la consulta para obtener un folio activo con el producto // Se usa cEstadoFolioActivo (por ejemplo, una constante de la clase) para filtrar únicamente folios activos. string sql = "SELECT frx200.frx1numlibro, frx200.frx2numfolio, MAX(frx300.frx3numlinea) AS NUMLINEA " + "FROM frx200, frx300, frx100 " + "WHERE frx200.fr73codproducto = :p0 AND " + " frx200.frx2estadofolio = " + cEstadoFolioActivo + " AND " + // folio activo " frx200.frx1numlibro = frx300.frx1numlibro AND " + " frx200.frx2numfolio = frx300.frx2numfolio AND " + " frx200.frx1numlibro = frx100.frx1numlibro AND NVL(frx100.ad74codcentro,1) = :p1 " + "GROUP BY frx200.frx1numlibro, frx200.frx2numfolio"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sql; cmd.BindByName = true; //cmd.Parameters.Add("p0", OracleDbType.Int64).Value = lngCodProducto; cmd.Parameters.Add(":p0", OracleDbType.Int64).Value = (long)data[0]; //cmd.Parameters.Add("p1", OracleDbType.Int32).Value = intCentro; cmd.Parameters.Add(":p1", OracleDbType.Int32).Value = (int)data[5]; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL pObtenerLineaLibre: " + finalSql); // using (OracleDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { // Se encontró un folio activo para grabar el estupefaciente. log.Info("Se encontró un folio activo para grabar el estupefaciente."); long libroConsulta = reader.GetInt64(reader.GetOrdinal("frx1numlibro")); int folioConsulta = reader.GetInt32(reader.GetOrdinal("frx2numfolio")); int numLinea = reader.IsDBNull(reader.GetOrdinal("NUMLINEA")) ? 0 : reader.GetInt32(reader.GetOrdinal("NUMLINEA")); // Si el folio aún no se ha completado (es decir, existe un número de línea menor que el máximo permitido) if (numLinea < fNumLineasDelFolio(libroConsulta, con)) { log.Info("El folio aún no se ha completado"); gNumLineaSeleccionada = numLinea + 1; gNumLibroSeleccionado = (int)libroConsulta; gNumFolioSeleccionado = folioConsulta; } else { // El folio actual se encuentra completado. log.Info("El folio actual se encuentra completado."); int intFolioACerrar = folioConsulta; long intDelLibro = libroConsulta; // Buscar el primer folio activo del primer libro activo. pPrimerLibroActivoConFolioActivo(con); // Este método debe asignar a gNumLibroSeleccionado y gNumFolioSeleccionado if (gNumLibroSeleccionado == 0) { // No se encontró folio libre en ningún libro activo: se crea un nuevo libro. log.Info("No se encontró folio libre en ningún libro activo: se crea un nuevo libro."); gNumLibroSeleccionado = (int)fNumNuevoLibro(con); pCrearNuevoLibro(gNumLibroSeleccionado, con); gNumFolioSeleccionado = 1; gNumLineaSeleccionada = 1; } else { // Se encontró folio activo en un libro. log.Info("Se encontró folio activo en un libro."); gNumLineaSeleccionada = 1; } // Se cierra el folio actual y se asocia el libro/folio siguiente. pCerrarFolio(intDelLibro, intFolioACerrar, con, gNumLibroSeleccionado, gNumFolioSeleccionado); // Comprobar si el libro anterior debe cerrarse. if (fCerrarLibro(intDelLibro, con)) { pCerrarLibro(intDelLibro, con); } // Se crea un nuevo folio para el producto, indicando el folio a crear y el folio anterior. //pCrearNuevoFolio(gNumLibroSeleccionado, gNumFolioSeleccionado, lngCodProducto, con, intDelLibro, intFolioACerrar); pCrearNuevoFolio(gNumLibroSeleccionado, gNumFolioSeleccionado, (long)data[0], con, intDelLibro, intFolioACerrar); log.Info("Se crea un nuevo folio para el producto, indicando el folio a crear y el folio anterior:" + gNumLibroSeleccionado + "," + gNumFolioSeleccionado + "," + (long)data[0] + "," + intDelLibro + "," + intFolioACerrar); } } else { // No se encontró ningún folio activo para grabar el producto. // Se busca el primer libro activo (si lo hubiera). log.Info("No se encontró ningún folio activo para grabar el producto. Se busca el primer libro activo (si lo hubiera)."); pPrimerLibroActivoConFolioActivo(con); if (gNumLibroSeleccionado != 0) { // Se utiliza el folio activo encontrado. log.Info("Se utiliza el folio activo encontrado."); //pCrearNuevoFolio(gNumLibroSeleccionado, gNumFolioSeleccionado, lngCodProducto, con); pCrearNuevoFolio(gNumLibroSeleccionado, gNumFolioSeleccionado, (long)data[0], con); gNumLineaSeleccionada = 1; } else { // No se encontró folio en ningún libro activo: se crea un nuevo libro. log.Info("No se encontró folio en ningún libro activo: se crea un nuevo libro."); gNumLibroSeleccionado = (int)fNumNuevoLibro(con); pCrearNuevoLibro(gNumLibroSeleccionado, con); gNumFolioSeleccionado = 1; //pCrearNuevoFolio(gNumLibroSeleccionado, gNumFolioSeleccionado, lngCodProducto, con); pCrearNuevoFolio(gNumLibroSeleccionado, gNumFolioSeleccionado, (long)data[0], con); gNumLineaSeleccionada = 1; } } } } // Se asignan los parámetros de salida si se han obtenido datos válidos. if (gNumLibroSeleccionado != 0 && gNumFolioSeleccionado != 0 && gNumLineaSeleccionada != 0) { //blnLineaObtenida = true; //lngNumLibro = gNumLibroSeleccionado; //intNumFolio = gNumFolioSeleccionado; //intNumLinea = gNumLineaSeleccionada; data[4] = true; data[1] = gNumLibroSeleccionado; data[2] = gNumFolioSeleccionado; data[3] = gNumLineaSeleccionada; } else { //blnLineaObtenida = false; data[4] = false; } } <summary> Obtiene el número de líneas que tienen los folios de un libro. </summary> <param name="lngNumLibro">Número del libro</param> <param name="con">Conexión Oracle abierta</param> <returns>Número de líneas</returns> private int fNumLineasDelFolio(long lngNumLibro, OracleConnection con) { int numLineas = 0; string sql = "select frx1numlineasfolio from frx100 where frx1numlibro = :p0"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sql; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int64).Value = lngNumLibro; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL fNumLineasDelFolio: " + finalSql); // using (OracleDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { numLineas = Convert.ToInt32(reader["frx1numlineasfolio"]); } } } return numLineas; } <summary> Obtiene el número total de folios de un libro. </summary> <param name="lngNumLibro">Número del libro</param> <param name="con">Conexión Oracle abierta</param> <returns>Número total de folios</returns> private int fNumFoliosDelLibro(long lngNumLibro, OracleConnection con) { int numFolios = 0; string sql = "select frx1numfolioslibro from frx100 where frx1numlibro = :p0"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sql; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int64).Value = lngNumLibro; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL fNumFoliosDelLibro: " + finalSql); // using (OracleDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { numFolios = Convert.ToInt32(reader["frx1numfolioslibro"]); } } } return numFolios; } <summary> Obtiene el primer folio libre del libro pasado por parámetro. Si el número de folios ocupados es menor que el total establecido, se devuelve (folios ocupados + 1); en caso contrario se devuelve 0. </summary> <param name="lngNumLibro">Número del libro</param> <param name="con">Conexión Oracle abierta</param> <returns>Primer folio libre o 0 si no existe</returns> private int fPrimerFolioLibreDelLibro(long lngNumLibro, OracleConnection con) { int intNumFoliosOcupados = 0; string sql = "select count(*) from frx200 where frx1numlibro = :p0"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sql; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int64).Value = lngNumLibro; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL fPrimerFolioLibreDelLibro: " + finalSql); // object result = cmd.ExecuteScalar(); if (result != null && result != DBNull.Value) { intNumFoliosOcupados = Convert.ToInt32(result); } } int totalFolios = fNumFoliosDelLibro(lngNumLibro, con); if (intNumFoliosOcupados < totalFolios) return intNumFoliosOcupados + 1; else return 0; } <summary> Obtiene el nuevo número de libro (último número + 1). </summary> <param name="con">Conexión Oracle abierta</param> <returns>Nuevo número de libro</returns> private long fNumNuevoLibro(OracleConnection con) { long numNuevoLibro = 0; string sql = "select max(frx1numlibro) from frx100"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sql; object result = cmd.ExecuteScalar(); long maxLibro = (result != null && result != DBNull.Value) ? Convert.ToInt64(result) : 0; numNuevoLibro = maxLibro + 1; log.Info("fNumNuevoLibro = " + numNuevoLibro); } return numNuevoLibro; } <summary> Determina si se puede cerrar un libro comprobando que no tenga folios activos. Se asume que cEstadoFolioActivo es una constante que indica el estado activo. </summary> <param name="lngNumLibro">Número del libro</param> <param name="con">Conexión Oracle abierta</param> <returns>true si se cierra el libro (sin folios activos), false en otro caso</returns> private bool fCerrarLibro(long lngNumLibro, OracleConnection con) { string sql = "select count(*) from frx200 where frx1numlibro = :p0 and frx2estadofolio = :estado"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sql; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int64).Value = lngNumLibro; cmd.Parameters.Add(":estado", OracleDbType.Int32).Value = cEstadoFolioActivo; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL fCerrarLibro: " + finalSql); // object result = cmd.ExecuteScalar(); int count = (result != null && result != DBNull.Value) ? Convert.ToInt32(result) : 0; // Si hay algún folio activo, no se cierra el libro. return count == 0; } } <summary> Ubica el primer libro activo que tenga un folio activo. Se asignan las variables globales gNumLibroSeleccionado y gNumFolioSeleccionado. </summary> <param name="con">Conexión Oracle abierta</param> private void pPrimerLibroActivoConFolioActivo(OracleConnection con) { // Se asume que gNumLibroSeleccionado y gNumFolioSeleccionado son variables globales. gNumLibroSeleccionado = 0; string sql = "select frx1numlibro from frx100 " + "where frx1estadolibro = :estado and nvl(ad74codcentro,1) = :centro " + "order by frx1numlibro"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sql; cmd.BindByName = true; cmd.Parameters.Add(":estado", OracleDbType.Int32).Value = cEstadoLibroActivo; cmd.Parameters.Add(":centro", OracleDbType.Int32).Value = gCentroLibro; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL pPrimerLibroActivoConFolioActivo: " + finalSql); // using (OracleDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { long numLibro = Convert.ToInt64(reader["frx1numlibro"]); int folioLibre = fPrimerFolioLibreDelLibro(numLibro, con); if (folioLibre != 0) { gNumLibroSeleccionado = (int)numLibro; gNumFolioSeleccionado = folioLibre; break; } } } } } <summary> Crea un nuevo libro insertando un registro en frx100. Se asume que cEstadoLibroActivo, cNumFoliosLibro, cNumLineasFolio y gCentroLibro son valores ya definidos. </summary> <param name="lngNumLibro">Número del libro a crear</param> <param name="con">Conexión Oracle abierta</param> private void pCrearNuevoLibro(long lngNumLibro, OracleConnection con) { string sqlIns = "insert into frx100 (frx1numlibro, frx1descrlibro, frx1fecinilibro, frx1estadolibro, frx1numfolioslibro, frx1numlineasfolio, ad74codcentro) " + "VALUES (:p0, :p1, sysdate, :p2, :p3, :p4, :p5)"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sqlIns; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int64).Value = lngNumLibro; cmd.Parameters.Add(":p1", OracleDbType.Varchar2).Value = "Poner descripción del libro"; cmd.Parameters.Add(":p2", OracleDbType.Int32).Value = cEstadoLibroActivo; cmd.Parameters.Add(":p3", OracleDbType.Int32).Value = cNumFoliosLibro; cmd.Parameters.Add(":p4", OracleDbType.Int32).Value = cNumLineasFolio; cmd.Parameters.Add(":p5", OracleDbType.Int32).Value = gCentroLibro; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL pCrearNuevoLibro: " + finalSql); // cmd.ExecuteNonQuery(); } } <summary> Crea un nuevo folio insertando un registro en frx200. Los parámetros lngLibroAnt y lngFolioAnt son opcionales; si lngLibroAnt es 0 se insertará un valor nulo en las columnas correspondientes. </summary> <param name="lngNumLibro">Número del libro</param> <param name="lngNumFolio">Número del folio</param> <param name="lngCodProducto">Código del producto</param> <param name="con">Conexión Oracle abierta</param> <param name="lngLibroAnt">Número de libro anterior (opcional, default 0)</param> <param name="lngFolioAnt">Número de folio anterior (opcional, default 0)</param> private void pCrearNuevoFolio(long lngNumLibro, int lngNumFolio, long lngCodProducto, OracleConnection con, long lngLibroAnt = 0, int lngFolioAnt = 0) { string sqlIns = "INSERT INTO frx200 (frx1numlibro, frx2numfolio, fr73codproducto, frx2estadofolio, frx2numlibro_ant, frx2numfolio_ant) " + "VALUES (:p0, :p1, :p2, :p3, :p4, :p5)"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sqlIns; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int64).Value = lngNumLibro; cmd.Parameters.Add(":p1", OracleDbType.Int32).Value = lngNumFolio; cmd.Parameters.Add(":p2", OracleDbType.Int64).Value = lngCodProducto; cmd.Parameters.Add(":p3", OracleDbType.Int32).Value = cEstadoFolioActivo; // Insertar valores nulos si lngLibroAnt es 0; de lo contrario, insertar los valores proporcionados if (lngLibroAnt == 0) { cmd.Parameters.Add(":p4", OracleDbType.Int64).Value = DBNull.Value; cmd.Parameters.Add(":p5", OracleDbType.Int32).Value = DBNull.Value; } else { cmd.Parameters.Add(":p4", OracleDbType.Int64).Value = lngLibroAnt; cmd.Parameters.Add(":p5", OracleDbType.Int32).Value = lngFolioAnt; } //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL pCrearNuevoFolio: " + finalSql); // cmd.ExecuteNonQuery(); } } <summary> Cierra un folio actualizando su estado en frx200. Los parámetros lngLibroSig y lngFolioSig son opcionales y representan el siguiente libro y folio asociados. </summary> <param name="lngNumLibro">Número del libro actual</param> <param name="lngNumFolio">Número del folio actual</param> <param name="con">Conexión Oracle abierta</param> <param name="lngLibroSig">Número del libro siguiente (opcional, default 0)</param> <param name="lngFolioSig">Número del folio siguiente (opcional, default 0)</param> private void pCerrarFolio(long lngNumLibro, int lngNumFolio, OracleConnection con, long lngLibroSig = 0, int lngFolioSig = 0) { string strUpd = "UPDATE frx200 SET frx2estadofolio = :p0, frx2numlibro_sig = :p1, frx2numfolio_sig = :p2 " + "WHERE frx1numlibro = :p3 AND frx2numfolio = :p4"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = strUpd; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int32).Value = cEstadoFolioCerrado; cmd.Parameters.Add(":p1", OracleDbType.Int64).Value = lngLibroSig; cmd.Parameters.Add(":p2", OracleDbType.Int32).Value = lngFolioSig; cmd.Parameters.Add(":p3", OracleDbType.Int64).Value = lngNumLibro; cmd.Parameters.Add(":p4", OracleDbType.Int32).Value = lngNumFolio; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL pCerrarFolio: " + finalSql); // cmd.ExecuteNonQuery(); } } <summary> Cierra un libro actualizando la fecha de fin y el estado en frx100. </summary> <param name="lngNumLibro">Número del libro a cerrar</param> <param name="con">Conexión Oracle abierta</param> private void pCerrarLibro(long lngNumLibro, OracleConnection con) { string strUpd = "UPDATE frx100 SET frx1fecfinlibro = sysdate, frx1estadolibro = :p0 WHERE frx1numlibro = :p1"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = strUpd; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int32).Value = cEstadoLibroCerrado; cmd.Parameters.Add(":p1", OracleDbType.Int64).Value = lngNumLibro; //Sacar la SQL final para el debug string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL pCerrarLibro: " + finalSql); // cmd.ExecuteNonQuery(); } } <summary> Inserta un registro de log en la tabla FRX300_Log para los movimientos en el libro de estupefacientes. Se realizan operaciones distintas en función de si se trata de una inserción (intAccion == 1) o de una actualización (intAccion == 2), y se envía un correo en caso de que se detecten errores de secuencia o saldo. </summary> <param name="lngCodProducto">Código del producto</param> <param name="strFormularioOrigen">Formulario origen</param> <param name="intAccion">Acción a realizar (1: inserción, 2: actualización)</param> <param name="strObservaciones">Observaciones</param> <param name="lngNumLibroActual">Número de libro actual</param> <param name="intNumFolioActual">Número de folio actual</param> <param name="intNumLineaActual">Número de línea actual</param> <param name="lngSaldoActual">Saldo actual</param> <param name="intEntradaActual">Entrada actual</param> <param name="intSalidaActual">Salida actual</param> <param name="intCDepartamento">Código de departamento</param> <param name="strMedico">Médico</param> <param name="intCentro">Centro</param> <param name="con">Conexión Oracle abierta</param> private void GBpInsertarLogLineaEstupefacientes( long lngCodProducto, string strFormularioOrigen, int intAccion, string strObservaciones, long lngNumLibroActual, int intNumFolioActual, int intNumLineaActual, long lngSaldoActual, int intEntradaActual, int intSalidaActual, int intCDepartamento, string strMedico, int intCentro, OracleConnection con) { try { // Solo continúa si el parámetro 1055 está activo (valor -1) if (GBfParametrosGenerales(1055, con) == "-1") { log.Info(" Metodo: 4. Insertar Log de la operación. Entro."); // Variables para almacenar los valores previos long lngNumLibroAnterior = 0; int intNumFolioAnterior = 0; int intNumLineaAnterior = 0; long lngSaldoAnterior = 0; int intEntradaAnterior = 0; int intSalidaAnterior = 0; if (intAccion == 1) { log.Info(" Metodo: 4. Insertar Log de la operación. Inserción."); // Para una inserción se obtiene el último registro mediante un método auxiliar. // Se utiliza un array de 10 elementos, simulando la numeración de índices del 1 al 9. object[] vntData = new object[10]; // Se asignan los datos actuales (índices 1 a 3) vntData[1] = lngNumLibroActual; vntData[2] = intNumFolioActual; vntData[3] = intNumLineaActual; // Se llama al método que obtiene los valores anteriores al nuevo registro ObtenerUltimoRegistroLibroEstupefacientes(ref vntData, con); lngNumLibroAnterior = Convert.ToInt64(vntData[4]); intNumFolioAnterior = Convert.ToInt32(vntData[5]); intNumLineaAnterior = Convert.ToInt32(vntData[6]); intEntradaAnterior = Convert.ToInt32(vntData[7]); intSalidaAnterior = Convert.ToInt32(vntData[8]); lngSaldoAnterior = Convert.ToInt64(vntData[9]); } else // Si no es inserción (se asume actualización) { log.Info(" Metodo: 4. Insertar Log de la operación. Actualización."); // Se obtiene el registro que se va a actualizar en FRX300. string sql = "SELECT FRX3Entrada, FRX3Salida, FRX3Saldo " + "FROM FRX300 " + "WHERE FRX1NUMLIBRO = :p0 AND FRX2NumFolio = :p1 AND FRX3NumLinea = :p2"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sql; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int64).Value = lngNumLibroActual; cmd.Parameters.Add(":p1", OracleDbType.Int32).Value = intNumFolioActual; cmd.Parameters.Add(":p2", OracleDbType.Int32).Value = intNumLineaActual; using (OracleDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { lngSaldoAnterior = !reader.IsDBNull(reader.GetOrdinal("FRX3Saldo")) ? reader.GetInt64(reader.GetOrdinal("FRX3Saldo")) : 0; intEntradaAnterior = !reader.IsDBNull(reader.GetOrdinal("FRX3Entrada")) ? reader.GetInt32(reader.GetOrdinal("FRX3Entrada")) : 0; intSalidaAnterior = !reader.IsDBNull(reader.GetOrdinal("FRX3Salida")) ? reader.GetInt32(reader.GetOrdinal("FRX3Salida")) : 0; } else { lngSaldoAnterior = 0; intEntradaAnterior = 0; intSalidaAnterior = 0; } } } // Para actualizaciones, los datos “anteriores” se toman igual que los actuales lngNumLibroAnterior = lngNumLibroActual; intNumFolioAnterior = intNumFolioActual; intNumLineaAnterior = intNumLineaActual; } // Inserción en la tabla de log FRX300_Log string strInsert = "INSERT INTO FRX300_Log (FRX3NumReg, FRX3Formulario, FRX3Accion, FRX3Observaciones, " + "FRX1NumLibroAnterior, FRX2NumFolioAnterior, FRX3NumLineaAnterior, FRX3EntradaAnterior, " + "FRX3SalidaAnterior, FRX3SaldoAnterior, FRX1NumLibroActual, FRX2NumFolioActual, " + "FRX3NumLineaActual, FRX3EntradaActual, FRX3SalidaActual, FRX3SaldoActual, " + "SG02Cod, AD02CodDpto, AD74CodCentro) " + "VALUES (FRX3NUMREG_SEQUENCE_Log.NEXTVAL, :p0, :p1, :p2, :p3, :p4, :p5, :p6, " + ":p7, :p8, :p9, :p10, :p11, :p12, :p13, :p14, :p15, :p16, :p17)"; using (OracleCommand cmdInsert = con.CreateCommand()) { cmdInsert.CommandType = CommandType.Text; cmdInsert.CommandText = strInsert; cmdInsert.BindByName = true; // Se añaden los parámetros en orden cmdInsert.Parameters.Add(":p0", OracleDbType.Varchar2).Value = strFormularioOrigen; cmdInsert.Parameters.Add(":p1", OracleDbType.Int32).Value = intAccion; cmdInsert.Parameters.Add(":p2", OracleDbType.Varchar2).Value = strObservaciones; cmdInsert.Parameters.Add(":p3", OracleDbType.Int64).Value = lngNumLibroAnterior; cmdInsert.Parameters.Add(":p4", OracleDbType.Int32).Value = intNumFolioAnterior; cmdInsert.Parameters.Add(":p5", OracleDbType.Int32).Value = intNumLineaAnterior; cmdInsert.Parameters.Add(":p6", OracleDbType.Int32).Value = intEntradaAnterior; cmdInsert.Parameters.Add(":p7", OracleDbType.Int32).Value = intSalidaAnterior; cmdInsert.Parameters.Add(":p8", OracleDbType.Int64).Value = lngSaldoAnterior; cmdInsert.Parameters.Add(":p9", OracleDbType.Int64).Value = lngNumLibroActual; cmdInsert.Parameters.Add(":p10", OracleDbType.Int32).Value = intNumFolioActual; cmdInsert.Parameters.Add(":p11", OracleDbType.Int32).Value = intNumLineaActual; cmdInsert.Parameters.Add(":p12", OracleDbType.Int32).Value = intEntradaActual; cmdInsert.Parameters.Add(":p13", OracleDbType.Int32).Value = intSalidaActual; cmdInsert.Parameters.Add(":p14", OracleDbType.Int64).Value = lngSaldoActual; cmdInsert.Parameters.Add(":p15", OracleDbType.Varchar2).Value = strMedico; cmdInsert.Parameters.Add(":p16", OracleDbType.Int32).Value = intCDepartamento; cmdInsert.Parameters.Add(":p17", OracleDbType.Int32).Value = intCentro; //Sacar la SQL final para el log string finalSql = ObtenerSqlConValores(cmdInsert); log.Info("Metodo: 4. SQL FRX300_Log: " + finalSql); // cmdInsert.ExecuteNonQuery(); } // Validación y envío de avisos por correo log.Info("Validación y envío de avisos por correo"); string strAsunto = ""; string strmensaje = ""; if (intAccion == 1) { // Comprobación de salto en el número de línea log.Info("Comprobación de salto en el número de línea"); if ((intNumLineaActual != 1 && intNumLineaActual - 1 != intNumLineaAnterior) || (intNumLineaActual == 1 && intNumLineaAnterior != 20)) { strAsunto = "Libro Estupefacientes. Salto de Linea."; strmensaje = "Se ha producido un salto erroneo. Libro Anterior: " + lngNumLibroAnterior + " Folio Anterior: " + intNumFolioAnterior + " Linea Anterior: " + intNumLineaAnterior + " --> Libro Actual: " + lngNumLibroActual + " Folio Actual: " + intNumFolioActual + " Linea Actual: " + intNumLineaActual; } // Validación del saldo: el saldo actual debe ser igual al saldo anterior más entrada menos salida log.Info("Validación del saldo: el saldo actual debe ser igual al saldo anterior más entrada menos salida"); if (lngSaldoActual != lngSaldoAnterior + intEntradaActual - intSalidaActual) { strAsunto = (strAsunto + " Libro Estupefacientes. Error de Saldo.").Trim(); string errorMsg = "Se ha producido un error de saldo. Libro Anterior: " + lngNumLibroAnterior + " Folio Anterior: " + intNumFolioAnterior + " Linea Anterior: " + intNumLineaAnterior + " --> Libro Actual: " + lngNumLibroActual + " Folio Actual: " + intNumFolioActual + " Linea Actual: " + intNumLineaActual + " Saldo Actual = " + lngSaldoActual + " El saldo deberia ser: " + (lngSaldoAnterior + intEntradaActual - intSalidaActual); if (!string.IsNullOrEmpty(strmensaje)) strmensaje += "\n" + errorMsg; else strmensaje = errorMsg; } } else if (intAccion == 2) // Acción de actualización { log.Info("Acción de actualización"); strAsunto = "Libro Estupefacientes. Modificacion Saldo."; strmensaje = "Se ha modificado el saldo del Libro: " + lngNumLibroActual + " Folio: " + intNumFolioActual + " Linea: " + intNumLineaActual + " Saldo Anterior: " + lngSaldoAnterior + ", Saldo Nuevo: " + lngSaldoActual; } // Enviar correo si se ha generado algún mensaje de error o aviso if (!string.IsNullOrEmpty(strmensaje)) { log.Info("Enviar correo si se ha generado algún mensaje de error o aviso"); string strEmailTo = GBfParametrosGenerales(832, con).ToString(); string strEmailFrom = (intCentro == 1) ? "admoncun@unav.es" : "madridcunadmin@unav.es"; GBpInsertarEmail(con, strEmailFrom, strEmailTo, null, null, strAsunto, strmensaje); } log.Info("Fin Metodo: 4."); } } catch (Exception ex) { // Se guarda el error ocurrido //GBpGuardarLog("1055", "Se ha producido este error en GB001:pInsertarLogLinea:" + ex.Message, con); GBpGuardarLog("1111", "Se ha producido este error en ESB-NET WSFarmacia:pInsertarLogLinea:" + ex.Message, con); //Nos indica JL que usemos el 1111 } } <summary> Actualiza el array vntData con la información del último registro del libro de estupefacientes. Se esperan los siguientes valores: vntData[1] = libro actual, vntData[2] = folio actual, vntData[3] = línea actual. Al finalizar se asigna: vntData[4] = LibroAnterior, vntData[5] = FolioAnterior, vntData[6] = LineaAnterior, vntData[7] = EntradaAnterior, vntData[8] = SalidaAnterior, vntData[9] = SaldoAnterior. </summary> <param name="vntData"> Array de objetos que ya contiene los datos iniciales. Se debe garantizar que el array tenga suficiente dimensión (por ejemplo, tamaño 10 para índices del 1 al 9). </param> <param name="con">Conexión Oracle abierta</param> private void ObtenerUltimoRegistroLibroEstupefacientes(ref object[] vntData, OracleConnection con) { // Si la línea actual es 1 se necesitan obtener valores previos (libro y folio anteriores) if (Convert.ToInt32(vntData[3]) == 1) { string sql = "SELECT NVL(FRX200.FRX2NumLibro_Ant,0) LibroAnterior, NVL(FRX200.FRX2NumFolio_Ant,0) FolioAnterior " + "FROM FRX100, FRX200 " + "WHERE FRX200.FRX1Numlibro = :p0 " + "AND FRX200.FRX2NumFolio = :p1 " + "AND FRX200.FRX1NumLibro = FRX100.FRX1NumLibro"; using (OracleCommand cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = sql; cmd.BindByName = true; cmd.Parameters.Add(":p0", OracleDbType.Int64).Value = Convert.ToInt64(vntData[1]); cmd.Parameters.Add(":p1", OracleDbType.Int32).Value = Convert.ToInt32(vntData[2]); //Sacar la SQL final para el log string finalSql = ObtenerSqlConValores(cmd); log.Info("SQL ObtenerUltimoRegistroLibroEstupefacientes 1: " + finalSql); // using (OracleDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { vntData[4] = !reader.IsDBNull(reader.GetOrdinal("LibroAnterior")) ? reader.GetInt64(reader.GetOrdinal("LibroAnterior")) : 0; vntData[5] = !reader.IsDBNull(reader.GetOrdinal("FolioAnterior")) ? reader.GetInt32(reader.GetOrdinal("FolioAnterior")) : 0; } else { vntData[4] = 0; vntData[5] = 0; } } } } else { // Si no es la primera línea, se utilizan los valores actuales vntData[4] = vntData[1]; vntData[5] = vntData[2]; } // Se obtiene el saldo y la última entrada/salida string sqlSaldo = "SELECT FRX3NumLinea, FRX3Entrada, FRX3Salida, FRX3Saldo " + "FROM FRX300 " + "WHERE FRX1NumLibro = :p0 AND FRX2NumFolio = :p1 " + "AND ROWNUM < 2 " + "ORDER BY FRX3NumLinea DESC"; using (OracleCommand cmdSaldo = con.CreateCommand()) { cmdSaldo.CommandType = CommandType.Text; cmdSaldo.CommandText = sqlSaldo; cmdSaldo.BindByName = true; cmdSaldo.Parameters.Add(":p0", OracleDbType.Int64).Value = Convert.ToInt64(vntData[4]); cmdSaldo.Parameters.Add(":p1", OracleDbType.Int32).Value = Convert.ToInt32(vntData[5]); //Sacar la SQL final para el log string finalSql = ObtenerSqlConValores(cmdSaldo); log.Info("SQL ObtenerUltimoRegistroLibroEstupefacientes 2(saldo): " + finalSql); // using (OracleDataReader readerSaldo = cmdSaldo.ExecuteReader()) { if (readerSaldo.Read()) { vntData[6] = !readerSaldo.IsDBNull(readerSaldo.GetOrdinal("FRX3NumLinea")) ? readerSaldo.GetInt32(readerSaldo.GetOrdinal("FRX3NumLinea")) : 0; vntData[7] = !readerSaldo.IsDBNull(readerSaldo.GetOrdinal("FRX3Entrada")) ? readerSaldo.GetInt32(readerSaldo.GetOrdinal("FRX3Entrada")) : 0; vntData[8] = !readerSaldo.IsDBNull(readerSaldo.GetOrdinal("FRX3Salida")) ? readerSaldo.GetInt32(readerSaldo.GetOrdinal("FRX3Salida")) : 0; vntData[9] = !readerSaldo.IsDBNull(readerSaldo.GetOrdinal("FRX3Saldo")) ? readerSaldo.GetInt64(readerSaldo.GetOrdinal("FRX3Saldo")) : 0; } else { vntData[6] = 0; vntData[7] = 0; vntData[8] = 0; vntData[9] = 0; } } } } <summary> Guarda un log simple llamando a un procedimiento PL/SQL.
publicstringGBfParametrosGenerales(int cod, OracleConnection con)Obtiene el parámetro general identificado por 'cod' desde la tabla FRH200.
publicvoidGBpInsertarEmail(OracleConnection con, string from, string to, string cc = null, string bcc = null, string subject = null, string body = null)Inserta un registro en la tabla de emails (GC7300) para enviar notificaciones. La hemos modificado para ignorar el tema de bind variables, ya que en este contexto no es necesario.
publicstringGBfBindVariableLong(string texto, List cllBV)
publicintGBfBindVariableValor(OracleCommand qry, int v, IList cllBV)
publicstringObtenerSqlConValores(OracleCommand command)

Private / Protected (32)

privatePacienteEntityGetDatosPaciente(ControlError ce, String numHistoria)
privateList<IntervencionEntity>GetIntervencionesPaciente(ControlError ce, int CodPersona)
privateProductoEntityGetProductoCodInterno(ControlError ce, String codigo)
privateProductoEntityGetProductoCodProveedor(ControlError ce, String codigo, String lote = null, DateTime? fechaCaducidad = null)
privateBooleanRegistrarConsumoQuirofano(ConsumoEntity cons, OracleConnection con, OracleTransaction trans, ControlError ce)
privateBooleanRegistrarConsumoAnestesia(ConsumoEntity cons, OracleConnection con, OracleTransaction trans, ControlError ce)
privateLoteEntityObtenerLote(int numReg, OracleConnection con)
privateLoteEntityObtenerLoteManual(int numReg, OracleConnection con)
privateList<LoteEntity>ObtenerLotesProducto(int codigo, OracleConnection con)
privateBooleanActualizarLote(int numReg, int hojaQuir, OracleConnection con, OracleTransaction trans, ControlError ce)
privateintInsertarLote(int hojaQuir, int codProducto, string lote, DateTime caducidad, OracleConnection con, OracleTransaction trans, ControlError ce)
privateBooleanResetearLote(int codProducto, int hojaQuir, int numReg, OracleConnection con, OracleTransaction trans, ControlError ce)
privateBooleanActualizarSG02FR18(int numLinea, int codProducto, int codHojaQuir, String codUsuario, OracleConnection con, OracleTransaction trans, ControlError ce)
privateBooleanActualizarSG02FR17(int numLinea, int codProducto, int codHojaQuir, String codUsuario, OracleConnection con, OracleTransaction trans, ControlError ce)
privateintObtenerCentro 📋 COPY-PASTE 88%(int codDpto, OracleConnection con, ControlError ce)
privateBooleanCerrarConsumosPaciente(PacienteEntity paciente, OracleConnection con, OracleTransaction trans, Boolean centroEsPamplona, ControlError ce)
privateBooleanActualizarHojaQuir(int hojaQuir, OracleConnection con, OracleTransaction trans, ControlError ce)
privateBooleanActualizarCodEstadoHojaQuir(int hojaQuir, OracleConnection con, OracleTransaction trans, ControlError ce)
privatelongfNumMov(int codMaquina, int numUbicacion, OracleConnection con)
privatevoidpObtenerLineaLibre(long lngCodProducto, long lngNumLibro, int intNumFolio, int intNumLinea, bool blnLineaObtenida, int intCentro = 0, OracleConnection con = null)
privateintfNumLineasDelFolio(long lngNumLibro, OracleConnection con)
privateintfNumFoliosDelLibro(long lngNumLibro, OracleConnection con)
privateintfPrimerFolioLibreDelLibro(long lngNumLibro, OracleConnection con)
privatelongfNumNuevoLibro(OracleConnection con)
privateboolfCerrarLibro(long lngNumLibro, OracleConnection con)
privatevoidpPrimerLibroActivoConFolioActivo(OracleConnection con)
privatevoidpCrearNuevoLibro(long lngNumLibro, OracleConnection con)
privatevoidpCrearNuevoFolio(long lngNumLibro, int lngNumFolio, long lngCodProducto, OracleConnection con, long lngLibroAnt = 0, int lngFolioAnt = 0)
privatevoidpCerrarFolio(long lngNumLibro, int lngNumFolio, OracleConnection con, long lngLibroSig = 0, int lngFolioSig = 0)
privatevoidpCerrarLibro(long lngNumLibro, OracleConnection con)
privatevoidGBpInsertarLogLineaEstupefacientes(long lngCodProducto, string strFormularioOrigen, int intAccion, string strObservaciones, long lngNumLibroActual, int intNumFolioActual, int intNumLineaActual, long lngSaldoActual, int intEntradaActual, int intSalidaActual, int intCDepartamento, string strMedico, int intCentro, OracleConnection con)
privatevoidObtenerUltimoRegistroLibroEstupefacientes(object[] vntData, OracleConnection con)

🗄 All SQL Queries (139)

FileQueryTables
WSFarmacia.svc.cs
select CI21CodPersona,CI22NumHistoria,CI22PriApel,CI22SegApel, CI22Nombre
WSFarmacia.svc.cs
SELECT AG1100.AG11DesRecurso, PR0100.PR01Descorta, PR0400.AD01CodAsistenci,
WSFarmacia.svc.cs
EXISTS (SELECT 1 FROM PRC600 WHERE PRC600.PR62CodHojaQuir = PR0400.PR62CodHojaQuir) AND
PRC600
WSFarmacia.svc.cs
(NOT EXISTS(SELECT 1 FROM PRC600 WHERE PRC600.PR62CodHojaQuir = PR0400.PR62CodHojaQuir AND PRC600.PRC5CodEstInterv = 13) OR
PRC600
WSFarmacia.svc.cs
select fr1800.PR62CODHOJAQUIR CODHOJAQUIR, fr1800.FR18NUMLINEA NUMLINEA, fr1800.FR73CODPRODUCTO CODPRODUCTO, '' CODUNIMEDIDA, fr1800.FR18CANTCONSUMIDA CANTIDAD,
WSFarmacia.svc.cs
select fr1700.PR62CODHOJAQUIR CODHOJAQUIR, fr1700.FR17NUMLINEA NUMLINEA, fr1700.FR73CODPRODUCTO CODPRODUCTO, fr1700.FR93CODUNIMEDIDA CODUNIMEDIDA, fr1700.FR17CANTIDAD CANTIDAD,
WSFarmacia.svc.cs
DELETE FROM FR1800 WHERE PR62CODHOJAQUIR = :hojaQuiro AND FR18NUMLINEA = :numLinea
FR1800
WSFarmacia.svc.cs
DELETE FROM FR1700 WHERE PR62CODHOJAQUIR = :hojaQuiro AND FR17NUMLINEA = :numLinea
FR1700
WSFarmacia.svc.cs
SELECT FR73CODPRODUCTO, FR73CODINTFAR, FR73DESPRODUCTO, FR73INDREPOSICION FROM FR7300 WHERE FR73CODINTFAR = :codigo
FR7300
WSFarmacia.svc.cs
select frg800.fr73codproducto,fr7300.fr73codintfar,fr7300.fr73codintfarseg,fr7300.fr73desproducto, fr7300.FR73INDREPOSICION
WSFarmacia.svc.cs
SELECT MAX(FR18NUMLINEA) FROM FR1800 WHERE PR62CODHOJAQUIR = :hojaQuiro
FR1800
WSFarmacia.svc.cs
SELECT MAX(FR18NUMLINEA) ULT_LINEA FROM FR1800 WHERE PR62CODHOJAQUIR = :hojaQuiro
FR1800
WSFarmacia.svc.cs
INSERT INTO FR1800 (PR62CODHOJAQUIR, FR18NUMLINEA, FR73CODPRODUCTO, FR18CANTCONSUMIDA, fr18indbloqueo
FR1800
WSFarmacia.svc.cs
SELECT MAX(FR17NUMLINEA) ULT_LINEA FROM FR1700 WHERE PR62CODHOJAQUIR = :hojaQuiro
FR1700
WSFarmacia.svc.cs
SELECT FR93CODUNIMEDIDA FROM FR7300 WHERE FR73CODPRODUCTO = :codProducto
FR7300
WSFarmacia.svc.cs
INSERT INTO FR1700 (PR62CODHOJAQUIR,FR17NUMLINEA,FR73CODPRODUCTO,FR93CODUNIMEDIDA,FR17CANTIDAD,fr17indbloqueo)
FR1700
WSFarmacia.svc.cs
select fr51numreg, fr51numlote, fr51feccaducidad from fr5100 WHERE fr51numreg = :numReg
fr5100
WSFarmacia.svc.cs
select frm5numreg, frm5numlote, frm5feccaducidad from frm500 WHERE frm5numreg = :numReg
frm500
WSFarmacia.svc.cs
SELECT MIN(fr51numreg) AS fr51numreg, fr51numlote, fr51feccaducidad FROM fr5100
fr5100
WSFarmacia.svc.cs
UPDATE fr5100 SET fr51fecsalida = sysdate, pr62codhojaquir = :hojaQuir WHERE fr51numreg = :numReg
fr5100
WSFarmacia.svc.cs
SELECT FRM5NUMREG_SEQUENCE.NEXTVAL AS numReg FROM DUAL
DUAL
WSFarmacia.svc.cs
INSERT INTO frm500 (frm5numreg, pr62codhojaquir, fr73codproducto, frm5numlote, frm5feccaducidad)
frm500
WSFarmacia.svc.cs
SELECT 1 FROM FR1800 WHERE PR62CODHOJAQUIR = :hojaQuir AND FR73CODPRODUCTO = :codProducto AND fr51numreg = :numReg
FR1800
WSFarmacia.svc.cs
SELECT * FROM FR1800 WHERE PR62CODHOJAQUIR = :hojaQuir AND FR73CODPRODUCTO = :codProducto AND frm5numreg = :numReg
FR1800
WSFarmacia.svc.cs
UPDATE fr5100 SET fr51fecsalida = null, pr62codhojaquir = null WHERE fr51numreg = :numReg
fr5100
WSFarmacia.svc.cs
DELETE FROM frm500 WHERE frm5numreg = :numReg
frm500
WSFarmacia.svc.cs
update FR1800 set
FR1800
WSFarmacia.svc.cs
update FR1700 set
FR1700
WSFarmacia.svc.cs
SELECT AD74CODCENTRO FROM AD0200 WHERE AD02CODDPTO = :codDpto
AD0200
WSFarmacia.svc.cs
INSERT INTO FR6500 (FR65CODIGO, CI21CODPERSONA, FR73CODPRODUCTO, FR65FECHA,
FR6500
WSFarmacia.svc.cs
SELECT FR65CODIGO_SEQUENCE.NEXTVAL, :codPaciente, FR1800.FR73CODPRODUCTO, SYSDATE,
WSFarmacia.svc.cs
SELECT FR65CODIGO_SEQUENCE.NEXTVAL, :codPaciente, FR1700.FR73CODPRODUCTO, SYSDATE,
WSFarmacia.svc.cs
UPDATE PR6200
PR6200
WSFarmacia.svc.cs
select  fr7300.fr73codproducto Cod, fr7300.fr73codintfar Codigo, fr7300.fr73desproducto Descripcion, fr7300.fr73codnac CodNac,
WSFarmacia.svc.cs
select fr4900.frj1codalbaran CodAlbaran, fr4900.frj3numlinea NumLinea,
WSFarmacia.svc.cs
SELECT ci2200.ci22numhistoria Historia, ci2200.ci22priapel, ci2200.ci22segapel,ci2200.ci22nombre, ci2200.CI22FECNACIM,
WSFarmacia.svc.cs
SELECT fr00codgrpterap, fr00desgrpterap FROM FR0000 WHERE fr00codgrpterap = :codFamilia
FR0000
WSFarmacia.svc.cs
SELECT fr7300.fr73codproducto,fr7300.fr73codintfar, fr7300.fr73codnac, fr7300.fr73fecfinvig, fr7300.fr73desproducto,fr7300.fr00codgrpterap,fr7300.FR79CODPROVEEDOR_A,fr7300.FR79CODPROVEEDOR_B,fr7300.FR79CODPROVEEDOR_C,fr0000.fr00desgrpterap
WSFarmacia.svc.cs
SELECT fr79codproveedor,fr79proveedor FROM fr7900 WHERE fr79codproveedor = :codProveedor
fr7900
WSFarmacia.svc.cs
SELECT frj100.frj1codalbaran,frj100.frj1fechaalbar,frj100.ad74codcentro,frj100.fr79codproveedor,fr7900.fr79proveedor,
WSFarmacia.svc.cs
SELECT fr4900.frj1codalbaran,frj3numlinea,fr49codlote,fr49deslote,fr49fecentradalot,fr49unidadeslote,fr49feccaducidad,
WSFarmacia.svc.cs
SELECT fr5100.frj1codalbaran,ad02coddpto,ad41codseccion,fr51numlote,fr51fecentrada,fr51feccaducidad,
WSFarmacia.svc.cs
SELECT FR5500.FR55CODNECESUNID, FR5500.FR26CODESTPETIC, fr1900.FR20NUMLINEA, FR5500.FR26CODESTPETIC, fr5500.AD02CODDPTO, ad0200.ad02desdpto, ad0200.ad74codcentro,
WSFarmacia.svc.cs
SELECT frk300.frk3codnecesunid,frk300.fr26codestpetic,frk300.frk3indquiane,frk300.ad74codcentro,
WSFarmacia.svc.cs
SELECT fr6600.ad02coddpto,ad0200.ad02desdpto,fr6600.ad41codseccion,ad4100.ad41desseccion,ad0200.ad74codcentro,
WSFarmacia.svc.cs
(SELECT fr66codpeticion FROM frad00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYY-MM-DD HH24:MI:SS')) AND
frad00
WSFarmacia.svc.cs
SELECT fr5500.AD02CODDPTO, ad0200.ad02desdpto, ad0200.ad74codcentro,
WSFarmacia.svc.cs
(SELECT FR55CODNECESUNID FROM frad00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYY-MM-DD HH24:MI:SS')) AND
frad00
WSFarmacia.svc.cs
SELECT frk300.frk3indquiane,frk300.ad74codcentro,
WSFarmacia.svc.cs
frk300.frk3codnecesunid IN (SELECT frk3codnecesunid FROM frad00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYY-MM-DD HH24:MI:SS')) AND
frad00
WSFarmacia.svc.cs
SELECT fr3300.fr33feccarga,fr33horacarga,
WSFarmacia.svc.cs
SELECT ad0200.ad74codcentro,fr3300.fr73codproducto,fr7300.fr73codintfar,fr7300.fr73desproducto,fr3300.fr33grupo,CEIL(Sum(fr33cantidad)) CANTIDAD
WSFarmacia.svc.cs
SELECT fre900.fr73codproducto,fr7300.fr73codintfar,fr7300.fr73desproducto,CEIL(fre9cantidad) CANTIDAD
WSFarmacia.svc.cs
SELECT PERSONA,CAMA,ci2200.ci22numhistORia, ci2200.ci22priapel, ci2200.ci22segapel,ci2200.ci22nombre,
WSFarmacia.svc.cs
SELECT fr6600.ci21codpersona PERSONA, gcfn06(ad15codcama) CAMA,fr2800.fr73codproducto CODPROD,sum(fr2800.fr28CANTIDAD) Cant1,fr6600.ad02coddpto CODDPTO,ad0200.ad02desdpto DESDPTO,ad0200.ad74codcentro CODCENTRO
WSFarmacia.svc.cs
SELECT fr66codpeticion,fr28numlINea,fr43numlINea
WSFarmacia.svc.cs
SELECT fr6600.ci21codpersona PERSONA,gcfn06(ad15codcama) CAMA,fr2800.fr73codproducto_dil CODPROD,sum(fr2800.fr28cantidaddil) CantDil,fr6600.ad02coddpto CODDPTO,ad0200.ad02desdpto DESDPTO,ad0200.ad74codcentro CODCENTRO
WSFarmacia.svc.cs
SELECT fr66codpeticion,fr28numlINea,fr48numlINea
WSFarmacia.svc.cs
SELECT fr7100.FR73CODPRODUCTO,fr7300.fr73codintfar,fr7300.fr73desproducto,CEIL(FR71CANTNECESARIA) AS CANTIDAD
WSFarmacia.svc.cs
SELECT frt600.frt6coddispensacion,frt600.frt6fecdispen,
WSFarmacia.svc.cs
SELECT FR73CODPRODUCTO FROM FR7300 WHERE FR73CODINTFAR = :codIntFar
FR7300
WSFarmacia.svc.cs
Update fr4300 set fr4300.fr43estado = 2,fr4300.fr43fecfinfab= sysdate where fr4300.fr66codpeticion = :codPeticion and fr4300.fr28numlinea = :fr28numlinea and fr4300.fr43numlinea = :fr43numlinea
fr4300
WSFarmacia.svc.cs
SELECT fr6600.fr66codpeticion codpeticion,fr2800.fr28numlinea numlinea,fr6600.ad02coddpto,ad0200.ad74codcentro,fr6600.ad41codseccion,
WSFarmacia.svc.cs
fr6600.fr66codpeticion IN (SELECT fr66codpeticion FROM FRAD00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYYMMDDHH24MISS')) AND
FRAD00
WSFarmacia.svc.cs
SELECT FR5500.FR55CODNECESUNID codpeticion, FR5500.FR26CODESTPETIC, fr1900.FR20NUMLINEA numlinea, FR5500.FR26CODESTPETIC, fr5500.AD02CODDPTO, ad0200.ad02desdpto, ad0200.ad74codcentro,
WSFarmacia.svc.cs
FR5500.FR55CODNECESUNID IN (SELECT FR55CODNECESUNID FROM FRAD00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYYMMDDHH24MISS')) AND
FRAD00
WSFarmacia.svc.cs
SELECT frk300.frk3codnecesunid codpeticion,frk300.frk3indquiane,frk300.ad74codcentro,
WSFarmacia.svc.cs
frk300.frk3codnecesunid IN (SELECT frk3codnecesunid FROM FRAD00 WHERE fraecodtipevento = :codTipoEvento AND fradfecha_reg = to_date(:fechaReg, 'YYYYMMDDHH24MISS'))  AND
FRAD00
WSFarmacia.svc.cs
SELECT FR26CODESTPETIC FROM FR5500 WHERE FR55CODNECESUNID = :codPeticion
FR5500
WSFarmacia.svc.cs
SELECT FR26CODESTPETIC FROM FR6600 WHERE FR66CODPETICION = :codPeticion
FR6600
WSFarmacia.svc.cs
UPDATE FR1900 SET FR19CANTSUMIFARM = 0 WHERE FR55CODNECESUNID = :codPeticion AND FR19CANTSUMIFARM <> 0
FR1900
WSFarmacia.svc.cs
UPDATE FR2800 SET FR28CANTPEDORI = FR28CANTIDAD,FR28CANTDISP = 0 WHERE FR66CODPETICION = :codPeticion AND FR28CANTDISP <> 0
FR2800
WSFarmacia.svc.cs
UPDATE FR1900 SET FR19CANTSUMIFARM = FR19CANTSUMIFARM + :cantidad,
FR1900
WSFarmacia.svc.cs
UPDATE FRK500 SET FRK5CANTSUMIFARM = FRK5CANTSUMIFARM - :cantidad,
FRK500
WSFarmacia.svc.cs
UPDATE FR2800 SET FR28CANTIDAD = FR28CANTIDAD - :cantidad
FR2800
WSFarmacia.svc.cs
SELECT prd900.ad02coddpto FROM fre800,prd900 WHERE fre8numrevision=:numRevision AND fre800.prd9numcarro=prd900.prd9numcarro
fre800
WSFarmacia.svc.cs
SELECT FR04CODALMACEN FROM FR0400 WHERE AD02CODDPTO = :codDpto AND FR0400.FR04INDPRINCIPAL = -1
FR0400
WSFarmacia.svc.cs
INSERT INTO FRS400 (FRS4NUMMOV, AD74CODCENTRO ,FR04CODALMACEN_ORI, FR04CODALMACEN_DES,
FRS400
WSFarmacia.svc.cs
INSERT INTO FRK100 (FRK1CODMOV, FRK1FECMOV, AD02CODDPTO,
FRK100
WSFarmacia.svc.cs
INSERT INTO FR6500
FR6500
WSFarmacia.svc.cs
(SELECT DISTINCT
WSFarmacia.svc.cs
SELECT COUNT(*) AS total FROM fr1900 WHERE fr55codnecesunid = :codPeticion AND nvl(fr19inddispensado,0) = 0 AND nvl(fr19indbloq,0) = 0
fr1900
WSFarmacia.svc.cs
SELECT COUNT(*) AS total FROM FRK500 WHERE FRK3CODNECESUNID = :codPeticion AND FRK5INDTRATADO <> 2 AND nvl(FRK5INDBLOQ,0) = 0
FRK500
WSFarmacia.svc.cs
SELECT COUNT(*) AS total FROM fr2800 WHERE fr2800.fr66codpeticion = :codPeticion AND FR2800.FR28cantidad <> 0 AND nvl(FR2800.FR28indbloqueada,0) = 0
fr2800
WSFarmacia.svc.cs
UPDATE FR5500 SET fr55indtranskardex = 0, FR55FECDISPEN = SYSDATE, FR26CODESTPETIC =
FR5500
WSFarmacia.svc.cs
UPDATE FRK300 SET FR26CODESTPETIC =
FRK300
WSFarmacia.svc.cs
UPDATE FR6600 SET fr66indtranskardex = 0, FR66FECDISPEN = SYSDATE, FR26CODESTPETIC =
FR6600
WSFarmacia.svc.cs
INSERT INTO FRAK00 (FRAKNUMREG, AD74CODCENTRO, FR73CODPRODUCTO, FRAKFECHA, FRAKEXISTENCIAS, FRAKUBICACION, FRAKTIPOCONSULTA,
FRAK00
WSFarmacia.svc.cs
INSERT INTO FRAP00 (FRAPNUMREG, AD74CODCENTRO, FR73CODPRODUCTO, FRAPFECHA, FRAPCANT,
FRAP00
WSFarmacia.svc.cs
INSERT INTO FRS400 (FRS4NUMMOV,AD74CODCENTRO,FR04CODALMACEN_ORI,FR04CODALMACEN_DES,FR90CODTIPMOV,FRS4FECMOVIMIENTO,FR73CODPRODUCTO,FRS4CANTIDAD,FRS4OBSERVMOV)
FRS400
WSFarmacia.svc.cs
INSERT INTO FRAD00 (FRADNUMREG,FRADINDREALIZADO,FRAECODTIPEVENTO,FR73CODPRODUCTO,FRADCANTIDAD)
FRAD00
WSFarmacia.svc.cs
UPDATE FRS100 SET FRS5UBICACION_2 = :ubicacionKardex1
FRS100
WSFarmacia.svc.cs
SELECT COUNT(*) resultado FROM FRAD00 where fradindrealizado = 0
FRAD00
WSFarmacia.svc.cs
SELECT CI21CODPERSONA FROM CI2200 WHERE CI22NUMHISTORIA = :numHistoria
CI2200
WSFarmacia.svc.cs
select FR73CODPRODUCTO,FR24DESGENERICA,FR24DESFORMFAR,FR24DOSIS,FR93CODUNIMEDIDA,FR24VOLUMEN,FR24DESPRODUCTO,FR73CODINTFAR,FR24FECADD
WSFarmacia.svc.cs
select CI22NUMHISTORIA,FR59NOMBRE,FR59PRIAPEL,FR59SEGAPEL,FR59SEXO,FR59CAMA,AD07CODPROCESO,AD01CODASISTENCI,FR59DESDPTO,FR59TIPOEVENTO,
WSFarmacia.svc.cs
SELECT FR65CODIGO_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL
WSFarmacia.svc.cs
SELECT FRN0CODIGO_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL
WSFarmacia.svc.cs
SELECT FRK1CODMOV_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL
WSFarmacia.svc.cs
SELECT fr80nummov_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL
WSFarmacia.svc.cs
SELECT frs4nummov_SEQUENCE.NEXTVAL FR FROM DUAL
DUAL
WSFarmacia.svc.cs
INSERT INTO frk100
frk100
WSFarmacia.svc.cs
insert into FR6500
FR6500
WSFarmacia.svc.cs
update FR6500 set
FR6500
WSFarmacia.svc.cs
insert into FR8000
FR8000
WSFarmacia.svc.cs
insert into frz200
frz200
WSFarmacia.svc.cs
UPDATE FRZ200 SET
FRZ200
WSFarmacia.svc.cs
delete from frz200 where
frz200
WSFarmacia.svc.cs
insert into FRS400
FRS400
WSFarmacia.svc.cs
select AD74CODCENTRO from AD0200 where AD02CODDPTO=:codDepartamento
AD0200
WSFarmacia.svc.cs
SELECT SG02COD FROM SG0200 WHERE SG02CODWINDOWS =:codUsuario
SG0200
WSFarmacia.svc.cs
select AD01CODASISTENCI from ad0100 where ad01fecfin is null and ci22numhistoria = :numHistoria
ad0100
WSFarmacia.svc.cs
select AD01CODASISTENCI from ad0100 where ci22numhistoria = :numHistoria order by ad01fecadd desc
ad0100
WSFarmacia.svc.cs
select ad07codproceso from ad0500 where ad01codasistenci = :codAsistencia AND ad02coddpto = :codDepartamento
ad0500
WSFarmacia.svc.cs
select SALDO from (
WSFarmacia.svc.cs
select frx300.frx3saldo as SALDO From frx200, frx300, frx100
frx200
WSFarmacia.svc.cs
insert into frx300(
frx300
WSFarmacia.svc.cs
select nvl(max(fry5nummov),0) NUM from fry500 where fry3codmaquina = :codMaquina and fry4numubicacion = :numUbicacion
fry500
WSFarmacia.svc.cs
SELECT frx200.frx1numlibro, frx200.frx2numfolio, MAX(frx300.frx3numlinea) AS NUMLINEA
WSFarmacia.svc.cs
select frx1numlineasfolio from frx100 where frx1numlibro = :p0
frx100
WSFarmacia.svc.cs
select frx1numfolioslibro from frx100 where frx1numlibro = :p0
frx100
WSFarmacia.svc.cs
select count(*) from frx200 where frx1numlibro = :p0
frx200
WSFarmacia.svc.cs
select max(frx1numlibro) from frx100
frx100
WSFarmacia.svc.cs
select count(*) from frx200 where frx1numlibro = :p0 and frx2estadofolio = :estado
frx200
WSFarmacia.svc.cs
select frx1numlibro from frx100
frx100
WSFarmacia.svc.cs
insert into frx100 (frx1numlibro, frx1descrlibro, frx1fecinilibro, frx1estadolibro, frx1numfolioslibro, frx1numlineasfolio, ad74codcentro)
frx100
WSFarmacia.svc.cs
INSERT INTO frx200 (frx1numlibro, frx2numfolio, fr73codproducto, frx2estadofolio, frx2numlibro_ant, frx2numfolio_ant)
frx200
WSFarmacia.svc.cs
UPDATE frx200 SET frx2estadofolio = :p0, frx2numlibro_sig = :p1, frx2numfolio_sig = :p2
frx200
WSFarmacia.svc.cs
UPDATE frx100 SET frx1fecfinlibro = sysdate, frx1estadolibro = :p0 WHERE frx1numlibro = :p1
frx100
WSFarmacia.svc.cs
SELECT FRX3Entrada, FRX3Salida, FRX3Saldo
WSFarmacia.svc.cs
INSERT INTO FRX300_Log (FRX3NumReg, FRX3Formulario, FRX3Accion, FRX3Observaciones,
FRX300_Log
WSFarmacia.svc.cs
SELECT NVL(FRX200.FRX2NumLibro_Ant,0) LibroAnterior, NVL(FRX200.FRX2NumFolio_Ant,0) FolioAnterior
WSFarmacia.svc.cs
SELECT FRX3NumLinea, FRX3Entrada, FRX3Salida, FRX3Saldo
WSFarmacia.svc.cs
SELECT FRH2ParamGen FROM FRH200 WHERE FRH2CodParamGen = :p0
FRH200
WSFarmacia.svc.cs
INSERT INTO GC7300 (GC73NUMREG, GC73FROM, GC73TO, GC73CC, GC73BCC, GC73SUBJECT, GC73BODY, GC73INDENVIADO)
GC7300
WSFarmacia.svc.cs
SELECT FR73CODPRODUCTO FROM FR7300 where FR73CODNAC LIKE :codNac AND FR73PRECIONETCOMPRA > :cero
FR7300
WSFarmacia.svc.cs
insert into FRN000
FRN000
WSFarmacia.svc.cs
UPDATE PR6200  SET PR62CODESTADO_FAR = 2  WHERE PR62CODHOJAQUIR = :hojaQuir
PR6200
WSFarmacia.svc.cs
UPDATE PR6200  SET PR62CODESTADO = 1  WHERE PR62CODHOJAQUIR = :hojaQuir
PR6200

🧪 Tests

No formal unit tests found. Test project uses console-based manual invocation of each operation. See Suggested Test Stubs in each endpoint card above.