/// <summary> /// Metodo para Crear un nuevo registro de TipoPoliza /// </summary> /// <param name="info">Valores de la entidad que será creada</param> internal int Crear(TipoPolizaInfo info) { try { Logger.Info(); Dictionary <string, object> parameters = AuxTipoPolizaDAL.ObtenerParametrosCrear(info); int result = Create("TipoPoliza_Crear", 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); } }
/// <summary> /// Metodo para Guardar/Modificar una entidad TipoPoliza /// </summary> /// <param name="info"></param> internal int Guardar(TipoPolizaInfo info) { try { Logger.Info(); var tipoPolizaDAL = new TipoPolizaDAL(); int result = info.TipoPolizaID; if (info.TipoPolizaID == 0) { result = tipoPolizaDAL.Crear(info); } else { tipoPolizaDAL.Actualizar(info); } return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene un registro de TipoPoliza /// </summary> /// <param name="descripcion">Descripción de la TipoPoliza</param> /// <returns></returns> internal TipoPolizaInfo ObtenerPorDescripcion(string descripcion) { try { Logger.Info(); Dictionary <string, object> parameters = AuxTipoPolizaDAL.ObtenerParametrosPorDescripcion(descripcion); DataSet ds = Retrieve("TipoPoliza_ObtenerPorDescripcion", parameters); TipoPolizaInfo result = null; if (ValidateDataSet(ds)) { result = MapTipoPolizaDAL.ObtenerPorDescripcion(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 un flujo de datos /// con la poliza de compra /// </summary> /// <param name="contenedorEntradaMateriaPrima"></param> /// <param name="polizaClave"></param> /// <returns></returns> private MemoryStream ReimpresionPolizaCompra(ContenedorEntradaMateriaPrimaInfo contenedorEntradaMateriaPrima , TipoPolizaInfo polizaClave) { var polizaBL = new PolizaBL(); IList <PolizaInfo> polizasVenta = polizaBL.ObtenerPoliza(TipoPoliza.EntradaCompra, contenedorEntradaMateriaPrima.Contrato.Organizacion. OrganizacionID, contenedorEntradaMateriaPrima.Contrato.Fecha , contenedorEntradaMateriaPrima.Contrato.Folio. ToString(), polizaClave.ClavePoliza, 1); MemoryStream stream = null; if (polizasVenta != null) { var entradaProductoBL = new EntradaProductoBL(); contenedorEntradaMateriaPrima = entradaProductoBL.ObtenerPorFolioEntradaContrato(contenedorEntradaMateriaPrima.Contrato.Folio, contenedorEntradaMateriaPrima.Contrato.ContratoId, contenedorEntradaMateriaPrima.Contrato.Organizacion.OrganizacionID); var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.EntradaCompra); polizasVenta = poliza.GeneraPoliza(contenedorEntradaMateriaPrima); stream = poliza.ImprimePoliza(contenedorEntradaMateriaPrima, polizasVenta); } return(stream); }
/// <summary> /// Reimprime una poliza /// </summary> /// <param name="tipoPoliza"></param> /// <param name="polizaModel"></param> /// <param name="polizaClave"> </param> public IList <ResultadoPolizaModel> ReimprimirMultiplePoliza(TipoPoliza tipoPoliza, ReimpresionPolizaModel polizaModel , TipoPolizaInfo polizaClave) { try { Logger.Info(); IList <ResultadoPolizaModel> pdf = null; switch (tipoPoliza) { case TipoPoliza.PaseProceso: pdf = ReimpresionPolizaPaseProceso(polizaModel.Pedido, polizaClave); break; } return(pdf); } catch (ExcepcionServicio) { throw; } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Inicializa el Contexto /// </summary> private void InicializaContexto() { Contexto = new TipoPolizaInfo { UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(), }; }
public void ObtenerTipoPolizaPorId() { var tipoPolizaPL = new TipoPolizaPL(); TipoPolizaInfo tipoPoliza = tipoPolizaPL.ObtenerPorID(1); Assert.IsNotNull(tipoPoliza); Assert.IsTrue(tipoPoliza.Descripcion.Length > 0); }
/// <summary> /// Obtiene los valores para la reimpresion de /// la poliza de salida por venta /// </summary> /// <param name="ventaGanado"></param> /// <param name="polizaClave"> </param> private MemoryStream ReimprimirPolizaVenta(VentaGanadoInfo ventaGanado, TipoPolizaInfo polizaClave) { var polizaBL = new PolizaBL(); int organizacionID = ventaGanado.Lote.OrganizacionID; var ventaGanadoBL = new VentaGanadoBL(); List <ContenedorVentaGanado> ventasGanado = ventaGanadoBL.ObtenerVentaGanadoPorTicketPoliza(ventaGanado.FolioTicket, organizacionID); MemoryStream pdf = null; var tipoPoliza = TipoPoliza.SalidaVenta; IList <PolizaInfo> polizasVenta = polizaBL.ObtenerPoliza(tipoPoliza, organizacionID, ventaGanado.FechaVenta , ventaGanado.FolioTicket.ToString(), polizaClave.ClavePoliza, 1); var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(tipoPoliza); var polizaGenerada = false; if (polizasVenta == null) { if (ventasGanado != null && ventasGanado.Any()) { var animalCostoBL = new AnimalCostoBL(); var detalleVentas = new List <VentaGanadoDetalleInfo>(); ventasGanado.ForEach(det => detalleVentas.Add(det.VentaGanadoDetalle)); List <AnimalInfo> animalesGenerarPoliza = detalleVentas.Select(ani => new AnimalInfo { AnimalID = ani.Animal.AnimalID, OrganizacionIDEntrada = organizacionID }).ToList(); List <AnimalCostoInfo> animalCosto = animalCostoBL.ObtenerCostosAnimal(animalesGenerarPoliza); if (animalCosto != null && !animalCosto.Any(id => id.CostoID == 1 && id.Importe == 0)) { polizasVenta = poliza.GeneraPoliza(ventasGanado); polizasVenta.ToList().ForEach(org => org.OrganizacionID = organizacionID); polizaBL.GuardarServicioPI(polizasVenta, tipoPoliza); polizaGenerada = true; } } } if (polizasVenta != null && polizasVenta.Any()) { if (ventasGanado != null && ventasGanado.Any()) { if (!polizaGenerada) { polizasVenta = poliza.GeneraPoliza(ventasGanado); } pdf = poliza.ImprimePoliza(ventasGanado, polizasVenta); } } return(pdf); }
private void CargaTipoPoliza() { var tipoPolizaPL = new TipoPolizaPL(); var tipoPolizaInfo = new TipoPolizaInfo { TipoPolizaID = 0, Descripcion = Properties.Resources.cbo_Seleccione, }; IList <TipoPolizaInfo> listaTipoPoliza = tipoPolizaPL.ObtenerTodos(EstatusEnum.Activo); listaTipoPoliza.Insert(0, tipoPolizaInfo); cmbTipoPoliza.ItemsSource = listaTipoPoliza; cmbTipoPoliza.SelectedItem = tipoPolizaInfo; }
/// <summary> /// Evento que se ejecuta mientras se esta cerrando la ventana /// </summary> /// <param name="e"></param> protected override void OnClosing(CancelEventArgs e) { if (confirmaSalir) { MessageBoxResult result = SkMessageBox.Show(this, Properties.Resources.Msg_CerrarSinGuardar, MessageBoxButton.YesNo, MessageImage.Question); if (result == MessageBoxResult.Yes) { Contexto = null; } else { e.Cancel = true; } } }
/// <summary> /// Metodo que valida los datos para guardar /// </summary> /// <returns></returns> private bool ValidaGuardar() { bool resultado = true; string mensaje = string.Empty; try { if (string.IsNullOrWhiteSpace(txtDescripcion.Text) || Contexto.Descripcion == string.Empty) { resultado = false; mensaje = Properties.Resources.TipoPolizaEdicion_MsgDescripcionRequerida; txtDescripcion.Focus(); } else if (string.IsNullOrWhiteSpace(txtClavePoliza.Text) || Contexto.ClavePoliza == string.Empty) { resultado = false; mensaje = Properties.Resources.TipoPolizaEdicion_MsgClavePolizaRequerida; txtClavePoliza.Focus(); } else { int tipoPolizaId = Extensor.ValorEntero(txtTipoPolizaID.Text); string descripcion = txtDescripcion.Text.Trim(); var tipoPolizaPL = new TipoPolizaPL(); TipoPolizaInfo tipoPoliza = tipoPolizaPL.ObtenerPorDescripcion(descripcion); if (tipoPoliza != null && (tipoPolizaId == 0 || tipoPolizaId != tipoPoliza.TipoPolizaID)) { resultado = false; mensaje = string.Format(Properties.Resources.TipoPolizaEdicion_MsgDescripcionExistente, tipoPoliza.TipoPolizaID); } } } catch (Exception ex) { throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } if (!string.IsNullOrWhiteSpace(mensaje)) { SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning); } return(resultado); }
/// <summary> /// Obtiene los Tipos de Poliza /// </summary> private void ObtenerTiposPoliza() { var tiposPolizaPL = new TipoPolizaPL(); IList <TipoPolizaInfo> tiposPoliza = tiposPolizaPL.ObtenerTodos(EstatusEnum.Activo); if (tiposPoliza == null) { tiposPoliza = new List <TipoPolizaInfo>(); } var tipoPoliza = new TipoPolizaInfo { TipoPolizaID = 0, Descripcion = Properties.Resources.cbo_Seleccione, ImprimePoliza = true }; tiposPoliza.Insert(0, tipoPoliza); Contexto.TiposPoliza = tiposPoliza.Where(imp => imp.ImprimePoliza).ToList(); }
/// <summary> /// Obtiene una entidad por su descripción /// </summary> /// <param name="descripcion"></param> /// <returns></returns> public TipoPolizaInfo ObtenerPorDescripcion(string descripcion) { try { Logger.Info(); var tipoPolizaBL = new TipoPolizaBL(); TipoPolizaInfo result = tipoPolizaBL.ObtenerPorDescripcion(descripcion); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo para Guardar/Modificar una entidad TipoPoliza /// </summary> /// <param name="info">Representa la entidad que se va a grabar</param> public int Guardar(TipoPolizaInfo info) { try { Logger.Info(); var tipoPolizaBL = new TipoPolizaBL(); int result = tipoPolizaBL.Guardar(info); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una entidad TipoPoliza por su Id /// </summary> /// <param name="tipoPolizaID">Obtiene una entidad TipoPoliza por su Id</param> /// <returns></returns> internal TipoPolizaInfo ObtenerPorID(int tipoPolizaID) { try { Logger.Info(); var tipoPolizaDAL = new TipoPolizaDAL(); TipoPolizaInfo result = tipoPolizaDAL.ObtenerPorID(tipoPolizaID); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
private void ObtenerPoliza() { var tiposPlizaPL = new TipoPolizaPL(); IList <TipoPolizaInfo> tiposPoliza = tiposPlizaPL.ObtenerTodos(EstatusEnum.Activo); if (tiposPoliza == null) { tiposPoliza = new List <TipoPolizaInfo>(); } var tipoPoliza = new TipoPolizaInfo { TipoPolizaID = 0, Descripcion = Properties.Resources.cbo_Seleccione }; tiposPoliza.Insert(0, tipoPoliza); cboTipoPoliza.ItemsSource = tiposPoliza; cboTipoPoliza.SelectedValuePath = "TipoPolizaID"; cboTipoPoliza.DisplayMemberPath = "Descripcion"; }
/// <summary> /// Obtiene parametros para crear /// </summary> /// <param name="info">Valores de la entidad</param> /// <returns></returns> internal static Dictionary <string, object> ObtenerParametrosCrear(TipoPolizaInfo info) { try { Logger.Info(); var parametros = new Dictionary <string, object> { { "@Descripcion", info.Descripcion }, { "@ClavePoliza", info.ClavePoliza }, { "@Activo", info.Activo }, { "@UsuarioCreacionID", info.UsuarioCreacionID }, }; 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> internal static TipoPolizaInfo ObtenerPorID(DataSet ds) { try { Logger.Info(); DataTable dt = ds.Tables[ConstantesDAL.DtDatos]; TipoPolizaInfo entidad = (from info in dt.AsEnumerable() select new TipoPolizaInfo { TipoPolizaID = info.Field <int>("TipoPolizaID"), Descripcion = info.Field <string>("Descripcion"), ClavePoliza = info.Field <string>("ClavePoliza"), Activo = info.Field <bool>("Activo").BoolAEnum(), }).First(); return(entidad); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
private IList <PolizaInfo> ObtenerPoliza(GastoInventarioInfo gastoInventario) { var polizasGastosInventario = new List <PolizaInfo>(); var costos = new List <int> { gastoInventario.Costo.CostoID }; var retencionBL = new RetencionBL(); var retenciones = retencionBL.ObtenerRetencionesConCosto(costos); IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP(); TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.GastosInventario.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.GastosInventario)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; var ref3 = new StringBuilder(); ref3.Append("03"); ref3.Append( string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft( 10, ' ')); ref3.Append(new Random(10).Next(10, 20)); ref3.Append(new Random(30).Next(30, 40)); ref3.Append(DateTime.Now.Millisecond); ref3.Append(postFijoRef3); //string numeroReferencia = ObtenerNumeroReferencia; string numeroReferencia = ObtenerNumeroReferenciaFolio(gastoInventario.FolioGasto); DateTime fecha = gastoInventario.FechaGasto; string archivoFolio = ObtenerArchivoFolio(fecha); OrganizacionInfo organizacion = ObtenerOrganizacionIVA(gastoInventario.Organizacion.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } bool esProveedor = gastoInventario.Proveedor != null && gastoInventario.Proveedor.ProveedorID > 0; bool tieneRetencion = gastoInventario.Retencion; var renglon = 0; ClaveContableInfo claveContableInfo = ObtenerCuentaInventario(gastoInventario.Costo , gastoInventario.Organizacion.OrganizacionID , 0); CuentaSAPInfo cuentaSapProvision = null; if (!esProveedor) { cuentaSapProvision = cuentasSap.FirstOrDefault( clave => clave.CuentaSAPID == gastoInventario.CuentaSAP.CuentaSAPID); if (cuentaSapProvision == null) { cuentaSapProvision = cuentasSap.FirstOrDefault( clave => clave.CuentaSAP.Equals(gastoInventario.CuentaGasto, StringComparison.InvariantCultureIgnoreCase)); if (cuentaSapProvision == null) { throw new ExcepcionServicio( string.Format("No se encuentra configurada la cuenta de provisión, para el costo {0}", gastoInventario.Costo.Descripcion)); } } } string complementoConcepto; if (gastoInventario.Corral != null) { complementoConcepto = string.Format("Corral {0}", gastoInventario.Corral.Codigo); } else { complementoConcepto = string.Format("{0} Corrales", gastoInventario.TotalCorrales); } PolizaInfo polizaEntrada; if (esProveedor) { if (!gastoInventario.IVA && !tieneRetencion) { renglon++; var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe * -1).ToString("F2") : gastoInventario.Importe.ToString("F2")), Renglon = Convert.ToString(renglon), Division = organizacion.Division, ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableInfo.Valor, ArchivoFolio = archivoFolio, DescripcionCosto = claveContableInfo.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), ClaveProveedor = gastoInventario.Proveedor.CodigoSAP, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? gastoInventario.Importe.ToString("F2") : (gastoInventario.Importe * -1).ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), ArchivoFolio = archivoFolio, DescripcionCosto = gastoInventario.Proveedor.Descripcion, PesoOrigen = 0, Division = organizacion.Division, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); } else { if (gastoInventario.IVA) { CuentaSAPInfo cuentaIva = cuentasSap.FirstOrDefault( clave => clave.CuentaSAP.Equals(organizacion.Iva.CuentaRecuperar.ClaveCuenta)); if (cuentaIva == null) { throw new ExcepcionServicio(string.Format("No se encuentra configurada la cuenta de iva, para la organización.")); } renglon++; var importeIva = gastoInventario.Importe * (organizacion.Iva.TasaIva / 100); var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe * -1).ToString("F2") : gastoInventario.Importe.ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableInfo.Valor, ArchivoFolio = archivoFolio, DescripcionCosto = claveContableInfo.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (importeIva * -1).ToString("F2") : importeIva.ToString("F2")) , Renglon = Convert.ToString(renglon), ImporteIva = gastoInventario.Importe.ToString("F2"), ClaveImpuesto = ClaveImpuesto, CondicionImpuesto = CondicionImpuesto, IndicadorImpuesto = organizacion.Iva.IndicadorIvaRecuperar, Ref3 = ref3.ToString(), Division = organizacion.Division, Cuenta = organizacion.Iva.CuentaRecuperar.ClaveCuenta, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaIva.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaveProveedor = gastoInventario.Proveedor.CodigoSAP, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe + importeIva).ToString("F2") : ((gastoInventario.Importe + importeIva) * -1).ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), ArchivoFolio = archivoFolio, DescripcionCosto = gastoInventario.Proveedor.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); } if (tieneRetencion) { RetencionInfo retencion; if (retenciones != null && retenciones.Any()) { retencion = retenciones.Where( costo => costo.CostoID.Equals(gastoInventario.Costo.CostoID)). Select(ret => ret).FirstOrDefault(); if (retencion == null) { throw new ExcepcionServicio(string.Format("No se encuentra configurada retención para el costo {0}", gastoInventario.Costo.Descripcion)); } } else { throw new ExcepcionServicio(string.Format("No se encuentra configurada retención para el costo {0}", gastoInventario.Costo.Descripcion)); } var parametrosRetencion = new StringBuilder(); parametrosRetencion.Append(String.Format("{0}{1}" , retencion.IndicadorRetencion , retencion.TipoRetencion)); var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaveProveedor = gastoInventario.Proveedor.CodigoSAP, ClaseDocumento = postFijoRef3, IndicadorImpuesto = parametrosRetencion.ToString(), Importe = string.Format("{0}{1}", Cancelacion ? string.Empty : "-", "0"), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), CodigoRetencion = retencion.IndicadorImpuesto, TipoRetencion = retencion.IndicadorRetencion, ArchivoFolio = archivoFolio, DescripcionCosto = gastoInventario.Proveedor.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); if (!gastoInventario.IVA) { renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaveProveedor = gastoInventario.Proveedor.CodigoSAP, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? gastoInventario.Importe.ToString("F2") : (gastoInventario.Importe * -1).ToString("F2")) , Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), ArchivoFolio = archivoFolio, DescripcionCosto = gastoInventario.Proveedor.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe * -1).ToString("F2") : gastoInventario.Importe.ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableInfo.Valor, ArchivoFolio = archivoFolio, DescripcionCosto = claveContableInfo.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); } } } } else { renglon++; var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? (gastoInventario.Importe * -1).ToString("F2") : gastoInventario.Importe.ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableInfo.Valor, ArchivoFolio = archivoFolio, DescripcionCosto = claveContableInfo.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = gastoInventario.FechaGasto, Folio = gastoInventario.FolioGasto.ToString(CultureInfo.InvariantCulture), Division = organizacion.Division, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", Cancelacion ? gastoInventario.Importe.ToString("F2") : (gastoInventario.Importe * -1).ToString("F2")), CentroCosto = gastoInventario.CentroCosto, Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSapProvision.CuentaSAP, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSapProvision.Descripcion, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1},{2}", tipoMovimiento, gastoInventario.FolioGasto , complementoConcepto), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaEntrada = GeneraRegistroPoliza(datos); polizasGastosInventario.Add(polizaEntrada); } return(polizasGastosInventario); }
private IList <PolizaInfo> ObtenerPoliza(List <AnimalCostoInfo> costosAnimales) { var polizasSalidaMuerte = new List <PolizaInfo>(); var costosAgrupados = costosAnimales.Where(imp => imp.Importe > 0).GroupBy(costo => new { costo.CostoID, costo.AnimalID }) .Select(animal => new { Importe = animal.Sum(imp => imp.Importe), animal.Key.CostoID, animal.Key.AnimalID, Arete = animal.Select(ani => ani.Arete).FirstOrDefault(), FolioReferencia = animal.Select(folio => folio.FolioReferencia).FirstOrDefault(), FechaCosto = animal.Select(fecha => fecha.FechaCosto).FirstOrDefault(), OrganizacionID = animal.Select(org => org.OrganizacionID).FirstOrDefault() }).ToList(); if (costosAgrupados != null && costosAgrupados.Any()) { TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.SalidaMuerte.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.SalidaMuerte)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; var linea = 1; var ref3 = new StringBuilder(); ref3.Append("03"); ref3.Append( string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft( 10, ' ')); ref3.Append(new Random(10).Next(10, 20)); ref3.Append(new Random(30).Next(30, 40)); ref3.Append(DateTime.Now.Millisecond); ref3.Append(postFijoRef3); //string numeroReferencia = ObtenerNumeroReferencia; if (costos == null) { costos = ObtenerCostos(); } List <AnimalInfo> animales = costosAgrupados.Select(ani => new AnimalInfo { AnimalID = ani.AnimalID }).ToList(); List <AnimalMovimientoInfo> animalesMovimiento = ObtenerUltimoMovimiento(animales); for (var indexCostos = 0; indexCostos < costosAgrupados.Count; indexCostos++) { var costoAnimal = costosAgrupados[indexCostos]; CostoInfo costo = costos.FirstOrDefault( tipo => tipo.CostoID == costoAnimal.CostoID); if (costo == null) { costo = new CostoInfo(); } string numeroReferencia = costoAnimal.Arete; OrganizacionInfo organizacion = ObtenerOrganizacionIVA(costoAnimal.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } ClaveContableInfo claveContableAbono = ObtenerCuentaInventario(costo, organizacion.OrganizacionID, organizacion.TipoOrganizacion.TipoOrganizacionID); if (claveContableAbono == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA EL COSTO", costo.Descripcion)); } ClaveContableInfo claveContableCargo = ObtenerCuentaInventario(costo, organizacion.OrganizacionID, TipoPoliza.SalidaMuerte); if (claveContableCargo == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA EL COSTO", costo.Descripcion)); } ParametroOrganizacionInfo parametroCentroCosto = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTACENTROCOSTOENG.ToString()); if (parametroCentroCosto == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } int peso = animalesMovimiento.Where(kilos => kilos.AnimalID == costoAnimal.AnimalID && kilos.TipoMovimientoID == TipoMovimiento.Muerte.GetHashCode()) .Select(proyeccion => proyeccion.Peso).FirstOrDefault(); DateTime fecha = animalesMovimiento.Where(kilos => kilos.AnimalID == costoAnimal.AnimalID && kilos.TipoMovimientoID == TipoMovimiento.Muerte.GetHashCode()) .Select(proyeccion => proyeccion.FechaMovimiento).FirstOrDefault(); if (fecha != null && fecha > default(DateTime)) { string archivoFolio = ObtenerArchivoFolio(fecha); var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = numeroReferencia, Importe = string.Format("{0}", costoAnimal.Importe.ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableCargo.Valor, Division = organizacion.Division, ArchivoFolio = archivoFolio, CentroCosto = claveContableCargo.Valor.StartsWith(PrefijoCuentaCentroCosto) || claveContableCargo.Valor.StartsWith(PrefijoCuentaCentroGasto) ? parametroCentroCosto.Valor : string.Empty, PesoOrigen = peso, TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, ComplementoRef1 = string.Empty, Concepto = String.Format("{0}-{1} {2} kgs", tipoMovimiento, numeroReferencia, peso), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaMuerte.Add(polizaSalida); datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = numeroReferencia, Importe = string.Format("{0}", (costoAnimal.Importe * -1).ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableAbono.Valor, ArchivoFolio = archivoFolio, Division = organizacion.Division, PesoOrigen = peso, TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, Concepto = String.Format("{0}-{1} {2} kgs", tipoMovimiento, numeroReferencia, peso), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaMuerte.Add(polizaSalida); } } } return(polizasSalidaMuerte); }
private IList <PolizaInfo> ObtenerPoliza(TraspasoMpPaMedInfo traspasoMp) { var polizasSalidaTraspaso = new List <PolizaInfo>(); IList <ClaseCostoProductoInfo> cuentasAlmacenProductoSalida = ObtenerCostosProducto(traspasoMp.AlmacenOrigen.AlmacenID); IList <ClaseCostoProductoInfo> cuentasAlmacenProductoEntrada = ObtenerCostosProducto(traspasoMp.AlmacenDestino.AlmacenID); if (cuentasAlmacenProductoSalida == null) { throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén origen"); } if (cuentasAlmacenProductoEntrada == null) { throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén de destino"); } TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.EntradaTraspaso.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.EntradaTraspaso)); } IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP(); string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; var linea = 1; //TO DO REVISAR SI CAMBIARA EL REF 3 var ref3 = new StringBuilder(); ref3.Append("03"); ref3.Append( string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft( 10, ' ')); ref3.Append(new Random(10).Next(10, 20)); ref3.Append(new Random(30).Next(30, 40)); ref3.Append(DateTime.Now.Millisecond); ref3.Append(postFijoRef3); var almacenMovimientoBL = new AlmacenMovimientoBL(); AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerPorId(traspasoMp.AlmacenMovimientoID); string numeroReferencia = ObtenerNumeroReferenciaFolio(almacenMovimiento.FolioMovimiento); //string numeroReferencia = ObtenerNumeroReferencia; DateTime fecha = traspasoMp.FechaTraspaso; string archivoFolio = ObtenerArchivoFolio(fecha); var organizacionBL = new OrganizacionBL(); OrganizacionInfo organizacionOrigen = organizacionBL.ObtenerPorAlmacenID(traspasoMp.AlmacenOrigen.AlmacenID); if (organizacionOrigen == null) { organizacionOrigen = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } OrganizacionInfo organizacionDestino = organizacionBL.ObtenerPorAlmacenID(traspasoMp.AlmacenDestino.AlmacenID); if (organizacionDestino == null) { organizacionDestino = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamiliaSalida = ObtenerCostosSubFamilia(traspasoMp.AlmacenOrigen.AlmacenID); IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamiliaEntrada = ObtenerCostosSubFamilia(traspasoMp.AlmacenDestino.AlmacenID); ParametroOrganizacionInfo parametroCentroCostoOrigen = ObtenerParametroOrganizacionPorClave(organizacionOrigen.OrganizacionID, ParametrosEnum.CTACENTROCOSTOMP.ToString()); if (parametroCentroCostoOrigen == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } ParametroOrganizacionInfo parametroCentroCostoDestino = ObtenerParametroOrganizacionPorClave(organizacionDestino.OrganizacionID, ParametrosEnum.CTACENTROCOSTOMP.ToString()); if (parametroCentroCostoDestino == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } bool afectaCosto; CuentaSAPInfo claveContableCargo; afectaCosto = ValidarAfectacionCuentaCosto(traspasoMp.ProductoOrigen); if (!afectaCosto && (traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) || traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.GeneralGanadera.GetHashCode()) { var cuentaSapSubFamiliaEntrada = cuentasSubFamiliaEntrada.FirstOrDefault( cuenta => cuenta.SubFamiliaID == traspasoMp.ProductoOrigen.SubFamilia.SubFamiliaID); if (cuentaSapSubFamiliaEntrada == null) { cuentaSapSubFamiliaEntrada = new CuentaAlmacenSubFamiliaInfo(); } claveContableCargo = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSubFamiliaEntrada.CuentaSAPID); } else { var cuentaSapEntrada = cuentasAlmacenProductoEntrada.FirstOrDefault( cuenta => cuenta.ProductoID == traspasoMp.ProductoOrigen.ProductoId); if (cuentaSapEntrada == null) { cuentaSapEntrada = new ClaseCostoProductoInfo(); } claveContableCargo = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapEntrada.CuentaSAPID); } if (traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.CentroAcopio.GetHashCode()) { ParametroOrganizacionInfo cuentaMedicamento = ObtenerParametroOrganizacionPorClave(organizacionDestino.OrganizacionID, ParametrosEnum.CuentaMedicamentoTransito.ToString()); if (cuentaMedicamento == null) { cuentaMedicamento = new ParametroOrganizacionInfo { Valor = string.Empty }; } claveContableCargo = cuentasSap.FirstOrDefault( sap => sap.CuentaSAP.Equals(cuentaMedicamento.Valor, StringComparison.InvariantCultureIgnoreCase)); } if (claveContableCargo == null) { throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}", traspasoMp.ProductoOrigen.ProductoDescripcion)); } linea = 0; linea++; var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = numeroReferencia, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", traspasoMp.ImporteTraspaso.ToString("F2")), Renglon = Convert.ToString(linea), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableCargo.CuentaSAP, CentroCosto = claveContableCargo.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto) ? parametroCentroCostoDestino.Valor : string.Empty, Division = organizacionDestino.Division, ArchivoFolio = archivoFolio, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, numeroReferencia, traspasoMp.ProductoOrigen.ProductoDescripcion, string.Format("{0} {1}.", traspasoMp.CantidadTraspasarDestino.ToString("N2"), traspasoMp.ProductoOrigen.UnidadMedicion.ClaveUnidad), traspasoMp.PrecioTraspasoDestino.ToString("C2")), Sociedad = organizacionDestino.Sociedad, DescripcionProducto = claveContableCargo.Descripcion, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacionDestino.Sociedad), }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaTraspaso.Add(polizaSalida); #region CuentaAbono CuentaSAPInfo claveContableAbono = null; afectaCosto = ValidarAfectacionCuentaCosto(traspasoMp.ProductoOrigen); if (!afectaCosto && (traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) || traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.GeneralGanadera.GetHashCode()) { var cuentaSapSubFamiliaSalida = cuentasSubFamiliaSalida.FirstOrDefault( cuenta => cuenta.SubFamiliaID == traspasoMp.ProductoOrigen.SubFamilia.SubFamiliaID); if (cuentaSapSubFamiliaSalida == null) { cuentaSapSubFamiliaSalida = new CuentaAlmacenSubFamiliaInfo(); } claveContableAbono = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSubFamiliaSalida.CuentaSAPID); } else { var cuentaSapSalida = cuentasAlmacenProductoSalida.FirstOrDefault( cuenta => cuenta.ProductoID == traspasoMp.ProductoOrigen.ProductoId); if (cuentaSapSalida == null) { cuentaSapSalida = new ClaseCostoProductoInfo(); } claveContableAbono = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSalida.CuentaSAPID); } if (traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.CentroAcopio.GetHashCode()) { ParametroOrganizacionInfo cuentaMedicamento = ObtenerParametroOrganizacionPorClave(organizacionOrigen.OrganizacionID, ParametrosEnum.CuentaMedicamentoTransito.ToString()); if (cuentaMedicamento == null) { cuentaMedicamento = new ParametroOrganizacionInfo { Valor = string.Empty }; } claveContableAbono = cuentasSap.FirstOrDefault( sap => sap.CuentaSAP.Equals(cuentaMedicamento.Valor, StringComparison.InvariantCultureIgnoreCase)); } if (claveContableAbono == null) { throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}", traspasoMp.ProductoOrigen.ProductoDescripcion)); } #endregion CuentaAbono linea++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = numeroReferencia, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", (traspasoMp.ImporteTraspaso * -1).ToString("F2")), Renglon = Convert.ToString(linea), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableAbono.CuentaSAP, ArchivoFolio = archivoFolio, CentroCosto = claveContableAbono.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto) ? parametroCentroCostoOrigen.Valor : string.Empty, Division = organizacionOrigen.Division, PesoOrigen = 0, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, numeroReferencia, traspasoMp.ProductoOrigen.ProductoDescripcion, string.Format("{0} {1}.", traspasoMp.CantidadTraspasarOrigen.ToString("N2"), traspasoMp.ProductoOrigen.UnidadMedicion.ClaveUnidad), traspasoMp.PrecioTraspasoOrigen.ToString("C2")), Sociedad = organizacionOrigen.Sociedad, DescripcionProducto = claveContableAbono.Descripcion, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacionOrigen.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaTraspaso.Add(polizaSalida); return(polizasSalidaTraspaso); }
/// <summary> /// Obtiene un flujo de datos /// para la generacion de la reimpresion /// de la poliza de Salida de Traspaso /// </summary> /// <param name="produccionFormula"></param> /// <param name="polizaClave"></param> /// <returns></returns> private MemoryStream ReimpresionPolizaProduccionAlimento(ProduccionFormulaInfo produccionFormula, TipoPolizaInfo polizaClave) { var polizaBL = new PolizaBL(); IList <PolizaInfo> polizasProduccionAlimento = polizaBL.ObtenerPoliza(TipoPoliza.ProduccionAlimento, produccionFormula.Organizacion.OrganizacionID, produccionFormula.FechaProduccion, produccionFormula.FolioFormula.ToString(CultureInfo.InvariantCulture), polizaClave.ClavePoliza, 1); MemoryStream stream = null; if (polizasProduccionAlimento != null) { var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.ProduccionAlimento); var produccionFormulaBL = new ProduccionFormulaBL(); using (var almacenDAL = new AlmacenDAL()) { var almacenMovimientoBL = new AlmacenMovimientoBL(); ProduccionFormulaInfo produccion = produccionFormulaBL.ObtenerPorIDCompleto(produccionFormula.ProduccionFormulaId); if (produccion != null) { AlmacenInfo almacenPlantaAlimento = almacenDAL.ObtenerAlmacenOrganizacionTipo(produccionFormula.Organizacion.OrganizacionID, TipoAlmacenEnum.PlantaDeAlimentos); AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerPorIDCompleto(produccion.AlmacenMovimientoSalidaID); var produccionFormulaDetalles = new List <ProduccionFormulaDetalleInfo>(); if (almacenMovimiento != null) { foreach (var detalle in produccion.ProduccionFormulaDetalle) { var movimiento = almacenMovimiento.ListaAlmacenMovimientoDetalle.FirstOrDefault( alm => alm.Producto.ProductoId == detalle.Producto.ProductoId && alm.AlmacenInventarioLoteId == detalle.AlmacenInventarioLoteID); if (movimiento == null) { continue; } detalle.CantidadProducto = movimiento.Cantidad; detalle.PrecioPromedio = movimiento.Precio; produccionFormulaDetalles.Add(detalle); } } if (almacenPlantaAlimento == null) { return(null); } produccion.ProduccionFormulaDetalle = produccionFormulaDetalles; produccion.Almacen = almacenPlantaAlimento; polizasProduccionAlimento = poliza.GeneraPoliza(produccion); stream = poliza.ImprimePoliza(produccion, polizasProduccionAlimento); } } } return(stream); }
/// <summary> /// Obtiene un flujo de datos /// para la generacion de la reimpresion /// de la poliza de Salida de Traspaso /// </summary> /// <param name="folioSolicitud"></param> /// <param name="polizaClave"></param> /// <returns></returns> private MemoryStream ReimpresionPolizaSalidaConsumo(FolioSolicitudInfo folioSolicitud, TipoPolizaInfo polizaClave) { var polizaBL = new PolizaBL(); IList <PolizaInfo> polizasSalidaConsumo = polizaBL.ObtenerPoliza(TipoPoliza.SalidaConsumo, folioSolicitud.OrganizacionID, folioSolicitud.FechaEntrega.HasValue ? folioSolicitud.FechaEntrega.Value : DateTime.MinValue, folioSolicitud.FolioSolicitud.ToString(CultureInfo.InvariantCulture), polizaClave.ClavePoliza, 1); MemoryStream stream = null; if (polizasSalidaConsumo != null) { var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaConsumo); var solicitudProductoDAL = new SolicitudProductoDAL(); using (var almacenDAL = new AlmacenDAL()) { var almacenMovimientoBL = new AlmacenMovimientoBL(); SolicitudProductoInfo solicitud = solicitudProductoDAL.ObtenerPorID(folioSolicitud.FolioID); if (solicitud != null) { AlmacenInfo almacenGeneral = almacenDAL.ObtenerAlmacenGeneralOrganizacion(folioSolicitud.OrganizacionID); AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerPorIDCompleto(solicitud.AlmacenMovimientoID.HasValue ? solicitud.AlmacenMovimientoID.Value : 0); if (almacenMovimiento != null) { foreach (var detalle in solicitud.Detalle) { var movimiento = almacenMovimiento.ListaAlmacenMovimientoDetalle.FirstOrDefault( alm => alm.Producto.ProductoId == detalle.Producto.ProductoId); if (movimiento == null) { continue; } detalle.PrecioPromedio = movimiento.Precio; } } if (almacenGeneral == null) { return(null); } solicitud.AlmacenGeneralID = almacenGeneral.AlmacenID; polizasSalidaConsumo = poliza.GeneraPoliza(solicitud); stream = poliza.ImprimePoliza(solicitud, polizasSalidaConsumo); } } } return(stream); }
/// <summary> /// Obtiene los valores para la reimpresion de /// la poliza de Salida por Muerte /// </summary> /// <param name="animal"></param> /// <param name="fecha"></param> /// <param name="polizaClave"> </param> private MemoryStream ReimprimirPolizaMuerte(AnimalInfo animal, DateTime fecha , TipoPolizaInfo polizaClave) { MemoryStream pdf = null; var animalCostoBL = new AnimalCostoBL(); var animalesGenerarPoliza = new List <AnimalInfo> { animal }; List <AnimalCostoInfo> animalCosto = animalCostoBL.ObtenerCostosAnimal(animalesGenerarPoliza); var animalCostoAgrupado = (from costo in animalCosto group costo by new { costo.AnimalID, costo.CostoID } into agrupado select new AnimalCostoInfo { AnimalID = agrupado.Key.AnimalID, CostoID = agrupado.Key.CostoID, Importe = agrupado.Sum(cos => cos.Importe), FolioReferencia = agrupado.Select(cos => cos.FolioReferencia).FirstOrDefault(), FechaCosto = agrupado.Select(cos => cos.FechaCosto).FirstOrDefault() }).ToList(); animalCosto = animalCostoAgrupado; if (animalCosto.Any()) { int organizacionID = animal.OrganizacionIDEntrada; int usuarioID = animal.UsuarioCreacionID; animalCosto.ForEach(org => { org.OrganizacionID = organizacionID; org.UsuarioCreacionID = usuarioID; }); var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaMuerte); var polizaBL = new PolizaBL(); for (int indexAnimal = 0; indexAnimal < animalesGenerarPoliza.Count; indexAnimal++) { IList <PolizaInfo> polizaSalidaMuerte = polizaBL.ObtenerPoliza(TipoPoliza.SalidaMuerte, organizacionID, fecha, animalesGenerarPoliza[indexAnimal]. AnimalID.ToString(), polizaClave.ClavePoliza, 1); animalCosto = animalCosto.Where(id => id.AnimalID == animalesGenerarPoliza[indexAnimal].AnimalID).ToList(); if (animalCosto.Any()) { animalCosto.ForEach(ani => ani.Arete = animalesGenerarPoliza[indexAnimal].Arete); } if (polizaSalidaMuerte == null) { if (animalCosto.Any(id => id.CostoID == 1)) { organizacionID = animal.OrganizacionIDEntrada; polizaSalidaMuerte = poliza.GeneraPoliza(animalCosto); polizaSalidaMuerte.ToList().ForEach(datos => { datos.OrganizacionID = organizacionID; datos.UsuarioCreacionID = usuarioID; datos.ArchivoEnviadoServidor = 1; }); polizaBL.GuardarServicioPI(polizaSalidaMuerte, TipoPoliza.SalidaMuerte); } } else { polizaSalidaMuerte = poliza.GeneraPoliza(animalCosto); } if ((polizaSalidaMuerte != null && polizaSalidaMuerte.Any()) && animalCosto.Any(id => id.CostoID == 1)) { pdf = poliza.ImprimePoliza(animalCosto, polizaSalidaMuerte); } } } return(pdf); }
/// <summary> /// Obtiene los valores para la reimpresion de /// la poliza de entrada de ganado /// </summary> /// <param name="entradaGanado"></param> /// <param name="polizaClave"> </param> private MemoryStream ReimprimirPolizaEntrada(EntradaGanadoInfo entradaGanado, TipoPolizaInfo polizaClave) { EntradaGanadoCosteoInfo entradaGanadoCosteo; var esGanadera = false; var entradaGanadoCosteoBL = new EntradaGanadoCosteoBL(); if (entradaGanado.TipoOrigen == TipoOrganizacion.Ganadera.GetHashCode()) { var interfaceSalidaTraspasoBL = new InterfaceSalidaTraspasoBL(); entradaGanadoCosteo = interfaceSalidaTraspasoBL.ObtenerDatosInterfaceSalidaTraspaso(entradaGanado.OrganizacionID, entradaGanado.FolioOrigen); esGanadera = true; EntradaGanadoCosteoInfo entradaGanadoCosteoComplementoCostos = entradaGanadoCosteoBL.ObtenerPorEntradaGanadoID(entradaGanado.EntradaGanadoID); entradaGanadoCosteo.ListaCostoEntrada.AddRange(entradaGanadoCosteoComplementoCostos.ListaCostoEntrada.Where(id => id.Costo.CostoID != 1)); } else { entradaGanadoCosteo = entradaGanadoCosteoBL.ObtenerPorEntradaGanadoID(entradaGanado.EntradaGanadoID); } MemoryStream pdf = null; if (entradaGanadoCosteo != null) { if (!esGanadera) { var cuentaPL = new CuentaBL(); const string CUENTA_INVENTARIO = "CTAINVTRAN"; entradaGanadoCosteo.ListaCostoEntrada.ForEach(costo => { if (!string.IsNullOrWhiteSpace(costo.DescripcionCuenta)) { return; } var claveContable = cuentaPL.ObtenerPorClaveCuentaOrganizacion(CUENTA_INVENTARIO, entradaGanado.OrganizacionOrigenID); if (claveContable != null) { costo.DescripcionCuenta = claveContable.Descripcion; } }); } var contenedorCosteoEntrada = new ContenedorCosteoEntradaGanadoInfo { EntradaGanado = entradaGanado, EntradaGanadoCosteo = entradaGanadoCosteo }; PolizaAbstract poliza; var tipoPoliza = esGanadera ? TipoPoliza.EntradaGanadoDurango : TipoPoliza.EntradaGanado; if (esGanadera) { poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(tipoPoliza); } else { poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(tipoPoliza); } var polizaBL = new PolizaBL(); int organizacionID = entradaGanado.OrganizacionID; IList <PolizaInfo> polizasEntrada = polizaBL.ObtenerPoliza(tipoPoliza, organizacionID, entradaGanado.FechaEntrada, entradaGanado.FolioEntrada.ToString(), polizaClave.ClavePoliza, 1); if (polizasEntrada != null) { polizasEntrada = poliza.GeneraPoliza(contenedorCosteoEntrada); pdf = poliza.ImprimePoliza(contenedorCosteoEntrada, polizasEntrada); } } return(pdf); }
/// <summary> /// Reimprime una poliza /// </summary> /// <param name="tipoPoliza"></param> /// <param name="polizaModel"></param> /// <param name="polizaClave"> </param> public MemoryStream ReimprimirPoliza(TipoPoliza tipoPoliza, ReimpresionPolizaModel polizaModel , TipoPolizaInfo polizaClave) { try { Logger.Info(); MemoryStream pdf = null; switch (tipoPoliza) { case TipoPoliza.EntradaGanado: pdf = ReimprimirPolizaEntrada(polizaModel.EntradaGanado, polizaClave); break; case TipoPoliza.ConsumoProducto: //pdf = ReimprimirPolizaConsumoProducto(polizaModel.Almacen, polizaClave); break; case TipoPoliza.SalidaVenta: pdf = ReimprimirPolizaVenta(polizaModel.VentaGanado, polizaClave); break; case TipoPoliza.SalidaMuerte: pdf = ReimprimirPolizaMuerte(polizaModel.Animal, polizaModel.Fecha, polizaClave); break; case TipoPoliza.EntradaCompra: pdf = ReimpresionPolizaCompra(polizaModel.ContenedorEntradaMateriaPrima, polizaClave); break; case TipoPoliza.SalidaTraspaso: pdf = ReimpresionPolizaSalidaTraspaso(polizaModel.SolicitudProducto, polizaClave); break; case TipoPoliza.SalidaConsumo: pdf = ReimpresionPolizaSalidaConsumo(polizaModel.SolicitudProducto, polizaClave); break; case TipoPoliza.ProduccionAlimento: pdf = ReimpresionPolizaProduccionAlimento(polizaModel.ProduccionFormula, polizaClave); break; case TipoPoliza.SalidaVentaProducto: pdf = ReimpresionSalidaVentaProducto(polizaModel.SalidaProducto, polizaClave); break; } return(pdf); } catch (ExcepcionServicio) { throw; } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
private IList <PolizaInfo> ObtenerPoliza(List <PolizaEntradaSalidaPorAjusteModel> ajustesDeInventario) { var polizasSalidaAjuste = new List <PolizaInfo>(); TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.EntradaAjuste.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.EntradaAjuste)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; var linea = 1; var almacenMovimientoBL = new AlmacenMovimientoBL(); List <AlmacenMovimientoDetalle> almancenMovimientosDetalle = ajustesDeInventario.Select(mov => new AlmacenMovimientoDetalle { AlmacenMovimientoDetalleID = mov.AlmacenMovimientoDetalleID }).ToList(); AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerMovimientoPorClaveDetalle(almancenMovimientosDetalle); if (almacenMovimiento == null) { almacenMovimiento = new AlmacenMovimientoInfo(); } string archivoFolio = ObtenerArchivoFolio(almacenMovimiento.FechaMovimiento); AlmacenInfo almacen = ObtenerAlmacen(almacenMovimiento.AlmacenID); if (almacen == null) { almacen = new AlmacenInfo { Organizacion = new OrganizacionInfo() }; } OrganizacionInfo organizacion = ObtenerOrganizacionIVA(almacen.Organizacion.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } var ref3 = new StringBuilder(); ref3.Append("03"); ref3.Append( string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft( 10, ' ')); ref3.Append(new Random(10).Next(10, 20)); ref3.Append(new Random(30).Next(30, 40)); ref3.Append(DateTime.Now.Millisecond); ref3.Append(postFijoRef3); //string numeroReferencia = ObtenerNumeroReferencia; string numeroReferencia = ObtenerNumeroReferenciaFolio(almacenMovimiento.FolioMovimiento); IList <CuentaSAPInfo> cuentasSAP = ObtenerCuentasSAP(); IList <ClaseCostoProductoInfo> almacenesProductos = ObtenerCostosProducto(almacen.AlmacenID); ParametroOrganizacionInfo parametroOrganizacionSuperavit; if (almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) { parametroOrganizacionSuperavit = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTASUPERAVITENG.ToString()); } else { parametroOrganizacionSuperavit = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTASUPERAVIT.ToString()); } if (parametroOrganizacionSuperavit == null) { throw new ExcepcionServicio(string.Format("{0}", "CUENTA DE SUPERAVIT NO CONFIGURADA")); } IList <ProductoInfo> productos = ObtenerProductos(); IList <UnidadMedicionInfo> unidades = ObtenerUnidadesMedicion(); IList <CuentaAlmacenSubFamiliaInfo> almacenesSubFamilia = ObtenerCostosSubFamilia(almacen.AlmacenID); ProductoInfo producto; PolizaEntradaSalidaPorAjusteModel ajuste; ClaseCostoProductoInfo almacenProducto; CuentaSAPInfo cuentaSAP; CuentaAlmacenSubFamiliaInfo almacenSubFamilia; ParametroOrganizacionInfo parametroCentroCosto = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTACENTROCOSTOMP.ToString()); if (parametroCentroCosto == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } bool afectaCosto; for (var indexAjustes = 0; indexAjustes < ajustesDeInventario.Count; indexAjustes++) { ajuste = ajustesDeInventario[indexAjustes]; cuentaSAP = null; producto = productos.FirstOrDefault(clave => clave.ProductoId == ajuste.ProductoID); afectaCosto = ValidarAfectacionCuentaCosto(producto); if (!afectaCosto && (almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode())) { almacenSubFamilia = almacenesSubFamilia.FirstOrDefault(sub => sub.SubFamiliaID == producto.SubfamiliaId); if (almacenSubFamilia != null) { cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenSubFamilia.CuentaSAPID); } } else { almacenProducto = almacenesProductos.FirstOrDefault(prod => prod.ProductoID == producto.ProductoId); if (almacenProducto != null) { cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenProducto.CuentaSAPID); } } if (cuentaSAP == null) { throw new ExcepcionServicio(string.Format("{0} {1} {2}", "CUENTA PARA PRODUCTO", producto.ProductoDescripcion, "NO CONFIGURADA")); } UnidadMedicionInfo unidad = unidades.FirstOrDefault(uni => uni.UnidadID == producto.UnidadId); if (unidad == null) { unidad = new UnidadMedicionInfo(); } var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = almacenMovimiento.FechaMovimiento, Folio = almacenMovimiento.FolioMovimiento.ToString(), ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", ajuste.Importe.ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSAP.CuentaSAP, Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSAP.Descripcion, CentroCosto = cuentaSAP.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto) || cuentaSAP.CuentaSAP.StartsWith(PrefijoCuentaCentroGasto) ? parametroCentroCosto.Valor : string.Empty, PesoOrigen = Math.Round(ajuste.Cantidad, 0), TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, almacenMovimiento.FolioMovimiento, producto.ProductoDescripcion, string.Format("{0} {1}", ajuste.Cantidad.ToString("N2"), unidad.ClaveUnidad), ajuste.Precio.ToString("C2")), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaAjuste.Add(polizaSalida); datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = almacenMovimiento.FechaMovimiento, Folio = almacenMovimiento.FolioMovimiento.ToString(), Importe = string.Format("{0}", (ajuste.Importe * -1).ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = parametroOrganizacionSuperavit.Valor, CentroCosto = parametroOrganizacionSuperavit.Valor.StartsWith(PrefijoCuentaCentroCosto) || parametroOrganizacionSuperavit.Valor.StartsWith(PrefijoCuentaCentroGasto) ? parametroCentroCosto.Valor : string.Empty, Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSAP.Descripcion, PesoOrigen = Math.Round(ajuste.Cantidad, 0), TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, almacenMovimiento.FolioMovimiento, producto.ProductoDescripcion, string.Format("{0} {1}", ajuste.Cantidad.ToString("N2"), unidad.ClaveUnidad), ajuste.Precio.ToString("C2")), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaAjuste.Add(polizaSalida); } return(polizasSalidaAjuste); }
/// <summary> /// Obtiene el flujo de datos /// para la generacion de la reimpresion /// de la poliza de consumo de producto /// </summary> /// <param name="almacenInfo"></param> /// <param name="polizaClave"></param> /// <returns></returns> private MemoryStream ReimprimirPolizaConsumoProducto(AlmacenInfo almacenInfo, TipoPolizaInfo polizaClave) { MemoryStream pdf = null; //var polizaBL = new PolizaBL(); //IList<PolizaInfo> polizasConsumoProducto = polizaBL.ObtenerPoliza(TipoPoliza.ConsumoProducto, // almacenInfo.Organizacion.OrganizacionID, // DateTime.Today, // 1.ToString(), // polizaClave.ClavePoliza, 1); //if (polizasConsumoProducto != null && polizasConsumoProducto.Any()) //{ var almacenMovimientoInventarioBL = new AlmacenMovimientoBL(); List <ContenedorAlmacenMovimientoCierreDia> contenedorMovimientoCierreDia = almacenMovimientoInventarioBL.ObtenerMovimientosInventario(almacenInfo.AlmacenID, almacenInfo.Organizacion.OrganizacionID); if (contenedorMovimientoCierreDia != null && contenedorMovimientoCierreDia.Any()) { var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.ConsumoProducto); IList <PolizaInfo> polizaConsumo = poliza.GeneraPoliza(contenedorMovimientoCierreDia); if (polizaConsumo != null && polizaConsumo.Any()) { //poliza.GuardarArchivoXML(polizaConsumo, almacenInfo.Organizacion.OrganizacionID); //pdf = poliza.ImprimePoliza(contenedorMovimientoCierreDia, polizaConsumo); } } //} return(pdf); }
/// <summary> /// Obtiene un StackPanel que para mostrar las /// cuentas /// </summary> /// <param name="indexFormularios"></param> /// <param name="poliza"></param> /// <param name="tiposPoliza"> </param> /// <returns></returns> private System.Windows.Controls.StackPanel ObtenerPanelItem(int indexFormularios, PolizaInfo poliza, IList <TipoPolizaInfo> tiposPoliza) { Brush colorItem; if (indexFormularios % 2 == 0) { colorItem = new SolidColorBrush(Colors.LavenderBlush); } else { colorItem = new SolidColorBrush(Colors.White); } var grdDetalles = new System.Windows.Controls.Grid(); grdDetalles.SetValue(System.Windows.Controls.Grid.BackgroundProperty, colorItem); var columnaDescripcion = new System.Windows.Controls.ColumnDefinition { Width = new GridLength(300) }; var columnaLectura = new System.Windows.Controls.ColumnDefinition { Width = new GridLength(435) }; var columnaEscritura = new System.Windows.Controls.ColumnDefinition { Width = new GridLength(50) }; grdDetalles.ColumnDefinitions.Add(columnaDescripcion); grdDetalles.ColumnDefinitions.Add(columnaLectura); grdDetalles.ColumnDefinitions.Add(columnaEscritura); var row = new System.Windows.Controls.RowDefinition { Height = new GridLength(20) }; grdDetalles.RowDefinitions.Add(row); TipoPolizaInfo tipoPoliza = tiposPoliza.FirstOrDefault(x => x.TipoPolizaID == poliza.TipoPolizaID); if (tipoPoliza == null) { tipoPoliza = new TipoPolizaInfo(); } var lbl = new System.Windows.Controls.Label { Content = string.Format("{0}\t\t{1}\t{2}\t{3}", poliza.FechaDocumento, tipoPoliza.Descripcion, poliza.Concepto, Math.Abs(Convert.ToDecimal(poliza.Importe)).ToString("C2")) }; System.Windows.Controls.Grid.SetColumn(lbl, 0); System.Windows.Controls.Grid.SetColumnSpan(lbl, 2); System.Windows.Controls.Grid.SetRow(lbl, 0); var chkGenera = new System.Windows.Controls.CheckBox { HorizontalAlignment = HorizontalAlignment.Right, }; var bindGenera = new Binding("Generar") { Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged, Source = poliza, }; chkGenera.SetBinding(System.Windows.Controls.CheckBox.IsCheckedProperty, bindGenera); System.Windows.Controls.Grid.SetColumn(chkGenera, 2); System.Windows.Controls.Grid.SetRow(chkGenera, 0); grdDetalles.Children.Add(lbl); grdDetalles.Children.Add(chkGenera); var stack = new System.Windows.Controls.StackPanel { HorizontalAlignment = HorizontalAlignment.Center, Width = 1050, }; stack.Children.Add(grdDetalles); return(stack); }
/// <summary> /// Obtiene un flujo de datos /// para la generacion de la reimpresion /// de la poliza de pase a proceso /// </summary> /// <param name="pedidoInfo"></param> /// <param name="polizaClave"></param> /// <returns></returns> private IList <ResultadoPolizaModel> ReimpresionPolizaPaseProceso(PedidoInfo pedidoInfo, TipoPolizaInfo polizaClave) { var polizaBL = new PolizaBL(); IList <PolizaInfo> polizasVenta = polizaBL.ObtenerPoliza(TipoPoliza.PaseProceso, pedidoInfo.Organizacion.OrganizacionID, pedidoInfo.FechaPedido, pedidoInfo.FolioPedido.ToString(), polizaClave.ClavePoliza, 1); IList <ResultadoPolizaModel> resultadoPolizaModel = null; if (polizasVenta != null) { List <int> foliosPedidos = new List <int>(); foreach (var polizaventas in polizasVenta) { //PP-348-1 22,350 COSTOS int indiceFolio = 1; var conceptos = polizaventas.Concepto.Split('-'); int folio; int.TryParse(conceptos[indiceFolio], out folio); if (folio > 0) { foliosPedidos.Add(folio); } } foliosPedidos = foliosPedidos.Distinct().ToList(); resultadoPolizaModel = new List <ResultadoPolizaModel>(); foreach (var folio in foliosPedidos) { var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.PaseProceso); var pesajeMateriaPrimaBL = new PesajeMateriaPrimaBL(); List <PolizaPaseProcesoModel> datosPoliza = pesajeMateriaPrimaBL.ObtenerValoresPolizaPaseProcesoReimpresion(folio, pedidoInfo.Organizacion. OrganizacionID); if (datosPoliza != null && datosPoliza.Any()) { IList <PolizaPaseProcesoModel> polizasPaseProcesoModel; datosPoliza = datosPoliza.GroupBy( prod => new { prod.Producto.ProductoId, prod.ProveedorChofer.ProveedorChoferID, prod.PesajeMateriaPrima.Ticket }) .Select(grupo => new PolizaPaseProcesoModel { Organizacion = grupo.Select(org => org.Organizacion).FirstOrDefault(), Almacen = grupo.Select(alm => alm.Almacen).FirstOrDefault(), Producto = grupo.Select(pro => pro.Producto).FirstOrDefault(), Proveedor = grupo.Select(prov => prov.Proveedor).FirstOrDefault(), AlmacenMovimiento = grupo.Select(alm => alm.AlmacenMovimiento).FirstOrDefault(), AlmacenMovimientoDetalle = grupo.Select(alm => alm.AlmacenMovimientoDetalle). FirstOrDefault(), AlmacenInventarioLote = grupo.Select(alm => alm.AlmacenInventarioLote).FirstOrDefault(), FleteInterno = grupo.Select(flete => flete.FleteInterno).FirstOrDefault(), FleteInternoCosto = grupo.Select(flete => flete.FleteInternoCosto).FirstOrDefault(), Pedido = grupo.Select(ped => ped.Pedido).FirstOrDefault(), ProveedorChofer = grupo.Select(prov => prov.ProveedorChofer).FirstOrDefault(), PesajeMateriaPrima = grupo.Select(pesaje => pesaje.PesajeMateriaPrima). FirstOrDefault(), ProgramacionMateriaPrima = grupo.Select(prog => prog.ProgramacionMateriaPrima). FirstOrDefault(), ListaAlmacenMovimientoCosto = grupo.Select(prog => prog.ListaAlmacenMovimientoCosto). FirstOrDefault(), }).OrderBy(ticket => ticket.PesajeMateriaPrima.Ticket).ToList(); for (int indexPoliza = 0; indexPoliza < datosPoliza.Count; indexPoliza++) { polizasPaseProcesoModel = new List <PolizaPaseProcesoModel> { datosPoliza[indexPoliza] }; polizasVenta = poliza.GeneraPoliza(polizasPaseProcesoModel); MemoryStream stream = poliza.ImprimePoliza(polizasPaseProcesoModel, polizasVenta); PolizaPaseProcesoModel polizaActual = polizasPaseProcesoModel.FirstOrDefault(); string nomenclaturaArchivo = string.Empty; if (polizaActual != null) { nomenclaturaArchivo = String.Format("{0}-{1}", polizaActual.Pedido.FolioPedido, polizaActual.PesajeMateriaPrima.Ticket); } var resultadoPoliza = new ResultadoPolizaModel { NomenclaturaArchivo = nomenclaturaArchivo, PDF = stream }; //polizasVenta.ToList().ForEach(datos => // { // datos.OrganizacionID = 1; // datos.UsuarioCreacionID = 1; // }); //polizaBL.Guardar(polizasVenta, TipoPoliza.PaseProceso); resultadoPolizaModel.Add(resultadoPoliza); } } } } return(resultadoPolizaModel); }