public IActionResult Actualizar([FromBody] RegistrarNotaSalidaAlmacenPlantaRequestDTO request)
        {
            Guid guid = Guid.NewGuid();

            _log.RegistrarEvento($"{guid.ToString()}{Environment.NewLine}{Newtonsoft.Json.JsonConvert.SerializeObject(request)}");

            RegistrarNotaCompraResponseDTO response = new RegistrarNotaCompraResponseDTO();

            try
            {
                response.Result.Data = _NotaSalidaAlmacenPlantaService.ActualizarNotaSalidaAlmacenPlanta(request);

                response.Result.Success = true;
            }
            catch (ResultException ex)
            {
                response.Result = new Result()
                {
                    Success = true, ErrCode = ex.Result.ErrCode, Message = ex.Result.Message
                };
            }
            catch (Exception ex)
            {
                response.Result = new Result()
                {
                    Success = false, Message = "Ocurrio un problema en el servicio, intentelo nuevamente."
                };
                _log.RegistrarEvento(ex, guid.ToString());
            }

            _log.RegistrarEvento($"{guid.ToString()}{Environment.NewLine}{Newtonsoft.Json.JsonConvert.SerializeObject(response)}");

            return(Ok(response));
        }
Exemple #2
0
        public int RegistrarNotaSalidaAlmacenPlanta(RegistrarNotaSalidaAlmacenPlantaRequestDTO request)
        {
            NotaSalidaAlmacenPlanta notaSalidaAlmacen = new NotaSalidaAlmacenPlanta();
            List <NotaSalidaAlmacenPlantaDetalle> lstnotaSalidaAlmacen = new List <NotaSalidaAlmacenPlantaDetalle>();
            int affected = 0;


            List <TablaIdsTipo> notaIngresoIdActualizar = new List <TablaIdsTipo>();

            notaSalidaAlmacen.EmpresaId              = request.EmpresaId;
            notaSalidaAlmacen.AlmacenId              = request.AlmacenId;
            notaSalidaAlmacen.Numero                 = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.NotaSalidaAlmacenPlanta);
            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        = NotaSalidaAlmacenEstados.Ingresado;
            notaSalidaAlmacen.FechaRegistro   = DateTime.Now;
            notaSalidaAlmacen.UsuarioRegistro = request.UsuarioNotaSalidaAlmacenPlanta;

            notaSalidaAlmacen.NotaSalidaAlmacenPlantaId = _INotaSalidaAlmacenPlantaRepository.Insertar(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);
            }


            int guiaRemisionAlmacenId;
            //GuiaRemisionAlmacen guiaRemisionAlmacen = new GuiaRemisionAlmacen();

            GuiaRemisionAlmacenPlanta guiaRemisionAlmacen = _Mapper.Map <GuiaRemisionAlmacenPlanta>(notaSalidaAlmacen);

            guiaRemisionAlmacen.Numero = _ICorrelativoRepository.Obtener(request.EmpresaId, Documentos.GuiaRemisionAlmacenPlanta);


            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    = "";;
            guiaRemisionAlmacen.TipoCertificacionId = "";
            guiaRemisionAlmacen.EstadoId            = GuiaRemisionAlmacenEstados.Ingresado;

            guiaRemisionAlmacenId = _IGuiaRemisionAlmacenPlantaRepository.Insertar(guiaRemisionAlmacen);

            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);
                }
            }

            _NotaIngresoAlmacenPlantaRepository.ActualizarEstadoPorIds(notaIngresoIdActualizar, DateTime.Now, request.UsuarioNotaSalidaAlmacenPlanta, NotaIngresoAlmacenPlantaEstados.GeneradoNotaSalida);

            return(affected);
        }