Exemplo n.º 1
0
 /// <summary>
 /// Metodo para Crear un registro de TraspasoMateriaPrima
 /// </summary>
 /// <param name="info">Valores de la entidad que será creada</param>
 public TraspasoMateriaPrimaInfo Crear(TraspasoMateriaPrimaInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxTraspasoMateriaPrimaDAL.ObtenerParametrosCrear(info);
         DataSet ds = Retrieve("TraspasoMateriaPrima_Crear", parameters);
         TraspasoMateriaPrimaInfo result = null;
         if (ValidateDataSet(ds))
         {
             result = MapTraspasoMateriaPrimaDAL.ObtenerPorCrear(ds);
         }
         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);
     }
 }
 /// <summary>
 ///  Obtiene parametros para actualizar
 /// </summary>
 /// <param name="info">Valores de la entidad</param>
 /// <returns></returns>
 public static Dictionary <string, object> ObtenerParametrosActualizar(TraspasoMateriaPrimaInfo info)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@TraspasoMateriaPrimaID", info.TraspasoMateriaPrimaID },
             { "@ContratoOrigenID", info.ContratoOrigen.ContratoId },
             { "@ContratoDestinoID", info.ContratoDestino.ContratoId },
             { "@AlmacenOrigenID", info.AlmacenOrigen.AlmacenID },
             { "@AlmacenDestinoID", info.AlmacenDestino.AlmacenID },
             { "@FolioTraspaso", info.FolioTraspaso },
             { "@InventarioLoteOrigenID", info.AlmacenInventarioLoteOrigen.AlmacenInventarioLoteId },
             { "@InventarioLoteDestinoID", info.AlmacenInventarioLoteDestino.AlmacenInventarioLoteId },
             { "@CuentaSAPID", info.CuentaSAP.CuentaSAPID },
             { "@Justificacion", info.Justificacion },
             { "@AlmacenMovimientoEntradaID", info.AlmacenMovimientoOrigen.AlmacenMovimientoID },
             { "@AlmacenMovimientoSalidaID", info.AlmacenMovimientoDestino.AlmacenMovimientoID },
             { "@Activo", info.Activo },
             { "@UsuarioModificacionID", info.UsuarioModificacionID },
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 ///  Método que obtiene un registro
 /// </summary>
 /// <param name="ds"></param>
 /// <returns></returns>
 public static TraspasoMateriaPrimaInfo ObtenerPorCrear(DataSet ds)
 {
     try
     {
         Logger.Info();
         DataTable dt = ds.Tables[ConstantesDAL.DtDatos];
         TraspasoMateriaPrimaInfo entidad =
             (from info in dt.AsEnumerable()
              select
              new TraspasoMateriaPrimaInfo
         {
             TraspasoMateriaPrimaID = info.Field <int>("TraspasoMateriaPrimaID"),
             ContratoOrigen = new ContratoInfo {
                 ContratoId = info.Field <int?>("ContratoOrigenID") != null ? info.Field <int>("ContratoOrigenID") : 0
             },
             ContratoDestino = new ContratoInfo {
                 ContratoId = info.Field <int?>("ContratoDestinoID") != null ? info.Field <int>("ContratoDestinoID") : 0
             },
             FolioTraspaso = info.Field <long>("FolioTraspaso"),
             AlmacenOrigen = new AlmacenInfo {
                 AlmacenID = info.Field <int>("AlmacenOrigenID")
             },
             AlmacenDestino = new AlmacenInfo {
                 AlmacenID = info.Field <int>("AlmacenDestinoID")
             },
             AlmacenInventarioLoteOrigen = new AlmacenInventarioLoteInfo {
                 AlmacenInventarioLoteId = info.Field <int?>("InventarioLoteOrigenID") != null ? info.Field <int>("InventarioLoteOrigenID") : 0
             },
             AlmacenInventarioLoteDestino = new AlmacenInventarioLoteInfo {
                 AlmacenInventarioLoteId = info.Field <int?>("InventarioLoteDestinoID") != null ? info.Field <int>("InventarioLoteDestinoID") : 0
             },
             CuentaSAP = new CuentaSAPInfo {
                 CuentaSAPID = info.Field <int?>("CuentaSAPID") != null ? info.Field <int>("CuentaSAPID") : 0
             },
             Justificacion = info.Field <string>("Justificacion"),
             AlmacenMovimientoOrigen = new AlmacenMovimientoInfo {
                 AlmacenMovimientoID = info.Field <long>("AlmacenMovimientoSalidaID")
             },
             AlmacenMovimientoDestino = new AlmacenMovimientoInfo {
                 AlmacenMovimientoID = info.Field <long>("AlmacenMovimientoEntradaID")
             },
             Activo = info.Field <bool>("Activo").BoolAEnum(),
             FechaMovimiento = info.Field <DateTime>("FechaMovimiento")
         }).First();
         return(entidad);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// Obtiene una entidad TraspasoMateriaPrima por su Id
 /// </summary>
 /// <param name="traspasoMateriaPrimaID">Obtiene una entidad TraspasoMateriaPrima por su Id</param>
 /// <returns></returns>
 public TraspasoMateriaPrimaInfo ObtenerPorID(int traspasoMateriaPrimaID)
 {
     try
     {
         Logger.Info();
         var traspasoMateriaPrimaDAL     = new TraspasoMateriaPrimaDAL();
         TraspasoMateriaPrimaInfo result = traspasoMateriaPrimaDAL.ObtenerPorID(traspasoMateriaPrimaID);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 5
0
 /// <summary>
 /// Metodo para actualizar un registro de TraspasoMateriaPrima
 /// </summary>
 /// <param name="info">Valores de la entidad que se actualizarán</param>
 public void Actualizar(TraspasoMateriaPrimaInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxTraspasoMateriaPrimaDAL.ObtenerParametrosActualizar(info);
         Update("TraspasoMateriaPrima_Actualizar", 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);
     }
 }
Exemplo n.º 6
0
        /// <summary>
        /// Metodo para Guardar/Modificar una entidad TraspasoMateriaPrima
        /// </summary>
        /// <param name="info"></param>
        public Dictionary <long, MemoryStream> GuardarTraspaso(TraspasoMpPaMedInfo info)
        {
            try
            {
                var resultado = new Dictionary <long, MemoryStream>();
                Logger.Info();
                var traspasoMateriaPrimaDAL = new TraspasoMateriaPrimaDAL();
                using (var transaction = new TransactionScope())
                {
                    long almacenMovimientoOrigenID  = GenerarMovimientoSalida(info);
                    long almacenMovimientoDestinoID = GenerarMovimientoEntrada(info);

                    var traspasoMateriaPrimaGuardar = new TraspasoMateriaPrimaInfo
                    {
                        ContratoOrigen               = info.ContratoOrigen,
                        ContratoDestino              = info.ContratoDestino,
                        Organizacion                 = info.Usuario.Organizacion,
                        AlmacenOrigen                = info.AlmacenOrigen,
                        AlmacenDestino               = info.AlmacenDestino,
                        AlmacenInventarioLoteOrigen  = info.LoteMpOrigen,
                        AlmacenInventarioLoteDestino = info.LoteMpDestino,
                        CuentaSAP               = info.CuentaContable,
                        Justificacion           = info.JustificacionDestino,
                        AlmacenMovimientoOrigen =
                            new AlmacenMovimientoInfo {
                            AlmacenMovimientoID = almacenMovimientoOrigenID
                        },
                        AlmacenMovimientoDestino =
                            new AlmacenMovimientoInfo {
                            AlmacenMovimientoID = almacenMovimientoDestinoID
                        },
                        Activo            = EstatusEnum.Activo,
                        UsuarioCreacionID = info.Usuario.UsuarioID
                    };

                    traspasoMateriaPrimaGuardar = traspasoMateriaPrimaDAL.Crear(traspasoMateriaPrimaGuardar);
                    info.FolioTraspaso          = traspasoMateriaPrimaGuardar.FolioTraspaso;
                    info.FechaTraspaso          = traspasoMateriaPrimaGuardar.FechaMovimiento;
                    info.AlmacenMovimientoID    = almacenMovimientoDestinoID;
                    MemoryStream pdfPoliza = null;
                    if (info.AlmacenOrigen.AlmacenID != info.AlmacenDestino.AlmacenID)
                    {
                        var productoBL = new ProductoBL();
                        info.ProductoOrigen  = productoBL.ObtenerPorID(info.ProductoOrigen);
                        info.ProductoDestino = info.ProductoOrigen;
                        PolizaAbstract     poliza       = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.EntradaTraspaso);
                        IList <PolizaInfo> listaPolizas = poliza.GeneraPoliza(info);
                        pdfPoliza = poliza.ImprimePoliza(info, listaPolizas);

                        if (listaPolizas != null && listaPolizas.Any())
                        {
                            listaPolizas.ToList().ForEach(datos =>
                            {
                                datos.OrganizacionID         = info.Usuario.Organizacion.OrganizacionID;
                                datos.UsuarioCreacionID      = info.Usuario.UsuarioID;
                                datos.Activo                 = EstatusEnum.Activo;
                                datos.ArchivoEnviadoServidor = 1;
                            });
                            var polizaDAL = new PolizaDAL();
                            polizaDAL.CrearServicioPI(listaPolizas, TipoPoliza.EntradaTraspaso);
                        }
                    }
                    transaction.Complete();
                    resultado.Add(info.FolioTraspaso, pdfPoliza);
                    return(resultado);
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Metodo para Cancelar un traspaso de MP
        /// </summary>
        /// <param name="info"></param>
        public Dictionary <long, MemoryStream> CancelarTraspaso(TraspasoMpPaMedInfo info)
        {
            try
            {
                var resultado = new Dictionary <long, MemoryStream>();
                Logger.Info();
                var traspasoMateriaPrimaDAL = new TraspasoMateriaPrimaDAL();
                var almacenMovimientoBL     = new AlmacenMovimientoBL();
                var cancelacionMovimientoBL = new CancelacionMovimientoBL();
                TraspasoMateriaPrimaInfo traspasoCancelar =
                    traspasoMateriaPrimaDAL.ObtenerPorID(info.TraspasoMateriaPrimaID);

                if (traspasoCancelar == null)
                {
                    return(null);
                }
                AlmacenMovimientoInfo movimientoOrigen = almacenMovimientoBL.ObtenerPorIDCompleto(
                    traspasoCancelar.AlmacenMovimientoOrigen.AlmacenMovimientoID);
                AlmacenMovimientoInfo movimientoDestino = almacenMovimientoBL.ObtenerPorIDCompleto(
                    traspasoCancelar.AlmacenMovimientoDestino.AlmacenMovimientoID);

                AlmacenInfo almacenOrigenAux  = info.AlmacenOrigen;
                AlmacenInfo almacenDestinoAux = info.AlmacenDestino;

                AlmacenMovimientoDetalle detalleOrigen  = movimientoOrigen.ListaAlmacenMovimientoDetalle.FirstOrDefault();
                AlmacenMovimientoDetalle detalleDestino = movimientoDestino.ListaAlmacenMovimientoDetalle.FirstOrDefault();
                if (detalleOrigen == null || detalleDestino == null)
                {
                    return(null);
                }
                info.CantidadTraspasarOrigen  = detalleOrigen.Cantidad;
                info.CantidadTraspasarDestino = detalleDestino.Cantidad;
                info.PrecioTraspasoOrigen     = detalleOrigen.Precio;
                info.PrecioTraspasoDestino    = detalleDestino.Precio;
                info.ImporteTraspaso          = detalleDestino.Importe;

                info.AlmacenDestino = almacenOrigenAux;
                info.AlmacenOrigen  = almacenDestinoAux;

                using (var transaction = new TransactionScope())
                {
                    long almacenMovimientoEntradaID = 0;
                    long almacenMovimientoSalidaID  = 0;

                    if (movimientoDestino != null)
                    {
                        almacenMovimientoEntradaID = GenerarMovimientoEntradaCancelacion(movimientoDestino, info.Usuario);
                        almacenMovimientoSalidaID  = GenerarMovimientoSalidaCancelacion(movimientoOrigen, info.Usuario);
                    }

                    var cancelacionMovimientoEntrada = new CancelacionMovimientoInfo
                    {
                        TipoCancelacion = new TipoCancelacionInfo
                        {
                            TipoCancelacionId = TipoCancelacionEnum.TraspasoMpPaMed.GetHashCode()
                        },
                        Pedido = new PedidoInfo(),
                        AlmacenMovimientoOrigen = new AlmacenMovimientoInfo
                        {
                            AlmacenMovimientoID = almacenMovimientoEntradaID
                        },
                        AlmacenMovimientoCancelado = new AlmacenMovimientoInfo
                        {
                            AlmacenMovimientoID = movimientoOrigen.AlmacenMovimientoID
                        },
                        Activo            = EstatusEnum.Activo,
                        Justificacion     = traspasoCancelar.Justificacion,
                        UsuarioCreacionID = info.Usuario.UsuarioID
                    };
                    CancelacionMovimientoInfo movimientoCancelado = cancelacionMovimientoBL.Guardar(cancelacionMovimientoEntrada);


                    if (movimientoDestino != null)
                    {
                        var cancelacionMovimientoSalida = new CancelacionMovimientoInfo
                        {
                            TipoCancelacion = new TipoCancelacionInfo
                            {
                                TipoCancelacionId = TipoCancelacionEnum.TraspasoMpPaMed.GetHashCode()
                            },
                            Pedido = new PedidoInfo(),
                            AlmacenMovimientoOrigen = new AlmacenMovimientoInfo
                            {
                                AlmacenMovimientoID = almacenMovimientoSalidaID
                            },
                            AlmacenMovimientoCancelado = new AlmacenMovimientoInfo
                            {
                                AlmacenMovimientoID = movimientoDestino.AlmacenMovimientoID
                            },
                            Activo            = EstatusEnum.Activo,
                            Justificacion     = traspasoCancelar.Justificacion,
                            UsuarioCreacionID = info.Usuario.UsuarioID
                        };
                        cancelacionMovimientoBL.Guardar(cancelacionMovimientoSalida);
                    }


                    traspasoCancelar.Activo = EstatusEnum.Inactivo;
                    traspasoCancelar.UsuarioModificacionID = info.Usuario.UsuarioID;

                    traspasoMateriaPrimaDAL.Actualizar(traspasoCancelar);


                    movimientoOrigen.UsuarioModificacionID = info.Usuario.UsuarioID;
                    if (movimientoDestino != null)
                    {
                        movimientoDestino.UsuarioModificacionID = info.Usuario.UsuarioID;
                    }

                    movimientoOrigen.Status = Estatus.CanceladoInv.GetHashCode();
                    if (movimientoDestino != null)
                    {
                        movimientoDestino.Status = Estatus.CanceladoInv.GetHashCode();
                    }


                    almacenMovimientoBL.ActualizarEstatus(movimientoOrigen);
                    almacenMovimientoBL.ActualizarEstatus(movimientoDestino);

                    AlmacenMovimientoInfo movimientoCancelacion =
                        almacenMovimientoBL.ObtenerPorIDCompleto(almacenMovimientoEntradaID);
                    if (movimientoCancelacion == null)
                    {
                        return(null);
                    }

                    info.FolioTraspaso       = traspasoCancelar.FolioTraspaso;
                    info.FechaTraspaso       = movimientoCancelado.FechaCancelacion;
                    info.AlmacenMovimientoID = movimientoDestino.AlmacenMovimientoID;
                    MemoryStream pdfPoliza = null;
                    if (info.AlmacenOrigen.AlmacenID != info.AlmacenDestino.AlmacenID)
                    {
                        info.EsCancelacion = true;
                        var productoBL = new ProductoBL();
                        info.ProductoOrigen  = productoBL.ObtenerPorID(info.ProductoOrigen);
                        info.ProductoDestino = info.ProductoOrigen;
                        PolizaAbstract     poliza       = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.EntradaTraspaso);
                        IList <PolizaInfo> listaPolizas = poliza.GeneraPoliza(info);
                        pdfPoliza = poliza.ImprimePoliza(info, listaPolizas);

                        if (listaPolizas != null && listaPolizas.Any())
                        {
                            listaPolizas.ToList().ForEach(datos =>
                            {
                                datos.OrganizacionID         = info.Usuario.Organizacion.OrganizacionID;
                                datos.UsuarioCreacionID      = info.Usuario.UsuarioID;
                                datos.Activo                 = EstatusEnum.Activo;
                                datos.ArchivoEnviadoServidor = 1;
                            });
                            var polizaDAL = new PolizaDAL();
                            polizaDAL.CrearServicioPI(listaPolizas, TipoPoliza.EntradaTraspaso);
                        }
                    }
                    transaction.Complete();
                    resultado.Add(info.FolioTraspaso, pdfPoliza);
                    return(resultado);
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }