Example #1
0
 public void InsertarDetalleOT(DetalleOrdenTrabajo ot)
 {
     Comando.Connection = Conexion;
     Conectar();
     Comando.CommandText = "DetalleOTCreate";
     Comando.CommandType = CommandType.StoredProcedure;
     Comando.Parameters.Clear();
     Comando.Parameters.AddWithValue("@idDetalleOT", ot.IdDetalleOT);
     Comando.Parameters.AddWithValue("@idProducto", ot.IdProducto);
     Comando.Parameters.AddWithValue("@cantidad", ot.Cantidad);
     Comando.ExecuteNonQuery();
     Desconectar();
 }
Example #2
0
        public DataTable ListarDetallePedido(DetalleOrdenTrabajo ot)
        {
            DataTable Tabla = new DataTable();

            Comando.Connection = Conexion;
            Conexion.Open();
            Comando.CommandText = "ListarDetalleOT";
            Comando.Parameters.Clear();
            Comando.Parameters.AddWithValue("@idOT", ot.IdDetalleOT);
            Comando.CommandType = CommandType.StoredProcedure;
            LeerFilas           = Comando.ExecuteReader();
            Tabla.Load(LeerFilas);
            LeerFilas.Close();
            Conexion.Close();
            return(Tabla);
        }
        public HttpResponseMessage Detail(IdModelPlanTrabajo Id)
        {
            List <PlanTrabajo>         trabajo = new List <PlanTrabajo>();
            List <DetalleOrdenTrabajo> guia    = new List <DetalleOrdenTrabajo>();
            DetalleOrdenTrabajo        guia1   = new DetalleOrdenTrabajo();

            try
            {
                if (Id != null)
                {
                    trabajo = db.PlanTrabajo.Where(x => x.IdOrdenTrabajo == Id.IdOrdenTrabajo).ToList();
                    foreach (PlanTrabajo details in trabajo)
                    {
                        guia1 = db.DetalleOrdenTrabajo.Where(x => x.IdOrdenTrabajo == details.IdOrdenTrabajo).FirstOrDefault();
                        guia.Add(guia1);
                    }
                }
                if (guia != null)
                {
                    return new HttpResponseMessage(HttpStatusCode.OK)
                           {
                               Content = new StringContent(JsonConvert.SerializeObject(guia), System.Text.Encoding.UTF8, "application/json")
                           }
                }
                ;
                else
                {
                    return new HttpResponseMessage(System.Net.HttpStatusCode.NoContent)
                           {
                               Content = null
                           }
                };
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse <string>(HttpStatusCode.InternalServerError, ex.Message + Environment.NewLine + "PlanTrabajo"));
            }
        }
