public int ActualizarLote(ActualizarLoteRequestDTO request) { int affected = _ILoteRepository.Actualizar(request.LoteId, DateTime.Now, request.Usuario, request.AlmacenId, request.Cantidad, request.TotalKilosNetosPesado, request.TotalKilosBrutosPesado, request.ContratoId); if (request.NotasIngresoAlmacenId != null && request.NotasIngresoAlmacenId.Count > 0) { List <ListaIdsAccion> notasIngresoAlmacenIdEliminar = request.NotasIngresoAlmacenId.Where(a => a.Accion == "E").ToList(); if (notasIngresoAlmacenIdEliminar != null && notasIngresoAlmacenIdEliminar.Count > 0) { List <TablaIdsTipo> loteDetalleIdEliminar = new List <TablaIdsTipo>(); List <TablaIdsTipo> notasIntegresoIdActualizar = new List <TablaIdsTipo>(); foreach (ListaIdsAccion id in notasIngresoAlmacenIdEliminar) { TablaIdsTipo tablaIdsTipo = new TablaIdsTipo(); tablaIdsTipo.Id = id.Id; loteDetalleIdEliminar.Add(tablaIdsTipo); LoteDetalle loteDetalle = _ILoteRepository.ConsultarLoteDetallePorId(id.Id); if (loteDetalle != null) { TablaIdsTipo tablaNotasIntegresoIdsTipo = new TablaIdsTipo(); tablaNotasIntegresoIdsTipo.Id = loteDetalle.NotaIngresoAlmacenId; notasIntegresoIdActualizar.Add(tablaNotasIntegresoIdsTipo); } } _ILoteRepository.EliminarLoteDetalle(loteDetalleIdEliminar); _INotaIngresoAlmacenRepository.ActualizarEstadoPorIds(notasIntegresoIdActualizar, DateTime.Now, request.Usuario, NotaIngresoAlmacenEstados.Ingresado); } List <ListaIdsAccion> notasIngresoAlmacenIdNuevo = request.NotasIngresoAlmacenId.Where(a => a.Accion == "N").ToList(); if (notasIngresoAlmacenIdNuevo != null && notasIngresoAlmacenIdNuevo.Count > 0) { List <TablaIdsTipo> notasIngresoAlmacenIdConsulta = new List <TablaIdsTipo>(); foreach (ListaIdsAccion id in notasIngresoAlmacenIdNuevo) { TablaIdsTipo tablaIdsTipo = new TablaIdsTipo(); tablaIdsTipo.Id = id.Id; notasIngresoAlmacenIdConsulta.Add(tablaIdsTipo); } List <NotaIngresoAlmacen> notasIngreso = _INotaIngresoAlmacenRepository.ConsultarNotaIngresoPorIds(notasIngresoAlmacenIdConsulta).ToList(); if (notasIngreso != null && notasIngreso.Count > 0) { List <LoteDetalle> lotesDetalle = new List <LoteDetalle>(); notasIngreso.ForEach(notaingreso => { LoteDetalle item = new LoteDetalle(); item.LoteId = request.LoteId; item.NotaIngresoAlmacenId = notaingreso.NotaIngresoAlmacenId; item.Numero = notaingreso.Numero; item.TipoProvedorId = notaingreso.TipoProvedorId; item.SocioId = notaingreso.SocioId; item.TerceroId = notaingreso.TerceroId; item.IntermediarioId = notaingreso.IntermediarioId; item.ProductoId = notaingreso.ProductoId; item.SubProductoId = notaingreso.SubProductoId; item.UnidadMedidaIdPesado = notaingreso.UnidadMedidaIdPesado; item.CantidadPesado = notaingreso.CantidadPesado; item.KilosNetosPesado = notaingreso.KilosNetosPesado; item.KilosBrutosPesado = notaingreso.KilosBrutosPesado; item.RendimientoPorcentaje = notaingreso.RendimientoPorcentaje; item.HumedadPorcentaje = notaingreso.HumedadPorcentajeAnalisisFisico; item.TotalAnalisisSensorial = notaingreso.TotalAnalisisSensorial.Value; item.NotaIngresoAlmacenId = notaingreso.NotaIngresoAlmacenId; //totalKilosNetosPesado = totalKilosNetosPesado + item.KilosNetosPesado; //totalKilosBrutosPesado = totalKilosBrutosPesado + item.KilosBrutosPesado; //totalRendimientoPorcentaje = totalRendimientoPorcentaje + item.RendimientoPorcentaje.Value; //totalAnalisisSensorial = totalAnalisisSensorial + item.TotalAnalisisSensorial; //totalHumedadPorcentaje = totalHumedadPorcentaje + item.HumedadPorcentaje; //totalCantidad = totalCantidad + item.CantidadPesado; //unidadMedidaId = item.UnidadMedidaIdPesado; lotesDetalle.Add(item); }); /* * lote.TotalKilosNetosPesado = totalKilosNetosPesado; * lote.TotalKilosBrutosPesado = totalKilosBrutosPesado; * //lote.PromedioRendimientoPorcentaje = totalRendimientoPorcentaje / lotesDetalle.Count; * //lote.PromedioHumedadPorcentaje = totalHumedadPorcentaje / lotesDetalle.Count; * lote.UnidadMedidaId = unidadMedidaId; * //lote.PromedioTotalAnalisisSensorial = totalAnalisisSensorial / lotesDetalle.Count; * * lote.Cantidad = totalCantidad; * * loteId = _ILoteRepository.Insertar(lote); * * * * * */ _ILoteRepository.InsertarLoteDetalle(lotesDetalle); notasIngreso.ForEach(notaingreso => { _INotaIngresoAlmacenRepository.ActualizarEstado(notaingreso.NotaIngresoAlmacenId, DateTime.Now, request.Usuario, NotaIngresoAlmacenEstados.Lotizado); }); } } } return(affected); }
public int RegistrarNotaSalidaAlmacen(RegistrarNotaSalidaAlmacenRequestDTO request) { NotaSalidaAlmacen notaSalidaAlmacen = new NotaSalidaAlmacen(); List <NotaSalidaAlmacenDetalle> lstnotaSalidaAlmacen = new List <NotaSalidaAlmacenDetalle>(); int affected = 0; List <TablaIdsTipo> loteIdActualizar = new List <TablaIdsTipo>(); notaSalidaAlmacen.EmpresaId = request.EmpresaId; notaSalidaAlmacen.AlmacenId = request.AlmacenId; notaSalidaAlmacen.Numero = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.NotaSalidaAlmacen); notaSalidaAlmacen.MotivoTrasladoId = request.MotivoTrasladoId; notaSalidaAlmacen.MotivoTrasladoReferencia = request.MotivoTrasladoReferencia; notaSalidaAlmacen.EmpresaIdDestino = request.EmpresaIdDestino; notaSalidaAlmacen.EmpresaTransporteId = request.EmpresaTransporteId; notaSalidaAlmacen.TransporteId = request.TransporteId; notaSalidaAlmacen.NumeroConstanciaMTC = request.NumeroConstanciaMTC; notaSalidaAlmacen.MarcaTractorId = request.MarcaTractorId; notaSalidaAlmacen.PlacaTractor = request.PlacaTractor; notaSalidaAlmacen.MarcaCarretaId = request.MarcaCarretaId; notaSalidaAlmacen.PlacaCarreta = request.PlacaCarreta; notaSalidaAlmacen.Conductor = request.Conductor; notaSalidaAlmacen.Licencia = request.Licencia; notaSalidaAlmacen.Observacion = request.Observacion; notaSalidaAlmacen.CantidadLotes = request.CantidadLotes; //notaSalidaAlmacen.PromedioPorcentajeRendimiento = request.PromedioPorcentajeRendimiento; notaSalidaAlmacen.CantidadTotal = request.CantidadTotal; notaSalidaAlmacen.PesoKilosBrutos = request.PesoKilosBrutos; notaSalidaAlmacen.EstadoId = NotaSalidaAlmacenEstados.Ingresado; notaSalidaAlmacen.FechaRegistro = DateTime.Now; notaSalidaAlmacen.UsuarioRegistro = request.UsuarioNotaSalidaAlmacen; notaSalidaAlmacen.NotaSalidaAlmacenId = _INotaSalidaAlmacenRepository.Insertar(notaSalidaAlmacen); if (notaSalidaAlmacen.NotaSalidaAlmacenId != 0) { request.ListNotaSalidaAlmacenDetalle.ForEach(x => { NotaSalidaAlmacenDetalle obj = new NotaSalidaAlmacenDetalle(); obj.LoteId = x.LoteId; obj.NotaSalidaAlmacenId = notaSalidaAlmacen.NotaSalidaAlmacenId; lstnotaSalidaAlmacen.Add(obj); TablaIdsTipo tablaLoteIdsTipo = new TablaIdsTipo(); tablaLoteIdsTipo.Id = x.LoteId; loteIdActualizar.Add(tablaLoteIdsTipo); }); affected = _INotaSalidaAlmacenRepository.ActualizarNotaSalidaAlmacenDetalle(lstnotaSalidaAlmacen, notaSalidaAlmacen.NotaSalidaAlmacenId); _LoteRepository.ActualizarEstadoPorIds(loteIdActualizar, DateTime.Now, request.UsuarioNotaSalidaAlmacen, LoteEstados.GeneradoNotaSalida); } #region Guia Remision int guiaRemisionAlmacenId; //GuiaRemisionAlmacen guiaRemisionAlmacen = new GuiaRemisionAlmacen(); GuiaRemisionAlmacen guiaRemisionAlmacen = _Mapper.Map <GuiaRemisionAlmacen>(notaSalidaAlmacen); guiaRemisionAlmacen.Numero = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.GuiaRemisionAlmacen); #region Comentado Guia de Remision string tipoProduccionId = String.Empty; string tipoCertificacionId = String.Empty; List <ConsultaNotaSalidaAlmacenLotesDetallePorIdBE> NotaSalidaDetalle = _INotaSalidaAlmacenRepository.ConsultarNotaSalidaAlmacenLotesDetallePorIdBE(notaSalidaAlmacen.NotaSalidaAlmacenId).ToList(); if (NotaSalidaDetalle.Count > 0) { tipoProduccionId = NotaSalidaDetalle[0].TipoProduccionId; tipoCertificacionId = NotaSalidaDetalle[0].TipoCertificacionId; } guiaRemisionAlmacen.TipoProduccionId = tipoProduccionId; guiaRemisionAlmacen.TipoCertificacionId = tipoCertificacionId; guiaRemisionAlmacenId = _IGuiaRemisionAlmacenRepository.Insertar(guiaRemisionAlmacen); if (guiaRemisionAlmacenId != 0) { List <GuiaRemisionAlmacenDetalleTipo> listaDetalle = new List <GuiaRemisionAlmacenDetalleTipo>(); if (NotaSalidaDetalle.Any()) { NotaSalidaDetalle.ForEach(x => { GuiaRemisionAlmacenDetalleTipo item = _Mapper.Map <GuiaRemisionAlmacenDetalleTipo>(x); item.GuiaRemisionAlmacenId = guiaRemisionAlmacenId; item.FechaLote = x.FechaRegistro; item.UnidadMedidaIdPesado = x.UnidadMedidaId; item.ProductoId = x.ProductoId; item.SubProductoId = x.SubProductoId; item.NumeroLote = x.NumeroLote; item.CantidadPesado = x.Cantidad; item.KilosNetosPesado = x.TotalKilosNetosPesado; item.KilosBrutosPesado = x.TotalKilosBrutosPesado; item.RendimientoPorcentaje = x.RendimientoPorcentaje; item.HumedadPorcentaje = x.HumedadPorcentajeAnalisisFisico; item.TipoProduccionId = x.TipoProduccionId; item.TipoCertificacionId = x.TipoCertificacionId; listaDetalle.Add(item); }); _IGuiaRemisionAlmacenRepository.ActualizarGuiaRemisionAlmacenDetalle(listaDetalle); } } #endregion Comentado Guia de Remision #endregion return(affected); }
public int ActualizarNotaSalidaAlmacenPlanta(RegistrarNotaSalidaAlmacenPlantaRequestDTO request) { NotaSalidaAlmacenPlanta notaSalidaAlmacen = new NotaSalidaAlmacenPlanta(); List <NotaSalidaAlmacenPlantaDetalle> lstnotaSalidaAlmacen = new List <NotaSalidaAlmacenPlantaDetalle>(); int affected = 0; List <TablaIdsTipo> notaIngresoIdActualizar = new List <TablaIdsTipo>(); notaSalidaAlmacen.NotaSalidaAlmacenPlantaId = request.NotaSalidaAlmacenPlantaId; notaSalidaAlmacen.EmpresaId = request.EmpresaId; notaSalidaAlmacen.AlmacenId = request.AlmacenId; notaSalidaAlmacen.Numero = request.Numero; notaSalidaAlmacen.MotivoSalidaId = request.MotivoSalidaId; notaSalidaAlmacen.MotivoSalidaReferencia = request.MotivoSalidaReferencia; notaSalidaAlmacen.EmpresaIdDestino = request.EmpresaIdDestino; notaSalidaAlmacen.EmpresaTransporteId = request.EmpresaTransporteId; notaSalidaAlmacen.TransporteId = request.TransporteId; notaSalidaAlmacen.NumeroConstanciaMTC = request.NumeroConstanciaMTC; notaSalidaAlmacen.MarcaTractorId = request.MarcaTractorId; notaSalidaAlmacen.PlacaTractor = request.PlacaTractor; notaSalidaAlmacen.MarcaCarretaId = request.MarcaCarretaId; notaSalidaAlmacen.PlacaCarreta = request.PlacaCarreta; notaSalidaAlmacen.Conductor = request.Conductor; notaSalidaAlmacen.Licencia = request.Licencia; notaSalidaAlmacen.Observacion = request.Observacion; //notaSalidaAlmacen.PromedioPorcentajeRendimiento = request.PromedioPorcentajeRendimiento; notaSalidaAlmacen.CantidadTotal = request.CantidadTotal; notaSalidaAlmacen.PesoKilosBrutos = request.PesoKilosBrutos; notaSalidaAlmacen.PesoKilosNetos = request.PesoKilosNetos; notaSalidaAlmacen.Tara = request.Tara; //notaSalidaAlmacen.EstadoId = request.EstadoId; notaSalidaAlmacen.FechaUltimaActualizacion = DateTime.Now; notaSalidaAlmacen.UsuarioUltimaActualizacion = request.UsuarioNotaSalidaAlmacenPlanta; affected = _INotaSalidaAlmacenPlantaRepository.Actualizar(notaSalidaAlmacen); if (notaSalidaAlmacen.NotaSalidaAlmacenPlantaId != 0) { request.ListNotaSalidaAlmacenPlantaDetalle.ForEach(x => { NotaSalidaAlmacenPlantaDetalle obj = new NotaSalidaAlmacenPlantaDetalle(); obj.NotaIngresoAlmacenPlantaId = x.NotaIngresoAlmacenPlantaId; obj.NotaSalidaAlmacenPlantaId = notaSalidaAlmacen.NotaSalidaAlmacenPlantaId; lstnotaSalidaAlmacen.Add(obj); TablaIdsTipo tablaLoteIdsTipo = new TablaIdsTipo(); tablaLoteIdsTipo.Id = x.NotaIngresoAlmacenPlantaId; notaIngresoIdActualizar.Add(tablaLoteIdsTipo); }); affected = _INotaSalidaAlmacenPlantaRepository.ActualizarNotaSalidaAlmacenPlantaDetalle(lstnotaSalidaAlmacen, notaSalidaAlmacen.NotaSalidaAlmacenPlantaId); _NotaIngresoAlmacenPlantaRepository.ActualizarEstadoPorIds(notaIngresoIdActualizar, DateTime.Now, request.UsuarioNotaSalidaAlmacenPlanta, NotaIngresoAlmacenPlantaEstados.GeneradoNotaSalida); } #region Guia Remision int guiaRemisionAlmacenId; //GuiaRemisionAlmacen guiaRemisionAlmacen = new GuiaRemisionAlmacen(); GuiaRemisionAlmacenPlanta guiaRemisionAlmacen = _Mapper.Map <GuiaRemisionAlmacenPlanta>(notaSalidaAlmacen); ConsultaGuiaRemisionAlmacenPlanta guiaRemisionPivot = _IGuiaRemisionAlmacenPlantaRepository.ConsultaGuiaRemisionAlmacenPlantaPorNotaSalidaAlmacenPlantaId(notaSalidaAlmacen.NotaSalidaAlmacenPlantaId); string tipoProduccionId = String.Empty; string tipoCertificacionId = String.Empty; List <ConsultaNotaSalidaAlmacenPlantaDetallePorIdBE> NotaSalidaDetalle = _INotaSalidaAlmacenPlantaRepository.ConsultarNotaSalidaAlmacenPlantaDetallePorIdBE(notaSalidaAlmacen.NotaSalidaAlmacenPlantaId).ToList(); if (NotaSalidaDetalle.Count > 0) { tipoProduccionId = NotaSalidaDetalle[0].TipoProduccionId; tipoCertificacionId = NotaSalidaDetalle[0].CertificacionId; } guiaRemisionAlmacen.TipoProduccionId = tipoProduccionId; guiaRemisionAlmacen.TipoCertificacionId = tipoCertificacionId; if (guiaRemisionPivot == null) { guiaRemisionAlmacen.Numero = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.GuiaRemisionAlmacenPlanta); guiaRemisionAlmacen.FechaRegistro = DateTime.Now; guiaRemisionAlmacen.UsuarioRegistro = request.UsuarioNotaSalidaAlmacenPlanta; guiaRemisionAlmacen.EstadoId = GuiaRemisionAlmacenPlantaEstados.Ingresado; guiaRemisionAlmacenId = _IGuiaRemisionAlmacenPlantaRepository.Insertar(guiaRemisionAlmacen); } else { guiaRemisionAlmacen.FechaUltimaActualizacion = DateTime.Now; guiaRemisionAlmacen.UsuarioUltimaActualizacion = request.UsuarioNotaSalidaAlmacenPlanta; _IGuiaRemisionAlmacenPlantaRepository.Actualizar(guiaRemisionAlmacen); guiaRemisionAlmacenId = guiaRemisionPivot.GuiaRemisionAlmacenPlantaId; } if (guiaRemisionAlmacenId != 0) { List <GuiaRemisionAlmacenPlantaDetalleTipo> listaDetalle = new List <GuiaRemisionAlmacenPlantaDetalleTipo>(); if (NotaSalidaDetalle.Any()) { NotaSalidaDetalle.ForEach(x => { GuiaRemisionAlmacenPlantaDetalleTipo item = _Mapper.Map <GuiaRemisionAlmacenPlantaDetalleTipo>(x); item.GuiaRemisionAlmacenPlantaId = guiaRemisionAlmacenId; item.NotaIngresoAlmacenPlantaId = x.NotaIngresoAlmacenPlantaId; item.NumeroNotaIngresoAlmacenPlanta = x.NumeroNotaIngresoAlmacenPlanta; item.ProductoId = x.ProductoId; item.SubProductoId = x.SubProductoId; item.UnidadMedidaIdPesado = x.UnidadMedidaIdPesado; item.CalidadId = x.CalidadId; item.GradoId = x.GradoId; item.CantidadPesado = x.CantidadPesado; item.CantidadDefectos = x.CantidadDefectos; item.KilosNetosPesado = x.KilosNetosPesado; item.KilosBrutosPesado = x.KilosBrutosPesado; item.TaraPesado = x.TaraPesado; listaDetalle.Add(item); }); _IGuiaRemisionAlmacenPlantaRepository.ActualizarGuiaRemisionAlmacenPlantaDetalle(listaDetalle); } } #endregion return(affected); }