public ContenedorOrdenCompraCompleta LlamarSPCrear(ContenedorOrdenCompraCompleta nOCC) { if (ValidarPerfilCUD(nOCC.Retorno.Token)) { var p_OUT_NUMERO = new ObjectParameter("P_OUT_NUMERO", typeof(decimal)); var p_OUT_CODRET = new ObjectParameter("P_OUT_CODRET", typeof(decimal)); var p_OUT_GLSRET = new ObjectParameter("P_OUT_GLSRET", typeof(string)); var p_OUT_HAB_CODIGO = new ObjectParameter("P_OUT_HAB_CODIGO", typeof(decimal)); CapaDato.EntitiesBBDDHostel conex = new CapaDato.EntitiesBBDDHostel(); conex.SP_CREAR_ENC_RESERVA (nOCC.Item.Cabecera.RutCliente , p_OUT_CODRET , p_OUT_GLSRET , p_OUT_NUMERO ); try { nOCC.Item.Cabecera.Numero = decimal.Parse(p_OUT_NUMERO.Value.ToString()); nOCC.Retorno.Codigo = decimal.Parse(p_OUT_CODRET.Value.ToString()); nOCC.Retorno.Glosa = p_OUT_GLSRET.Value.ToString(); if (nOCC.Retorno.Codigo == 0 && nOCC.Item.Cabecera.Numero > 0) { bool ErrorAltaDetalle = false; decimal CodigoHabitacionTemporal = 0; foreach (var item in nOCC.Item.ListaDetalle) { conex.SP_CREAR_DET_RESERVA (nOCC.Item.Cabecera.Numero , item.Alojamiento.FechaIngreso , item.Alojamiento.FechaEgreso , item.Alojamiento.RegistroDias , item.Alojamiento.Observaciones , item.Persona.Rut //Puede ponerse cualquier de los 2 ruts Comida o Alojamiento , item.Persona.Nombre , item.Persona.Apellido //, item.Alojamiento.CodigoCama , item.Alojamiento.Habitacion.Capacidad , CodigoHabitacionTemporal , item.Comida.FechaRecepcion , item.Comida.Observaciones , item.Comida.ServicioComida.Tipo //, item.Comida.CodigoPlato , p_OUT_CODRET , p_OUT_GLSRET , p_OUT_HAB_CODIGO ); // try { nOCC.Retorno.Codigo = decimal.Parse(p_OUT_CODRET.Value.ToString()); nOCC.Retorno.Glosa = p_OUT_GLSRET.Value.ToString(); CodigoHabitacionTemporal = decimal.Parse(p_OUT_HAB_CODIGO.Value.ToString()); } catch (Exception) { nOCC.Retorno.Codigo = 1021; nOCC.Retorno.Glosa = "Error alta detalle"; ErrorAltaDetalle = true; break; } } //Logica validacion Detalle if (ErrorAltaDetalle != true) { conex.SP_ACTUALIZAR_ENC_RESERVA (nOCC.Item.Cabecera.Numero , nOCC.Item.Cabecera.Monto , nOCC.Item.Cabecera.Observaciones , nOCC.Item.Cabecera.Ubicacion , nOCC.Item.Cabecera.Estado , p_OUT_CODRET , p_OUT_GLSRET ); try { nOCC.Retorno.Codigo = decimal.Parse(p_OUT_CODRET.Value.ToString()); nOCC.Retorno.Glosa = p_OUT_GLSRET.Value.ToString(); } catch (Exception) { nOCC.Retorno.Codigo = 1031; nOCC.Retorno.Glosa = "Error actualizacion Encabezado"; } } } } catch (Exception) { nOCC.Retorno.Codigo = 1011; nOCC.Retorno.Glosa = "Error creacion Encabezado"; } } else { nOCC.Retorno.Codigo = 100; nOCC.Retorno.Glosa = "Err expiro sesion o perfil invalido"; } return(nOCC); }