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