/// <summary> /// Método encargado de Guardar la Requisición /// </summary> /// <returns></returns> public RetornoOperacion GuardaRequisicion() { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Obteniendo Fecha DateTime fecha_entrega_req = DateTime.MinValue; DateTime.TryParse(txtFechaEntReq.Text, out fecha_entrega_req); //Inicializando Bloque Transaccional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Validando que Exista la Requisición if (this._id_requisicion > 0) { //Instanciando Requisición using (Requisicion req = new Requisicion(this._id_requisicion)) { //Validando que Exista la Requisición if (req.id_requisicion > 0) { //Editando Requisición result = req.EditaRequisicion(req.no_requisicion, ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor, this._id_servicio, (Requisicion.Estatus)Convert.ToByte(ddlEstatus.SelectedValue), txtReferencia.Text, Convert.ToByte(ddlTipo.SelectedValue), Convert.ToInt32(TSDK.Base.Cadena.RegresaCadenaSeparada(txtAlmacen.Text, "ID:", 1, "0")), req.id_usuario_solicitante, req.fecha_solitud, fecha_entrega_req, req.fecha_entrega, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } else { //Insertando la Requisición result = Requisicion.InsertaRequisicion(0, ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor, this._id_servicio, Convert.ToByte(ddlEstatus.SelectedValue), txtReferencia.Text, Convert.ToByte(ddlTipo.SelectedValue), Convert.ToInt32(TSDK.Base.Cadena.RegresaCadenaSeparada(txtAlmacen.Text, "ID:", 1, "0")), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario, TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro(), fecha_entrega_req, DateTime.MinValue, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Obteniendo Requisición int idRequisicion = result.IdRegistro; //Validando que Existan Orden y Actividad if (this._id_orden_actividad > 0 && this._id_orden > 0) { //Insertando Requisición de Actividad de la Orden de Trabajo result = OrdenTrabajoActividadRequisicion.InsertaOrdenActividadRequisicion(this._id_orden, this._id_orden_actividad, idRequisicion, TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro(), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Instanciando Requisición result = new RetornoOperacion(idRequisicion); } } //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } } //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Asignando Valores this._id_requisicion = result.IdRegistro; //Inicializando Control inicializaControlUsuario(); } //Mostrando Mensaje de Operación //ScriptServer.MuestraNotificacion(this, result, ScriptServer.PosicionNotificacion.AbajoDerecha); //Devolviendo Resultado Obtenido return(result); }