public static string ApruebaRechazaSolicitud(Pet.Entity.Solicitud solicitud)
        {
            using (var db = new EFData.PET_DBEntities())
            {
                if (solicitud.CodigoSolicitud != 0)
                {
                    db.Database.ExecuteSqlCommand("aprueba_rechaza_solicitud @numero_solicitud, @codigo_estado",
                                                  new SqlParameter("numero_solicitud", solicitud.CodigoSolicitud),
                                                  new SqlParameter("codigo_estado", solicitud.Estado)
                                                  );
                    //aprueba_detalle_solicitud

                    if (solicitud.Estado == 3)
                    {
                        foreach (Pet.Entity.GPCDetalleDeSolicitud item in solicitud.GPC_DetalleDeSolicitud)
                        {
                            db.Database.ExecuteSqlCommand("aprueba_detalle_solicitud @numero_solicitud, @item, @cantidad_aprobada",
                                                          new SqlParameter("numero_solicitud", solicitud.CodigoSolicitud),
                                                          new SqlParameter("item", item.item),
                                                          new SqlParameter("cantidad_aprobada", item.cantidad_aprobada)
                                                          );
                        }
                    }
                }
            }

            return("OK");
        }
 public static void AddDetalleSolicitud(Pet.Entity.Solicitud solicitud)
 {
     using (var db = new EFData.PET_DBEntities())
     {
         //Add detalle solcitud
         foreach (Pet.Entity.GPCDetalleDeSolicitud item in solicitud.GPC_DetalleDeSolicitud)
         {
             db.Database.ExecuteSqlCommand("RegistraDetalleSolicitud @item, @cantidad_solicitada, @codigo_recurso, @numero_solicitud",
                                           new SqlParameter("item", item.item),
                                           new SqlParameter("cantidad_solicitada", item.cantidad_solicitada),
                                           new SqlParameter("codigo_recurso", item.codigo_recurso),
                                           new SqlParameter("numero_solicitud", solicitud.CodigoSolicitud)
                                           );
         }
     }
 }
        public static string EliminaSolicitud(Pet.Entity.Solicitud solicitud)
        {
            using (var db = new EFData.PET_DBEntities())
            {
                if (solicitud.CodigoSolicitud != 0)
                {
                    //var _solicitud = db.GPC_Solicitud.SingleOrDefault(x => x.numero_solicitud == solicitud.numero_solicitud);
                    //EliminaDetalleSolicitud(solicitud.numero_solicitud);
                    //db.GPC_Solicitud.Attach(_solicitud);
                    //db.GPC_Solicitud.Remove(_solicitud);
                    //db.SaveChanges();

                    db.Database.ExecuteSqlCommand("EliminaSolicitud @numero_solicitud",
                                                  new SqlParameter("numero_solicitud", solicitud.CodigoSolicitud)
                                                  );
                }
            }

            return("OK");
        }
        public static string GuardaSolicitud(Pet.Entity.Solicitud solicitud)
        {
            try
            {
                using (var db = new EFData.PET_DBEntities())
                {
                    if (solicitud.CodigoSolicitud == 0)
                    {
                        //SR000001
                        //var nroSolicitud = db.GPC_Solicitud
                        //               .Select(t => t.numero_solicitud)
                        //               .DefaultIfEmpty(-1)
                        //               .Max();
                        //if (nroSolicitud == -1)
                        //{
                        //    nroSolicitud = 1;
                        //}
                        //else
                        //{
                        //    nroSolicitud += 1;
                        //}
                        //string nroSol = string.Format("{0:000000}", nroSolicitud);
                        //string codigoGenerado = "SR" + nroSol;
                        //solicitud.codigo_solicitud = codigoGenerado;
                        //solicitud.numero_solicitud = nroSolicitud;

                        var _nroSolicitud = new SqlParameter("numero_solicitud", SqlDbType.Int)
                        {
                            Direction = System.Data.ParameterDirection.Output
                        };

                        //SqlParameter _fecha_hora = new SqlParameter()
                        //{
                        //    ParameterName = "fecha_hora",
                        //    DbType = DbType.DateTime,
                        //    Value = solicitud.fecha_hora
                        //};


                        //SqlParameter _codigo_estado = new SqlParameter()
                        //{
                        //    ParameterName = "codigo_estado",
                        //    DbType = DbType.Int32,
                        //    Value = solicitud.codigo_estado
                        //};

                        var          _fecha_hora       = new SqlParameter("fecha_hora", solicitud.FechaHoraCreacion);
                        SqlParameter _codigo_empleado  = new SqlParameter("codigo_empleado", solicitud.CodigoEmpleado1);
                        SqlParameter _codigo_prioridad = new SqlParameter("codigo_prioridad", solicitud.CodigoEmpleado1);
                        SqlParameter _codigo_estado    = new SqlParameter("codigo_estado", solicitud.CodigoEmpleado1);

                        db.Database.ExecuteSqlCommand("RegistraSolicitud @fecha_hora, @codigo_empleado, @codigo_prioridad, @codigo_estado, @numero_solicitud out",
                                                      _fecha_hora,
                                                      _codigo_empleado,
                                                      _codigo_prioridad,
                                                      _codigo_estado,
                                                      _nroSolicitud
                                                      );

                        solicitud.CodigoSolicitud = (int)_nroSolicitud.Value;
                        AddDetalleSolicitud(solicitud);

                        //db.Set<Pet.Entity.GPCSolicitud>().Add(solicitud);
                        //db.SaveChanges();
                    }
                    else
                    {
                        EliminaDetalleSolicitud(solicitud.CodigoSolicitud);

                        db.Database.ExecuteSqlCommand("ActualizaSolicitud @numero_solicitud, @fecha_hora, @codigo_empleado, @codigo_prioridad, @codigo_estado",
                                                      new SqlParameter("numero_solicitud", solicitud.CodigoSolicitud),
                                                      new SqlParameter("fecha_hora", solicitud.CodigoSolicitud),
                                                      new SqlParameter("codigo_empleado", solicitud.CodigoSolicitud),
                                                      new SqlParameter("codigo_prioridad", solicitud.CodigoSolicitud),
                                                      new SqlParameter("codigo_estado", solicitud.CodigoSolicitud)
                                                      );

                        AddDetalleSolicitud(solicitud);
                    }
                }
            }
            catch (DbUpdateException ex)
            {
                UpdateException updateException = (UpdateException)ex.InnerException;
                SqlException    sqlException    = (SqlException)updateException.InnerException;
                StringBuilder   dd = new StringBuilder();
                foreach (SqlError error in sqlException.Errors)
                {
                    dd.Append(error);
                }
                string ddd = dd.ToString();
                throw;
            }

            return("OK");
        }