예제 #1
0
 /// <summary>
 /// Actualiza el almacen, almacen inventario lote y piezas.
 /// </summary>
 /// <param name="salida"></param>
 /// <returns></returns>
 internal void ActualizarAlmacenInventarioLote(SalidaProductoInfo salida)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters =
             AuxSalidaProductoDAL.ObtenerParametrosActualizaAlmacenInventarioLote(salida);
         Update("SalidaProducto_ActualizaAlmacenInventario", parameters);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
예제 #2
0
 /// <summary>
 /// Guarda el segundo pesaje de la salida de producto
 /// </summary>
 /// <param name="salida"></param>
 /// <returns></returns>
 internal SalidaProductoInfo GuardarSegundoPesajeSalida(SalidaProductoInfo salida)
 {
     try
     {
         Logger.Info();
         using (var transaction = new TransactionScope())
         {
             var entradaProductoDAL = new SalidaProductoDAL();
             int resultado          = entradaProductoDAL.GuardarSegundoPesajeSalida(salida);
             if (resultado > 0)
             {
                 salida.FolioSalida = resultado;
             }
             transaction.Complete();
         }
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
     return(salida);
 }
예제 #3
0
        /// <summary>
        /// Consulta los folios activos con el peso tara capturado.
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        internal List <SalidaProductoInfo> ObtenerTraspasoFoliosActivos(SalidaProductoInfo filtro)
        {
            List <SalidaProductoInfo> foliosLista = null;

            try
            {
                Dictionary <string, object> parameters =
                    AuxSalidaProductoDAL.ObtenerParametrosTraspasoFoliosActivos(filtro);
                DataSet ds = Retrieve("SalidaProducto_BusquedaTraspasoFoliosActivos", parameters);
                if (ValidateDataSet(ds))
                {
                    foliosLista = MapSalidaProductoDAL.ObtenerTraspasoFoliosActivos(ds);
                }
            }
            catch (SqlException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (DataException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(foliosLista);
        }
예제 #4
0
        /// <summary>
        /// Obtiene los parametros necesarios para terminar la salida
        /// </summary>
        /// <param name="salidaProducto"></param>
        /// <param name="movimiento"></param>
        /// <returns></returns>
        internal static Dictionary <string, object> ObtenerParametrosTerminarSalida(SalidaProductoInfo salidaProducto, AlmacenMovimientoInfo movimiento)
        {
            Dictionary <string, object> parametros;

            try
            {
                Logger.Info();
                int facturar = salidaProducto.GeneraFactura ? 1 : 0;

                parametros = new Dictionary <string, object>
                {
                    { "@SalidaProductoID", salidaProducto.SalidaProductoId },
                    { "@AlmacenMovimientoID", movimiento.AlmacenMovimientoID },
                    { "@Activo", (int)EstatusEnum.Inactivo },
                    { "@UsuarioModificacionID", salidaProducto.UsuarioModificacionId },
                    { "@OrganizacionID", salidaProducto.Organizacion.OrganizacionID },
                    { "@RequiereFactura", facturar }
                };
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(parametros);
        }
        public static bool ActualizaSalida(SalidaProductoInfo salidaProducto)
        {
            bool resultado = true;

            try
            {
                SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                if (seguridad != null)
                {
                    var salidaProductoPl = new SalidaProductoPL();
                    salidaProductoPl.ActualizarAlmacenInventarioLote(salidaProducto);
                }
                else
                {
                    throw new ExcepcionServicio("SesionExpirada");
                }
            }
            catch (ExcepcionServicio ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new Exception(ex.Message);
            }

            return(resultado);
        }
예제 #6
0
 /// <summary>
 /// Termina la salida del producto
 /// </summary>
 /// <param name="salida"></param>
 /// <param name="movimiento"></param>
 /// <returns></returns>
 internal int TerminarSalidaProducto(SalidaProductoInfo salida, AlmacenMovimientoInfo movimiento)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters =
             AuxSalidaProductoDAL.ObtenerParametrosTerminarSalida(salida, movimiento);
         int result = Create("SalidaProducto_TerminarSalidaProducto", parameters);
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
예제 #7
0
 internal bool Cancelar(SalidaProductoInfo salidaProducto)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters =
             AuxSalidaProductoDAL.ObtenerParametrosCancelar(salidaProducto);
         Update("SalidaProducto_Cancelar", parameters);
         return(true);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
예제 #8
0
        /// <summary>
        /// Obtiene una salida de producto por folio de salida
        /// </summary>
        /// <param name="salidaProducto"></param>
        /// <returns></returns>
        internal SalidaProductoInfo ObtenerPorFolioSalida(SalidaProductoInfo salidaProducto)
        {
            SalidaProductoInfo producto = null;

            try
            {
                Dictionary <string, object> parameters = AuxSalidaProductoDAL.ObtenerParametrosPorFolioSalida(salidaProducto);
                DataSet ds = Retrieve("SalidaProducto_ObtenerPorFolioSalida", parameters);
                if (ValidateDataSet(ds))
                {
                    producto = MapSalidaProductoDAL.ObtenerFoliosPorFolioSalida(ds);
                }
            }
            catch (SqlException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (DataException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(producto);
        }
예제 #9
0
 /// <summary>
 /// Guarda el primer pesaje de la salida del producto
 /// </summary>
 /// <param name="salida"></param>
 /// <returns></returns>
 internal int GuardarSegundoPesajeSalida(SalidaProductoInfo salida)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters =
             AuxSalidaProductoDAL.ObtenerParametrosGuardarSegundoPesajeSalida(salida);
         int result = Create("SalidaProducto_ActualizarSegundoPesaje", parameters);
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
예제 #10
0
        /// <summary>
        /// Consulta los folios activos con el peso tara capturado.
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        internal List <SalidaProductoInfo> ObtenerTraspasoFoliosActivos(SalidaProductoInfo filtro)
        {
            List <SalidaProductoInfo> salidaProductos = null;

            try
            {
                Logger.Info();
                var entradaProductoDAL = new SalidaProductoDAL();
                salidaProductos = entradaProductoDAL.ObtenerTraspasoFoliosActivos(filtro);
                if (salidaProductos != null && salidaProductos.Count > 0)
                {
                    foreach (var salida in salidaProductos)
                    {
                        if (salida.Cliente != null && salida.Cliente.ClienteID > 0)
                        {
                            var clienteBl = new ClienteBL();
                            salida.Cliente = clienteBl.ObtenerPorID(salida.Cliente.ClienteID);
                        }
                    }
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(salidaProductos);
        }
예제 #11
0
 /// <summary>
 /// Actualiza el almacen, almacen inventario lote y piezas.
 /// </summary>
 /// <param name="salida"></param>
 internal void ActualizarAlmacenInventarioLote(SalidaProductoInfo salida)
 {
     try
     {
         var entradaProductoDAL = new SalidaProductoDAL();
         entradaProductoDAL.ActualizarAlmacenInventarioLote(salida);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
        /// <summary>
        /// Genera linea de totales para detalle
        /// </summary>
        /// <param name="salidaProducto"></param>
        private void GeneraLineaTotalDetalle(SalidaProductoInfo salidaProducto)
        {
            PolizaModel.Detalle = new List <PolizaDetalleModel>();

            decimal cantidad           = salidaProducto.PesoBruto - salidaProducto.PesoTara;
            var     polizaDetalleModel = new PolizaDetalleModel
            {
                PrecioVenta  = (salidaProducto.Importe / cantidad).ToString("N2"),
                ImporteVenta = salidaProducto.Importe.ToString("N2"),
            };

            PolizaModel.Detalle.Add(polizaDetalleModel);
        }
예제 #13
0
 /// <summary>
 /// Actualiza el almacen, almacen inventario lote y piezas.
 /// </summary>
 /// <param name="salida"></param>
 public void ActualizarAlmacenInventarioLote(SalidaProductoInfo salida)
 {
     try
     {
         var salidaProductoBl = new SalidaProductoBL();
         salidaProductoBl.ActualizarAlmacenInventarioLote(salida);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
예제 #14
0
 public bool CancelarVentaTraspaso(SalidaProductoInfo salidaProducto, string justificacion)
 {
     try
     {
         CancelacionMovimientoBL cancelacionMovimientoBl = new CancelacionMovimientoBL();
         return(cancelacionMovimientoBl.CancelarVentaTraspaso(salidaProducto, justificacion));
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
     }
     return(false);
 }
예제 #15
0
        /// <summary>
        /// Consulta los folios activos con el peso tara capturado.
        /// </summary>
        /// <param name="salida"></param>
        /// <returns></returns>
        public List <SalidaProductoInfo> ObtenerTraspasoFoliosActivos(SalidaProductoInfo salida)
        {
            List <SalidaProductoInfo> salidas = null;

            try
            {
                var salidaProductoBl = new SalidaProductoBL();
                salidas = salidaProductoBl.ObtenerTraspasoFoliosActivos(salida);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(salidas);
        }
예제 #16
0
 internal bool Cancelar(SalidaProductoInfo salidaProducto)
 {
     try
     {
         Logger.Info();
         var salidaProductoDAL = new SalidaProductoDAL();
         return(salidaProductoDAL.Cancelar(salidaProducto));
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
예제 #17
0
 /// <summary>
 /// Obtiene el producto de una salida
 /// </summary>
 /// <param name="salida"></param>
 /// <returns></returns>
 internal ProductoInfo ObtenerPorFolioSalida(SalidaProductoInfo salida)
 {
     try
     {
         Logger.Info();
         var productoDAL = new ProductoDAL();
         return(productoDAL.ObtenerPorFolioSalida(salida));
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
예제 #18
0
 /// <summary>
 /// Obtiene los parametros para obtenero un producto por folio de salida
 /// </summary>
 /// <param name="salida"></param>
 /// <returns></returns>
 internal static Dictionary <string, object> ObtenerParametrosPorFolioSalida(SalidaProductoInfo salida)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@FolioSalida", salida.FolioSalida },
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
예제 #19
0
 /// <summary>
 /// Obtiene una salida de producto por foliosalida
 /// </summary>
 /// <param name="salidaProducto"></param>
 /// <returns></returns>
 public SalidaProductoInfo ObtenerPorFolioSalida(SalidaProductoInfo salidaProducto)
 {
     try
     {
         var salidaProductoBl = new SalidaProductoBL();
         salidaProducto = salidaProductoBl.ObtenerPorFolioSalida(salidaProducto);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
     return(salidaProducto);
 }
예제 #20
0
        public static List <SalidaProductoInfo> ConsultaFoliosActivos(int folioSalida)
        {
            List <SalidaProductoInfo> listaFolios = null;

            try
            {
                SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                if (seguridad != null)
                {
                    var salidaProductoPl = new SalidaProductoPL();
                    var salida           = new SalidaProductoInfo()
                    {
                        FolioSalida  = folioSalida,
                        Activo       = EstatusEnum.Activo,
                        Organizacion = new OrganizacionInfo()
                        {
                            OrganizacionID = seguridad.Usuario.OrganizacionID
                        }
                    };

                    listaFolios = salidaProductoPl.ObtenerTraspasoFoliosActivos(salida);
                }
                else
                {
                    throw new ExcepcionServicio("SesionExpirada");
                }
            }
            catch (ExcepcionServicio ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new Exception(ex.Message);
            }

            return(listaFolios);
        }
예제 #21
0
        /// <summary>
        /// Obtiene un folio de salida
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public SalidaProductoInfo ObtenerFolioPorReimpresion(SalidaProductoInfo filtro)
        {
            SalidaProductoInfo salida;

            try
            {
                Logger.Info();
                var entradaProductoBL = new SalidaProductoBL();
                salida = entradaProductoBL.ObtenerFolioPorReimpresion(filtro);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(salida);
        }
예제 #22
0
        /// <summary>
        /// Genera el xml de la factura de venta de materia prima
        /// </summary>
        /// <param name="salidaProducto"></param>
        internal void GenerarDatosFacturaVentaDeMateriaPrima(SalidaProductoInfo salidaProducto)
        {
            try
            {
                Logger.Info();
                var salidaIndividualDAL = new SalidaProductoDAL();
                var facturaInfo = salidaIndividualDAL.ObtenerDatosFacturaPorFolioSalida(salidaProducto);

                facturaInfo = ObtenerDatosDeConfiguracion(facturaInfo, salidaProducto.Organizacion.OrganizacionID);
                GenerarFactura(facturaInfo, salidaProducto.Organizacion.OrganizacionID);
            }
            catch (ExcepcionServicio)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
예제 #23
0
        /// <summary>
        /// Guarda el segundo pesaje de la salida de producto
        /// </summary>
        /// <param name="salida"></param>
        /// <returns></returns>
        public SalidaProductoInfo GuardarSegundoPesajeSalida(SalidaProductoInfo salida)
        {
            SalidaProductoInfo resultado;

            try
            {
                Logger.Info();
                var salidaProductoBl = new SalidaProductoBL();
                resultado = salidaProductoBl.GuardarSegundoPesajeSalida(salida);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(resultado);
        }
예제 #24
0
        /// <summary>
        /// Obtiene los parametros necesarios para la ejecucion
        /// del procedimiento almacenado SalidaProducto_ObtenerFolioReimpresion
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        internal static Dictionary <string, object> ObtenerParametrosPorReimpresion(SalidaProductoInfo filtro)
        {
            Dictionary <string, object> parametros;

            try
            {
                Logger.Info();

                parametros = new Dictionary <string, object>
                {
                    { "@OrganizacionID", filtro.Organizacion.OrganizacionID },
                    { "@FolioSalida", filtro.FolioSalida },
                };
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(parametros);
        }
예제 #25
0
        /// <summary>
        /// Obtiene los parametros
        /// </summary>
        /// <param name="salidaProducto"></param>
        /// <returns></returns>
        internal static Dictionary <string, object> ObtenerParametrosCancelar(SalidaProductoInfo salidaProducto)
        {
            Dictionary <string, object> parametros;

            try
            {
                Logger.Info();

                parametros = new Dictionary <string, object>
                {
                    { "@SalidaProductoID", salidaProducto.SalidaProductoId },
                    { "@UsuarioModificacionID", salidaProducto.UsuarioModificacionId },
                };
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(parametros);
        }
예제 #26
0
        /// <summary>
        /// Termina la salida del producto
        /// </summary>
        /// <param name="salida"></param>
        /// <returns></returns>
        public MemoryStream TerminarSalidaProducto(SalidaProductoInfo salida)
        {
            MemoryStream resultado;

            try
            {
                Logger.Info();
                var salidaProductoBl = new SalidaProductoBL();
                resultado = salidaProductoBl.TerminarSalidaProducto(salida);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(resultado);
        }
예제 #27
0
        /// <summary>
        /// Obtiene una salida de producto por foliosalida
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        internal SalidaProductoInfo ObtenerPorFolioSalida(SalidaProductoInfo filtro)
        {
            SalidaProductoInfo salidaProducto = null;

            try
            {
                Logger.Info();
                var entradaProductoDAL = new SalidaProductoDAL();
                salidaProducto = entradaProductoDAL.ObtenerPorFolioSalida(filtro);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(salidaProducto);
        }
예제 #28
0
        /// <summary>
        /// Obtiene un folio de salida
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        internal SalidaProductoInfo ObtenerFolioPorReimpresion(SalidaProductoInfo filtro)
        {
            SalidaProductoInfo folio = null;

            try
            {
                Dictionary <string, object> parameters =
                    AuxSalidaProductoDAL.ObtenerParametrosPorReimpresion(filtro);
                using (IDataReader reader = RetrieveReader("SalidaProducto_ObtenerFolioReimpresion", parameters))
                {
                    if (ValidateDataReader(reader))
                    {
                        folio = MapSalidaProductoDAL.ObtenerFoliosPorReimpresion(reader);
                    }
                }
            }
            catch (SqlException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (DataException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            finally
            {
                if (Connection.State == ConnectionState.Open)
                {
                    Connection.Close();
                }
            }
            return(folio);
        }
        /// <summary>
        /// Genera los detalles de la salida
        /// </summary>
        /// <param name="salidaProducto"></param>
        private void GeneraLineaDetalle(SalidaProductoInfo salidaProducto)
        {
            PolizaModel.Detalle = new List <PolizaDetalleModel>();

            if (unidades == null)
            {
                unidades = ObtenerUnidadesMedicion();
            }
            if (productos == null)
            {
                productos = ObtenerProductos();
            }
            ProductoInfo producto =
                productos.FirstOrDefault(clave => clave.ProductoId == salidaProducto.Producto.ProductoId);

            if (producto == null)
            {
                producto = new ProductoInfo();
            }
            decimal cantidad           = salidaProducto.PesoBruto - salidaProducto.PesoTara;
            var     polizaDetalleModel = new PolizaDetalleModel
            {
                CantidadCabezas = producto.ProductoId.ToString(),
                TipoGanado      = producto.ProductoDescripcion,
                PesoOrigen      = cantidad.ToString("N0"),
                PesoLlegada     = cantidad.ToString("N0"),
                Corral          =
                    unidades.Where(
                        clave => clave.UnidadID == producto.UnidadId).Select
                        (uni => uni.ClaveUnidad).FirstOrDefault(),
                Lote            = salidaProducto.AlmacenInventarioLote.Lote.ToString(),
                PrecioPromedio  = (salidaProducto.Importe / cantidad).ToString("N2"),
                ImportePromedio = salidaProducto.Importe.ToString("N2"),
                PrecioVenta     = (salidaProducto.Importe / cantidad).ToString("N2"),
                ImporteVenta    = salidaProducto.Importe.ToString("N2"),
            };

            PolizaModel.Detalle.Add(polizaDetalleModel);
        }
예제 #30
0
        /// <summary>
        /// Obtiene un flujo de datos
        /// para la generacion de la reimpresion
        /// de la poliza de venta de producto
        /// </summary>
        /// <param name="salidaProductoInfo"></param>
        /// <param name="polizaClave"></param>
        /// <returns></returns>
        private MemoryStream ReimpresionSalidaVentaProducto(SalidaProductoInfo salidaProductoInfo, TipoPolizaInfo polizaClave)
        {
            MemoryStream pdf = null;

            var polizaBL = new PolizaBL();
            IList <PolizaInfo> polizasSalidaProducto = polizaBL.ObtenerPoliza(TipoPoliza.SalidaVentaProducto,
                                                                              salidaProductoInfo.Organizacion.OrganizacionID
                                                                              , salidaProductoInfo.FechaSalida,
                                                                              salidaProductoInfo.FolioSalida.ToString(),
                                                                              polizaClave.ClavePoliza, 1);

            if (polizasSalidaProducto != null && polizasSalidaProducto.Any())
            {
                var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaVentaProducto);
                polizasSalidaProducto = poliza.GeneraPoliza(salidaProductoInfo);
                if (polizasSalidaProducto != null && polizasSalidaProducto.Any())
                {
                    pdf = poliza.ImprimePoliza(salidaProductoInfo, polizasSalidaProducto);
                }
            }
            return(pdf);
        }