예제 #1
0
        /// <summary>
        /// Obtiene una coleccion de recepcion producto
        /// </summary>
        /// <param name="almacenesMovimiento"></param>
        /// <returns></returns>
        internal List <RecepcionProductoInfo> ObtenerRecepcionProductoConciliacionPorAlmacenMovimiento(List <AlmacenMovimientoInfo> almacenesMovimiento)
        {
            List <RecepcionProductoInfo> resultado;

            try
            {
                Logger.Info();
                var recepcionProductoDAL = new RecepcionProductoDAL();
                resultado = recepcionProductoDAL.ObtenerRecepcionProductoConciliacionPorAlmacenMovimiento(almacenesMovimiento);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(resultado);
        }
예제 #2
0
        internal RecepcionProductoInfo ObtenerRecepcionPorFolio(RecepcionProductoInfo recepcionProductoCompra)
        {
            RecepcionProductoInfo info;

            try
            {
                Logger.Info();
                var recepcionProductoDAL = new RecepcionProductoDAL();
                info = recepcionProductoDAL.ObtenerRecepcionPorFolio(recepcionProductoCompra);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="recepcionProductoCompra"></param>
        /// <param name="organizacionId"></param>
        /// <param name="conexion"></param>
        /// <returns></returns>
        internal RecepcionProductoInfo ObtenerRecepcionVista(RecepcionProductoInfo recepcionProductoCompra, int organizacionId, string conexion)
        {
            RecepcionProductoInfo info;

            try
            {
                Logger.Info();
                var recepcionProductoDAL = new RecepcionProductoDAL(conexion);
                info = recepcionProductoDAL.ObtenerRecepcionVista(recepcionProductoCompra, organizacionId);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
예제 #4
0
        /// <summary>
        /// Guarda una recepcion de producto
        /// </summary>
        /// <param name="recepcionProducto"></param>
        /// <returns></returns>
        internal MemoryStream Guardar(RecepcionProductoInfo recepcionProducto)
        {
            try
            {
                MemoryStream       pdf     = null;
                PolizaAbstract     poliza  = null;
                IList <PolizaInfo> polizas = null;
                int organizacionID         = 0;
                var recepcionProductoDal   = new RecepcionProductoDAL();
                using (var transaction = new TransactionScope())
                {
                    int usuarioID = 0;
                    if (GuardarInventario(recepcionProducto))
                    {
                        long almacenMovimiento = GuardarMovimientos(recepcionProducto);

                        recepcionProducto.AlmacenMovimientoId = almacenMovimiento;
                        var recepcionGuardada = recepcionProductoDal.Guardar(recepcionProducto);
                        if (recepcionGuardada != null)
                        {
                            foreach (var recepcionProductoDetalleInfo in recepcionProducto.ListaRecepcionProductoDetalle
                                     )
                            {
                                recepcionProductoDetalleInfo.RecepcionProductoId = recepcionGuardada.RecepcionProductoId;
                                recepcionProductoDetalleInfo.UsuarioCreacion     = new UsuarioInfo()
                                {
                                    UsuarioID =
                                        recepcionProducto.
                                        UsuarioCreacion.UsuarioID
                                };
                                usuarioID      = recepcionProducto.UsuarioCreacion.UsuarioID;
                                organizacionID = recepcionProducto.Proveedor.OrganizacionID;
                                recepcionProductoDetalleInfo.Activo = EstatusEnum.Activo;
                            }

                            var recepcionProductoDetalleBl = new RecepcionProductoDetalleBL();
                            recepcionProductoDetalleBl.Guardar(recepcionProducto.ListaRecepcionProductoDetalle);

                            #region POLIZA

                            poliza =
                                FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.EntradaCompraMateriaPrima);
                            recepcionProducto.FolioRecepcion = recepcionGuardada.FolioRecepcion;
                            recepcionProducto.FechaRecepcion = recepcionGuardada.FechaRecepcion;
                            polizas = poliza.GeneraPoliza(recepcionProducto);
                            if (polizas != null)
                            {
                                if (organizacionID == 0)
                                {
                                    organizacionID = recepcionProducto.Almacen.Organizacion.OrganizacionID;
                                }
                                var polizaBL = new PolizaBL();
                                polizas.ToList().ForEach(datos =>
                                {
                                    datos.OrganizacionID         = organizacionID;
                                    datos.UsuarioCreacionID      = usuarioID;
                                    datos.ArchivoEnviadoServidor = 1;
                                });
                                polizaBL.GuardarServicioPI(polizas, TipoPoliza.EntradaCompraMateriaPrima);
                                pdf = poliza.ImprimePoliza(recepcionProducto, polizas);
                            }

                            #endregion POLIZA

                            transaction.Complete();
                        }
                    }
                }
                return(pdf);
            }
            catch (ExcepcionServicio ex)
            {
                Logger.Error(ex);
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }