コード例 #1
0
        public async Task <IActionResult> EdicionDetalle([FromBody] McdetCargaForDosEdicionRequest request)
        {
            var McdetCargaForDosBLL = new McdetCargaForDosBLL(context, mapper);
            var response            = await McdetCargaForDosBLL.Edicion(request);

            return(new OkObjectResult(response));
        }
コード例 #2
0
        public async Task <McdetCargaForDosEdicionResponse> Edicion(McdetCargaForDosEdicionRequest request)
        {
            var McdetCargaForDosDAL = new McdetCargaForDosDAL(this.context, this.mapper);

            return(await McdetCargaForDosDAL.Edicion(request));
        }
コード例 #3
0
        public async Task <McdetCargaForDosEdicionResponse> Edicion(McdetCargaForDosEdicionRequest request)
        {
            try
            {
                int actualizadoCorrectamente = 0;
                var McdetCargaForDosEdicion  = await context.McdetCargaForDos.Where(x => x.INumCarga == request.NumCarga &&
                                                                                    x.INumDetCarga == request.CodigoDetalle).AsNoTracking().FirstOrDefaultAsync();

                if (McdetCargaForDosEdicion != null)
                {
                    McdetCargaForDosEdicion.VRuc             = request.Ruc;
                    McdetCargaForDosEdicion.VRazSocial       = request.RazonSocial;
                    McdetCargaForDosEdicion.VZonEspecifica   = request.ZonaEspecifica;
                    McdetCargaForDosEdicion.VPrioridad       = request.Prioridad;
                    McdetCargaForDosEdicion.VPerIntervencion = request.PermisoInt;

                    context.McdetCargaForDos.Update(McdetCargaForDosEdicion);
                    actualizadoCorrectamente = await context.SaveChangesAsync();
                }
                if (!string.IsNullOrEmpty(request.Trabajadores))
                {
                    //var pt = await context.McmaePt.Where(t => t.VNumPt == McdetCargaForDosEdicion.VNumPt).AsNoTracking().FirstOrDefaultAsync();

                    var trab = request.Trabajadores.Split(',');
                    var trabajadoresToDisable = await context.McmaeCargaTraForDos.Where(x => x.INumCarga == request.NumCarga &&
                                                                                        x.INumDetCarga == request.CodigoDetalle &&
                                                                                        !trab.Contains(x.ICodTrabjador.ToString()) &&
                                                                                        x.BEstRegistro == true).AsNoTracking().ToListAsync();

                    foreach (var item in trab)
                    {
                        var traForDos = await context.McmaeCargaTraForDos.Where(x => x.INumCarga == request.NumCarga &&
                                                                                x.INumDetCarga == request.CodigoDetalle &&
                                                                                x.ICodTrabjador == int.Parse(item)).AsNoTracking().FirstOrDefaultAsync();

                        if (traForDos == null)
                        {
                            McmaeCargaTraForDos tpt = new McmaeCargaTraForDos
                            {
                                INumCarga       = request.NumCarga,
                                INumDetCarga    = request.CodigoDetalle,
                                BEstRegistro    = true,
                                VCodUsuCreacion = request.Usuario,
                                SdFecCreacion   = DateTime.Now,
                                CNomTerCreacion = request.NombreTerminal,
                                ICodTrabjador   = int.Parse(item)
                            };

                            await context.McmaeCargaTraForDos.AddAsync(tpt);

                            await context.SaveChangesAsync();
                        }
                        else
                        {
                            traForDos.CNomTerModificacion = request.NombreTerminal;
                            traForDos.VCodUsuModificacion = request.Usuario;
                            traForDos.SdFecModificacion   = DateTime.Now;
                            traForDos.BEstRegistro        = true;

                            context.McmaeCargaTraForDos.Update(traForDos);
                            int r = await context.SaveChangesAsync();
                        }
                    }

                    if (trabajadoresToDisable != null)
                    {
                        foreach (var item in trabajadoresToDisable)
                        {
                            item.BEstRegistro = false;
                            context.McmaeCargaTraForDos.Update(item);
                            int r = await context.SaveChangesAsync();
                        }
                    }
                }
                if (actualizadoCorrectamente > 0)
                {
                    return(new McdetCargaForDosEdicionResponse
                    {
                        Exito = true,
                        Mensaje = "Detalle de carga fue actualizado exitosamente."
                    });
                }
                else
                {
                    return(new McdetCargaForDosEdicionResponse
                    {
                        Exito = false,
                        Mensaje = "Detalle de carga no fue actualizado correctamente."
                    });
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
                throw new Exception(ex.Message);
            }
        }