Example #4
0
        public async Task <HttpResponseMessage> CreateActicities(List <ReqNewActivity> activitiesReq)
        {
            try
            {
                foreach (var newActivity in activitiesReq)
                {
                    switch (newActivity.Origen)
                    {
                    case 1:
                        var detalleGuiaServicio = await db.DetalleGuiaServicio.FindAsync(newActivity.IdActividad).ConfigureAwait(false);

                        int count = 0;
                        #region Guia de servicio
                        foreach (var actSer in await db.DetalleGuiaServiciosMaterial.Where(x => x.IdGuiaServicio == detalleGuiaServicio.IdGuiaServicio && x.IdDetalleGuiaServicio == detalleGuiaServicio.IdDetalleGuiaServicio).ToListAsync().ConfigureAwait(false))
                        {
                            count++;
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo  = newActivity.IdOrdenTrabajo,
                                IdGuiaServicio  = detalleGuiaServicio.IdGuiaServicio,
                                TipoServicio    = "GUIA SERVICIO",
                                Actividad       = actSer.DetalleGuiaServicio.Actividad,
                                Tiempo          = 1,
                                IdMaterial      = actSer.IdMaterial,
                                Descripcion     = actSer.Material.Nombre,
                                Costo           = actSer.Material.CostoUnidad,
                                IdTipoActividad = 1
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        foreach (var actSer in await db.DetalleGuiaServiciosRefaccion.Where(x => x.IdGuiaServicio == detalleGuiaServicio.IdGuiaServicio && x.IdDetalleGuiaServicio == detalleGuiaServicio.IdDetalleGuiaServicio).ToListAsync().ConfigureAwait(false))
                        {
                            count++;
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo  = newActivity.IdOrdenTrabajo,
                                IdGuiaServicio  = detalleGuiaServicio.IdGuiaServicio,
                                TipoServicio    = "GUIA SERVICIO",
                                Actividad       = actSer.DetalleGuiaServicio.Actividad,
                                Tiempo          = 1,
                                IdRefaccion     = actSer.IdRefaccion,
                                Descripcion     = actSer.Refaccion.Nombre,
                                Costo           = actSer.Refaccion.CostoUnidad,
                                IdTipoActividad = 1
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        foreach (var actSer in await db.DetalleGuiaServiciosPuesto.Where(x => x.IdGuiaServicio == detalleGuiaServicio.IdGuiaServicio && x.IdDetalleGuiaServicio == detalleGuiaServicio.IdDetalleGuiaServicio).ToListAsync().ConfigureAwait(false))
                        {
                            count++;
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo  = newActivity.IdOrdenTrabajo,
                                IdGuiaServicio  = detalleGuiaServicio.IdGuiaServicio,
                                TipoServicio    = "GUIA SERVICIO",
                                Actividad       = actSer.DetalleGuiaServicio.Actividad,
                                Tiempo          = 1,
                                IdPuesto        = actSer.IdPuesto,
                                Descripcion     = actSer.Puesto.NombrePuesto,
                                Costo           = actSer.Puesto.CostoHora.Value,
                                IdTipoActividad = 1
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        if (count < 1)
                        {
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo  = newActivity.IdOrdenTrabajo,
                                IdGuiaServicio  = detalleGuiaServicio.IdGuiaServicio,
                                TipoServicio    = "GUIA SERVICIO",
                                Actividad       = detalleGuiaServicio.Actividad,
                                Tiempo          = 1,
                                Costo           = detalleGuiaServicio.Tiempo,
                                IdTipoActividad = 1
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        await db.SaveChangesAsync().ConfigureAwait(false);

                        #endregion

                        break;

                    case 2:
                        var detalleBacklog = await db.BackLog.FindAsync(newActivity.IdActividad).ConfigureAwait(false);

                        int count2 = 0;
                        #region Backlog
                        foreach (var actSer in await db.BackLogMaterial.Where(x => x.BackLog.Ejecutada == false && x.IdBackLog == detalleBacklog.IdBackLog).ToListAsync().ConfigureAwait(false))
                        {
                            count2++;
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo  = newActivity.IdOrdenTrabajo,
                                IdBackLog       = detalleBacklog.IdBackLog,
                                TipoServicio    = "BACKLOG",
                                Actividad       = actSer.BackLog.Actividad,
                                Tiempo          = actSer.BackLog.Tiempo,
                                IdMaterial      = actSer.IdMaterial,
                                Descripcion     = actSer.Material.Nombre,
                                Costo           = actSer.Material.CostoUnidad,
                                IdTipoActividad = 2
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        foreach (var actSer in await db.BackLogRefaccion.Where(x => x.BackLog.Ejecutada == false && x.IdBackLog == detalleBacklog.IdBackLog).ToListAsync().ConfigureAwait(false))
                        {
                            count2++;
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo  = newActivity.IdOrdenTrabajo,
                                IdBackLog       = detalleBacklog.IdBackLog,
                                TipoServicio    = "BACKLOG",
                                Actividad       = actSer.BackLog.Actividad,
                                Tiempo          = actSer.BackLog.Tiempo,
                                IdRefaccion     = actSer.IdReFaccion,
                                Descripcion     = actSer.Refaccion.Nombre,
                                Costo           = actSer.Refaccion.CostoUnidad,
                                IdTipoActividad = 2
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        foreach (var actSer in await db.BackLogPuesto.Where(x => x.BackLog.Ejecutada == false && x.IdBackLog == detalleBacklog.IdBackLog).ToListAsync().ConfigureAwait(false))
                        {
                            count2++;
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo  = newActivity.IdOrdenTrabajo,
                                IdBackLog       = detalleBacklog.IdBackLog,
                                TipoServicio    = "BACKLOG",
                                Actividad       = actSer.BackLog.Actividad,
                                Tiempo          = actSer.BackLog.Tiempo,
                                IdPuesto        = actSer.IdPuesto,
                                Descripcion     = actSer.Puesto.NombrePuesto,
                                Costo           = actSer.Puesto.CostoHora.Value,
                                IdTipoActividad = 2
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        if (count2 < 1)
                        {
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo  = newActivity.IdOrdenTrabajo,
                                IdBackLog       = detalleBacklog.IdBackLog,
                                TipoServicio    = "BACKLOG",
                                Actividad       = detalleBacklog.Actividad,
                                Tiempo          = detalleBacklog.Tiempo,
                                Costo           = detalleBacklog.Tiempo,
                                IdTipoActividad = 2
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        await db.SaveChangesAsync().ConfigureAwait(false);

                        #endregion

                        break;

                    case 3:
                        var mttoPred = await db.ActividadMantenimientoPredictivo.FindAsync(newActivity.IdActividad).ConfigureAwait(false);

                        int count3 = 0;
                        #region Mtto predictivo
                        foreach (var actSer in await db.MantenimientoPredictivoMaterial.Where(x => x.ActividadMantenimientoPredictivo.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo == mttoPred.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo && x.ActividadMantenimientoPredictivo.Ejecutada == false).ToListAsync().ConfigureAwait(false))
                        {
                            count3++;
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo            = newActivity.IdOrdenTrabajo,
                                IdMantenimientoPredictivo = mttoPred.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo,
                                TipoServicio    = "MANTENIMIENTO PREDICTIVO",
                                Actividad       = actSer.ActividadMantenimientoPredictivo.Descripcion,
                                Tiempo          = actSer.ActividadMantenimientoPredictivo.Tiempo,
                                IdMaterial      = actSer.IdMaterial,
                                Descripcion     = actSer.Material.Nombre,
                                Costo           = actSer.Material.CostoUnidad,
                                IdTipoActividad = 3
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        foreach (var actSer in await db.MantenimientoPredictivoRefaccion.Where(x => x.ActividadMantenimientoPredictivo.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo == mttoPred.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo && x.ActividadMantenimientoPredictivo.Ejecutada == false).ToListAsync().ConfigureAwait(false))
                        {
                            count3++;
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo            = newActivity.IdOrdenTrabajo,
                                IdMantenimientoPredictivo = mttoPred.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo,
                                TipoServicio    = "MANTENIMIENTO PREDICTIVO",
                                Actividad       = actSer.ActividadMantenimientoPredictivo.Descripcion,
                                Tiempo          = actSer.ActividadMantenimientoPredictivo.Tiempo,
                                IdRefaccion     = actSer.IdRefaccion,
                                Descripcion     = actSer.Refaccion.Nombre,
                                Costo           = actSer.Refaccion.CostoUnidad,
                                IdTipoActividad = 3
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        foreach (var actSer in await db.MantenimientoPredictivoPuesto.Where(x => x.ActividadMantenimientoPredictivo.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo == mttoPred.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo && x.ActividadMantenimientoPredictivo.Ejecutada == false).ToListAsync().ConfigureAwait(false))
                        {
                            count3++;
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo            = newActivity.IdOrdenTrabajo,
                                IdMantenimientoPredictivo = mttoPred.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo,
                                TipoServicio    = "MANTENIMIENTO PREDICTIVO",
                                Actividad       = actSer.ActividadMantenimientoPredictivo.Descripcion,
                                Tiempo          = actSer.ActividadMantenimientoPredictivo.Tiempo,
                                IdPuesto        = actSer.IdPuesto,
                                Descripcion     = actSer.Puesto.NombrePuesto,
                                Costo           = actSer.Puesto.CostoHora.Value,
                                IdTipoActividad = 3
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        if (count3 < 1)
                        {
                            var newMtto = new DetalleOrdenTrabajo()
                            {
                                IdOrdenTrabajo  = newActivity.IdOrdenTrabajo,
                                IdBackLog       = mttoPred.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo,
                                TipoServicio    = "MANTENIMIENTO PREDICTIVO",
                                Actividad       = mttoPred.Descripcion,
                                Tiempo          = mttoPred.Tiempo,
                                Costo           = mttoPred.Tiempo,
                                IdTipoActividad = 3
                            };

                            db.DetalleOrdenTrabajo.Add(newMtto);
                        }

                        await db.SaveChangesAsync().ConfigureAwait(false);

                        #endregion

                        break;
                    }
                }

                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content = new StringContent(ex.Message)
                });
            }
        }
Example #5
0
        public async Task <HttpResponseMessage> AutomiticGeneration(UnitInfo unit)
        {
            try
            {
                var currentUnit = await db.Unidad.FindAsync(unit.IdUnidad).ConfigureAwait(false);

                var currentServiceGuide = await db.GuiaServicio.FindAsync(unit.IdGuiaServicio).ConfigureAwait(false);

                //var unitubic = await db.UnidadUbicacion.FindAsync(unit.IdUnidad).ConfigureAwait(false);
                var unitarea = await db.UnidadArea.FindAsync(unit.IdUnidad).ConfigureAwait(false);

                var unitproce = await db.UnidadProceso.FindAsync(unit.IdUnidad).ConfigureAwait(false);

                var unitsubp = await db.UnidadSubProceso.FindAsync(unit.IdUnidad).ConfigureAwait(false);



                var newWorkOrder = new OrdenTrabajo();

                newWorkOrder.Planeada        = true;
                newWorkOrder.Activo_Inactivo = true;
                newWorkOrder.Ejecutada       = false;
                newWorkOrder.FechaEjecuccion = DateTime.Now;
                newWorkOrder.FechaEjecucion  = DateTime.Now;
                newWorkOrder.FechaGeneracion = DateTime.Now;
                if (unitarea != null)
                {
                    newWorkOrder.IdArea = unitarea.IdArea;
                }
                if (unitproce != null)
                {
                    var proce = await db.Proceso.FindAsync(unitproce.IdProceso).ConfigureAwait(false);

                    newWorkOrder.IdArea = proce.IdArea;
                }
                if (unitsubp != null)
                {
                    var subp = await db.SubProceso.FindAsync(unitsubp.IdSubProceso).ConfigureAwait(false);

                    var proce = await db.Proceso.FindAsync(subp.IdProceso).ConfigureAwait(false);

                    newWorkOrder.IdArea = proce.IdArea;
                }
                newWorkOrder.IdUnidad = currentUnit.IdUnidad;
                newWorkOrder.IdEstatusOrdenTrabajo = 1;


                //Guardar Orden de trabajo
                db.OrdenTrabajo.Add(newWorkOrder);
                var result = await db.SaveChangesAsync().ConfigureAwait(false);

                foreach (var detalleGuia in await db.DetalleGuiaServicio.Where(x => x.IdGuiaServicio == currentServiceGuide.IdGuiaServicio).ToListAsync().ConfigureAwait(false))
                {
                    int count = 0;
                    #region Guia de servicio
                    foreach (var actSer in await db.DetalleGuiaServiciosMaterial.Where(x => x.IdGuiaServicio == currentServiceGuide.IdGuiaServicio && x.IdDetalleGuiaServicio == detalleGuia.IdDetalleGuiaServicio).ToListAsync().ConfigureAwait(false))
                    {
                        count++;
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = actSer.DetalleGuiaServicio.Actividad,
                            Tiempo          = 1,
                            IdMaterial      = actSer.IdMaterial,
                            Descripcion     = actSer.Material.Nombre,
                            Costo           = actSer.Material.CostoUnidad,
                            IdTipoActividad = 2
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    foreach (var actSer in await db.DetalleGuiaServiciosRefaccion.Where(x => x.IdGuiaServicio == currentServiceGuide.IdGuiaServicio && x.IdDetalleGuiaServicio == detalleGuia.IdDetalleGuiaServicio).ToListAsync().ConfigureAwait(false))
                    {
                        count++;
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = actSer.DetalleGuiaServicio.Actividad,
                            Tiempo          = 1,
                            IdRefaccion     = actSer.IdRefaccion,
                            Descripcion     = actSer.Refaccion.Nombre,
                            Costo           = actSer.Refaccion.CostoUnidad,
                            IdTipoActividad = 1
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    foreach (var actSer in await db.DetalleGuiaServiciosPuesto.Where(x => x.IdGuiaServicio == currentServiceGuide.IdGuiaServicio && x.IdDetalleGuiaServicio == detalleGuia.IdDetalleGuiaServicio).ToListAsync().ConfigureAwait(false))
                    {
                        count++;
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = actSer.DetalleGuiaServicio.Actividad,
                            Tiempo          = 1,
                            IdPuesto        = actSer.IdPuesto,
                            Descripcion     = actSer.Puesto.NombrePuesto,
                            Costo           = actSer.Puesto.CostoHora.Value,
                            IdTipoActividad = 3
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    if (count < 1)
                    {
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = detalleGuia.Actividad,
                            Tiempo          = 1,
                            Costo           = detalleGuia.Tiempo,
                            IdTipoActividad = 1
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    await db.SaveChangesAsync().ConfigureAwait(false);

                    #endregion
                }

                foreach (var backLog in await db.BackLog.Where(x => x.IdUnidad == unit.IdUnidad && x.Ejecutada.Value == false).ToListAsync().ConfigureAwait(false))
                {
                    int count = 0;
                    #region Backlog
                    foreach (var actSer in await db.BackLogMaterial.Where(x => x.BackLog.IdUnidad == unit.IdUnidad && x.BackLog.Ejecutada == false && x.IdBackLog == backLog.IdBackLog).ToListAsync().ConfigureAwait(false))
                    {
                        count++;
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = actSer.BackLog.Actividad,
                            Tiempo          = actSer.BackLog.Tiempo,
                            IdMaterial      = actSer.IdMaterial,
                            Descripcion     = actSer.Material.Nombre,
                            Costo           = actSer.Material.CostoUnidad,
                            IdTipoActividad = 2
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    foreach (var actSer in await db.BackLogRefaccion.Where(x => x.BackLog.IdUnidad == unit.IdUnidad && x.BackLog.Ejecutada == false && x.IdBackLog == backLog.IdBackLog).ToListAsync().ConfigureAwait(false))
                    {
                        count++;
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = actSer.BackLog.Actividad,
                            Tiempo          = actSer.BackLog.Tiempo,
                            IdRefaccion     = actSer.IdReFaccion,
                            Descripcion     = actSer.Refaccion.Nombre,
                            Costo           = actSer.Refaccion.CostoUnidad,
                            IdTipoActividad = 1
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    foreach (var actSer in await db.BackLogPuesto.Where(x => x.BackLog.IdUnidad == unit.IdUnidad && x.BackLog.Ejecutada == false && x.IdBackLog == backLog.IdBackLog).ToListAsync().ConfigureAwait(false))
                    {
                        count++;
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = actSer.BackLog.Actividad,
                            Tiempo          = actSer.BackLog.Tiempo,
                            IdPuesto        = actSer.IdPuesto,
                            Descripcion     = actSer.Puesto.NombrePuesto,
                            Costo           = actSer.Puesto.CostoHora.Value,
                            IdTipoActividad = 3
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    if (count < 1)
                    {
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = backLog.Actividad,
                            Tiempo          = backLog.Tiempo,
                            Costo           = backLog.Tiempo,
                            IdTipoActividad = 1
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    await db.SaveChangesAsync().ConfigureAwait(false);

                    #endregion
                }

                foreach (var mttoPred in await db.MantenimientoPredictivo.Where(x => x.IdUnidad == unit.IdUnidad).ToListAsync().ConfigureAwait(false))
                {
                    int count = 0;
                    #region Mtto predictivo
                    foreach (var actSer in await db.MantenimientoPredictivoMaterial.Where(x => x.ActividadMantenimientoPredictivo.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo == mttoPred.IdMantenimientoPredictivo && x.ActividadMantenimientoPredictivo.Ejecutada == false).ToListAsync().ConfigureAwait(false))
                    {
                        count++;
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = actSer.ActividadMantenimientoPredictivo.Descripcion,
                            Tiempo          = actSer.ActividadMantenimientoPredictivo.Tiempo,
                            IdMaterial      = actSer.IdMaterial,
                            Descripcion     = actSer.Material.Nombre,
                            Costo           = actSer.Material.CostoUnidad,
                            IdTipoActividad = 2
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    foreach (var actSer in await db.MantenimientoPredictivoRefaccion.Where(x => x.ActividadMantenimientoPredictivo.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo == mttoPred.IdMantenimientoPredictivo && x.ActividadMantenimientoPredictivo.Ejecutada == false).ToListAsync().ConfigureAwait(false))
                    {
                        count++;
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = actSer.ActividadMantenimientoPredictivo.Descripcion,
                            Tiempo          = actSer.ActividadMantenimientoPredictivo.Tiempo,
                            IdRefaccion     = actSer.IdRefaccion,
                            Descripcion     = actSer.Refaccion.Nombre,
                            Costo           = actSer.Refaccion.CostoUnidad,
                            IdTipoActividad = 1
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    foreach (var actSer in await db.MantenimientoPredictivoPuesto.Where(x => x.ActividadMantenimientoPredictivo.DetalleMantenimientoPredictivo.IdMantenimientoPredictivo == mttoPred.IdMantenimientoPredictivo && x.ActividadMantenimientoPredictivo.Ejecutada == false).ToListAsync().ConfigureAwait(false))
                    {
                        count++;
                        var newMtto = new DetalleOrdenTrabajo()
                        {
                            IdOrdenTrabajo  = newWorkOrder.IdOrdenTrabajo,
                            IdGuiaServicio  = currentServiceGuide.IdGuiaServicio,
                            TipoServicio    = currentServiceGuide.Descripcion,
                            Actividad       = actSer.ActividadMantenimientoPredictivo.Descripcion,
                            Tiempo          = actSer.ActividadMantenimientoPredictivo.Tiempo,
                            IdPuesto        = actSer.IdPuesto,
                            Descripcion     = actSer.Puesto.NombrePuesto,
                            Costo           = actSer.Puesto.CostoHora.Value,
                            IdTipoActividad = 3
                        };

                        db.DetalleOrdenTrabajo.Add(newMtto);
                    }

                    await db.SaveChangesAsync().ConfigureAwait(false);

                    #endregion
                }

                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content = new StringContent(ex.Message)
                });
            }
        }
Example #6
0
        private void btnInsertar_Click(object sender, EventArgs e)
        {
            string nombreColumna = "";

            if (nombreTaller == "Taller 1")
            {
                nombreColumna = "taller1";
            }
            else if (nombreTaller == "Taller 2")
            {
                nombreColumna = "taller2";
            }
            else if (nombreTaller == "Taller 3")
            {
                nombreColumna = "taller3";
            }
            else if (nombreTaller == "Taller 4")
            {
                nombreColumna = "taller4";
            }
            else if (nombreTaller == "Almacen")
            {
                nombreColumna = "almacen";
            }

            if (operacion == "insertar")
            {
                fechaEnvio = dateHoy.Value;
                ultimoId   = metDetOT.UltimoIdDetallePedido();
                int idDetalleOT = ultimoId;

                foreach (DataGridViewRow row in gridOT.Rows)
                {
                    idProducto = Convert.ToInt32(row.Cells[0].Value);
                    int cantidad = Convert.ToInt32(row.Cells[2].Value);
                    DetalleOrdenTrabajo detalle = new DetalleOrdenTrabajo(idDetalleOT, idProducto, cantidad);
                    metDetOT.InsertarDetalleOT(detalle);
                }

                if (checkRetirado.Checked == false)
                {
                    fechaRetiro = null;
                }
                else
                {
                    fechaRetiro = dtFechaRetirado.Value;
                }

                if (gridOT.RowCount == 0)
                {
                    MessageBox.Show("Debes ingresar algun valor");
                }
                else
                {
                    OrdenDeTrabajos ot = new OrdenDeTrabajos(idDetalleOT, nombreTaller, fechaEnvio, fechaRetiro, activo, 1);
                    metTO.InsertarOT(ot);
                    MessageBox.Show("Insertado con exito");
                    limpiarCamposPedido();
                    this.Close();
                }
            }

            if (operacion == "editar")
            {
                OrdenDeTrabajos poAeditar = metTO.CrearOT(idOrdenTrabajo);
                OrdenDeTrabajos otAborrar = metTO.CrearOT(idOrdenTrabajo);

                fechaRetiro = poAeditar.FechaRetiro;
                fechaEnvio  = poAeditar.FechaEnvio;



                //elimino el detallePedido para luego insertar uno nuevo, debo investigar para editarlo y no tener que borrarlo
                metDetOT.EliminarDetalleOt(otAborrar.IdDetalleOT); //borro el detalle anterior para agregar uno nuevo

                ultimoId = metDetOT.UltimoIdDetallePedido() + 1;   //empiezo a crear un nuevo detalle

                foreach (DataGridViewRow row in gridOT.Rows)
                {
                    int idDetallePedido         = ultimoId;
                    int idProducto              = Convert.ToInt32(row.Cells[0].Value);
                    int cantidad                = Convert.ToInt32(row.Cells[2].Value);
                    DetalleOrdenTrabajo detalle = new DetalleOrdenTrabajo(idDetallePedido, idProducto, cantidad);
                    metDetOT.InsertarDetalleOT(detalle);
                }

                if (checkRetirado.Checked == false)
                {
                    fechaRetiro = null;
                    estado      = 1;
                }
                else
                {
                    fechaRetiro = dtFechaRetirado.Value;
                    estado      = 0;
                }


                if (gridOT.RowCount == 0)
                {
                    MessageBox.Show("Debes ingresar algun valor");
                }
                else
                {
                    poAeditar.IdOT         = idOrdenTrabajo;
                    poAeditar.NombreTaller = nombreTaller;
                    poAeditar.Estado       = estado;
                    poAeditar.IdDetalleOT  = ultimoId;
                    poAeditar.FechaEnvio   = fechaEnvio;
                    poAeditar.FechaRetiro  = fechaRetiro;
                    poAeditar.Activo       = activo;
                    metTO.EditarOT(poAeditar);
                    MessageBox.Show("Editado con exito");
                    limpiarCamposPedido();
                    this.Close();
                }
            }
        }