Пример #1
0
        public override MemoryStream ImprimePoliza(object datosPoliza, IList <PolizaInfo> polizas)
        {
            try
            {
                PolizaModel     = new PolizaModel();
                polizaImpresion = new PolizaImpresion <PolizaModel>(PolizaModel, TipoPoliza.SalidaMuerte);

                var costosAnimal        = datosPoliza as List <AnimalCostoInfo>;
                var animalCostoAgrupado = (from costo in costosAnimal
                                           group costo by new { costo.AnimalID, costo.CostoID }
                                           into agrupado
                                           select new AnimalCostoInfo
                {
                    AnimalID = agrupado.Key.AnimalID,
                    Arete = agrupado.Select(ani => ani.Arete).FirstOrDefault(),
                    CostoID = agrupado.Key.CostoID,
                    Importe = agrupado.Sum(cos => cos.Importe),
                    FolioReferencia =
                        agrupado.Select(cos => cos.FolioReferencia).FirstOrDefault(),
                    FechaCosto = agrupado.Select(cos => cos.FechaCosto).FirstOrDefault(),
                    OrganizacionID = agrupado.Select(org => org.OrganizacionID).FirstOrDefault()
                }).ToList();
                costosAnimal = animalCostoAgrupado;

                long     folioVenta     = Convert.ToInt64(costosAnimal.Select(folio => folio.Arete).FirstOrDefault());
                int      organizacionID = costosAnimal.Select(org => org.OrganizacionID).FirstOrDefault();
                DateTime fechaVenta     = DateTime.Today;

                OrganizacionInfo organizacionOrigen = ObtenerOrganizacionIVA(organizacionID);
                PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                {
                    new PolizaEncabezadoModel
                    {
                        Descripcion    = organizacionOrigen.Descripcion,
                        Desplazamiento = 0
                    },
                };
                polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera");
                PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                {
                    new PolizaEncabezadoModel
                    {
                        Descripcion    = "Salida De Ganado x Muerte",
                        Desplazamiento = 0
                    },
                };
                polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera");
                PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                {
                    new PolizaEncabezadoModel
                    {
                        Descripcion    = string.Format("{0} {1}", "FECHA:", fechaVenta.ToShortDateString()),
                        Desplazamiento = 0
                    },
                    new PolizaEncabezadoModel
                    {
                        Descripcion =
                            string.Format("{0} {1}", "FOLIO No.",
                                          folioVenta),
                        Desplazamiento = 0
                    },
                };
                polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Folio");
                polizaImpresion.GenerarLineaEnBlanco("Folio", 2);

                PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                {
                    new PolizaEncabezadoModel
                    {
                        Descripcion =
                            string.Format("{0}:{1}", "REFERENCIA",
                                          organizacionOrigen.Descripcion),
                    },
                    new PolizaEncabezadoModel
                    {
                        Descripcion =
                            string.Format("{0}:{1}", "FECHA",
                                          fechaVenta.ToShortDateString()),
                    },
                };
                polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA");
                GeneraLinea(2);
                polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA");

                GeneraLineaEncabezadoDetalle();
                var               tipoGanadoBL = new TipoGanadoBL();
                List <long>       animalId     = costosAnimal.Select(id => id.AnimalID).Distinct().ToList();
                List <AnimalInfo> animales     = animalId.Select(ani => new AnimalInfo
                {
                    AnimalID = ani
                }).Distinct().ToList();
                List <ContenedorTipoGanadoPoliza> tipoGanadoPolizas = tipoGanadoBL.ObtenerTipoPorAnimal(animales,
                                                                                                        TipoMovimiento.
                                                                                                        Muerte);
                List <ContenedorVentaGanado> ventasGanado = costosAnimal
                                                            .Select(venta => new ContenedorVentaGanado
                {
                    CausaPrecio        = new CausaPrecioInfo(),
                    VentaGanado        = new VentaGanadoInfo(),
                    VentaGanadoDetalle = new VentaGanadoDetalleInfo
                    {
                        Animal = new AnimalInfo
                        {
                            AnimalID = venta.AnimalID
                        }
                    }
                }).ToList();
                GeneraLineasDetalle(tipoGanadoPolizas, costosAnimal, ventasGanado);
                GeneraLinea(12);
                polizaImpresion.GeneraCabecero(new[] { "100" }, "Detalle");

                GeneraLineaEncabezadoCostos();
                polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos");
                GeneraLineaCostos(costosAnimal, string.Empty);
                polizaImpresion.GeneraCostos("Costos");

                GeneraLineaCostosTotales();
                polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos");
                GeneraLineaTotalCostos(costosAnimal);

                GeneraLinea(5);
                polizaImpresion.GeneraCabecero(new[] { "100" }, "Costos");
                polizaImpresion.GenerarLineaEnBlanco();

                GeneraLineaEncabezadoRegistroContable(folioVenta);
                polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

                GeneraLineaSubEncabezadoRegistroContable(false, "No DE CUENTA", "CARGOS", "ABONOS");
                polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

                IList <PolizaInfo> cargos;
                IList <PolizaInfo> abonos;
                GeneraLineaRegistroContable(polizas, out cargos, out abonos);
                polizaImpresion.GenerarRegistroContable("RegistroContable");

                GeneraLinea(5);
                polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable");
                GenerarLineaSumaRegistroContable(polizas, "*= SUMAS -=>");
                polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

                GeneraLinea(5);
                polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable");

                return(polizaImpresion.GenerarArchivo());
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
        public override MemoryStream ImprimePoliza(object datosPoliza, IList <PolizaInfo> polizas)
        {
            try
            {
                PolizaModel     = new PolizaModel();
                polizaImpresion = new PolizaImpresion <PolizaModel>(PolizaModel, TipoPoliza.SalidaMuerteIntensiva);

                var muerteIntesiva = datosPoliza as GanadoIntensivoInfo;

                if (muerteIntesiva != null)
                {
                    int      organizacionID = muerteIntesiva.Organizacion.OrganizacionID;
                    DateTime fechaMuerte    = DateTime.Today;

                    organizacionInfo = ObtenerOrganizacionSociedadDivision(muerteIntesiva.Organizacion.OrganizacionID, SociedadEnum.SuKarne);

                    //PENDIENTE PARA OBTENER LA SOCIEDAD
                    PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                    {
                        new PolizaEncabezadoModel
                        {
                            Descripcion    = organizacionInfo.TituloPoliza,
                            Desplazamiento = 0
                        },
                    };
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera");
                    PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                    {
                        new PolizaEncabezadoModel
                        {
                            Descripcion    = "Salida x Muerte Ganado Intensivo",
                            Desplazamiento = 0
                        },
                    };
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera");
                    PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                    {
                        new PolizaEncabezadoModel
                        {
                            Descripcion    = string.Format("{0} {1}", "FECHA:", fechaMuerte.ToShortDateString()),
                            Desplazamiento = 0
                        },
                        new PolizaEncabezadoModel
                        {
                            Descripcion =
                                string.Format("{0} {1}", "FOLIO No.",
                                              muerteIntesiva.FolioTicket),
                            Desplazamiento = 0
                        },
                    };

                    polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Folio");
                    polizaImpresion.GenerarLineaEnBlanco("Folio", 2);


                    PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                    {
                        new PolizaEncabezadoModel
                        {
                            Descripcion =
                                string.Format("{0}:{1}", "REFERENCIA",
                                              organizacionInfo.Descripcion),
                        },
                        new PolizaEncabezadoModel
                        {
                            Descripcion =
                                string.Format("{0}:{1}", "FECHA",
                                              fechaMuerte.ToShortDateString()),
                        },
                    };

                    polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA");
                    GeneraLinea(2);
                    polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA");

                    GeneraLineaEncabezadoDetalle();


                    GeneraLineasDetalle(muerteIntesiva);

                    GeneraLinea(12);
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "Detalle");

                    GeneraLineaEncabezadoCostos();

                    polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos");
                    GeneraLineaCostos(muerteIntesiva.ListaGanadoIntensivoCosto, string.Empty);
                    polizaImpresion.GeneraCostos("Costos");

                    GeneraLineaCostosTotales();
                    polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos");
                    GeneraLineaTotalCostos(muerteIntesiva.ListaGanadoIntensivoCosto);

                    GeneraLinea(5);
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "Costos");
                    polizaImpresion.GenerarLineaEnBlanco();

                    GeneraLineaEncabezadoRegistroContable(muerteIntesiva.FolioTicket);
                    polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

                    GeneraLineaSubEncabezadoRegistroContable(false, "No DE CUENTA", "CARGOS", "ABONOS");
                    polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

                    IList <PolizaInfo> cargos;
                    IList <PolizaInfo> abonos;
                    GeneraLineaRegistroContable(polizas, out cargos, out abonos);
                    polizaImpresion.GenerarRegistroContable("RegistroContable");


                    GeneraLinea(5);
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable");
                    GenerarLineaSumaRegistroContable(polizas, "*= SUMAS -=>");
                    polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

                    GeneraLinea(5);
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable");
                }

                return(polizaImpresion.GenerarArchivo());
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
        /// <summary>
        /// genera el archivo PDF de la poliza
        /// </summary>
        /// <param name="contenedorSalidaPorMuerte">Objeto SalidaGanadoEnTransitoInfo que contiene la informacion de la salida de ganado en transito por muerte</param>
        /// <param name="polizas">Nodos de la poliza generada para la salida de ganado en transito</param>
        /// <returns>Regresa el archivo PDF que se guardara</returns>
        public override MemoryStream ImprimePoliza(object contenedorSalidaPorMuerte, IList <PolizaInfo> polizas)
        {
            try
            {
                PolizaModel     = new PolizaModel();
                polizaImpresion = new PolizaImpresion <PolizaModel>(PolizaModel, TipoPoliza.SalidaMuerteEnTransito);
                var info = contenedorSalidaPorMuerte as SalidaGanadoEnTransitoInfo;

                if (info != null)
                {
                    //genera los encabezados del PDF:
                    #region cabecera
                    var organizacionInfo = ObtenerOrganizacionSociedadDivision(info.OrganizacionID, SociedadEnum.SuKarne);

                    PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                    {
                        new PolizaEncabezadoModel
                        {
                            Descripcion    = organizacionInfo.TituloPoliza,
                            Desplazamiento = 0
                        }
                    };
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera");
                    PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                    {
                        new PolizaEncabezadoModel
                        {
                            Descripcion    = "Salida x Muerte  En tránsito",
                            Desplazamiento = 0
                        },
                    };
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera");
                    PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                    {
                        new PolizaEncabezadoModel
                        {
                            Descripcion    = string.Format("{0} {1}", "FECHA:", info.Fecha.ToShortDateString()),
                            Desplazamiento = 0
                        },
                        new PolizaEncabezadoModel
                        {
                            Descripcion =
                                string.Format("{0} {1}", "FOLIO No.",
                                              info.Folio),
                            Desplazamiento = 0
                        },
                    };

                    polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Folio");
                    polizaImpresion.GenerarLineaEnBlanco("Folio", 2);

                    PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
                    {
                        new PolizaEncabezadoModel
                        {
                            Descripcion =
                                string.Format("{0}: {1}", "REFERENCIA",
                                              organizacionInfo.Descripcion),
                        },
                        new PolizaEncabezadoModel
                        {
                            Descripcion =
                                string.Format("{0}: {1}", "FECHA",
                                              info.Fecha.ToShortDateString()),
                        },
                    };

                    polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA");
                    GeneraLinea(2);
                    polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "FECHA");

                    #endregion

                    //Genera las lineas de encabezado del detalle:
                    GeneraLineaEncabezadoDetalle();

                    //Genera las lineas de detalle del PDF de la poliza
                    GeneraLineasDetalle(info);
                    GeneraLinea(12);               //genera un salto de linea vacio
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "Detalle");
                    GeneraLineaEncabezadoCostos(); //genera encabezados de los costos

                    polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos");
                    GeneraLineaCostos(info.DetallesSalida, info.Observaciones); //genera las lineas de costos de la poliza PDF
                    polizaImpresion.GeneraCostos("Costos");                     //anexa las lineas generadas de costos al modelo PDF que se generara

                    GeneraLineaCostosTotales();                                 //genera las lineas de sumatorias de los costos
                    polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos");
                    GeneraLineaTotalCostos(info.DetallesSalida);

                    GeneraLinea(5);
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "Costos");
                    polizaImpresion.GenerarLineaEnBlanco();
                    GeneraLineaEncabezadoRegistroContable(info.Folio);    //genera el encabezado para los registros contables
                    polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");
                    GeneraLineaSubEncabezadoRegistroContable(false, "No DE CUENTA", "CARGOS", "ABONOS");
                    polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

                    IList <PolizaInfo> cargos;
                    IList <PolizaInfo> abonos;
                    GeneraLineaRegistroContable(polizas, out cargos, out abonos);   //genera los registros contables
                    polizaImpresion.GenerarRegistroContable("RegistroContable");    //anexa las lineas generadas de registros contables al modelo PDF que se generara
                    GeneraLinea(5);

                    polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable");

                    GenerarLineaSumaRegistroContable(polizas, "*= SUMAS -=>");    //genera la linea de sumatoria de los registros contables
                    polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

                    GeneraLinea(5);
                    polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable");
                    return(polizaImpresion.GenerarArchivo());
                }
                return(new MemoryStream());
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Пример #4
0
        /// <summary>
        /// metodo que se usa para imprimir la poliza
        /// </summary>
        /// <param name="contenedorSalidaPorVenta"></param>
        /// <param name="polizas"></param>
        /// <returns></returns>
        public override MemoryStream ImprimePoliza(object contenedorSalidaPorVenta, IList <PolizaInfo> polizas)
        {
            PolizaModel     = new PolizaModel();
            polizaImpresion = new PolizaImpresion <PolizaModel>(PolizaModel, TipoPoliza.SalidaVentaEnTransito);
            var info           = contenedorSalidaPorVenta as SalidaGanadoEnTransitoInfo;
            var firstOrDefault = polizas.FirstOrDefault();

            if (firstOrDefault != null)
            {
                firstOrDefault.Cuenta = firstOrDefault.Cliente;
            }

            if (info == null)
            {
                return(new MemoryStream());
            }

            #region cabecera
            var organizacionInfo = ObtenerOrganizacionSociedadDivision(info.OrganizacionID, SociedadEnum.SuKarne);
            PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
            {
                new PolizaEncabezadoModel
                {
                    Descripcion    = organizacionInfo.TituloPoliza,
                    Desplazamiento = 0
                },
            };
            polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera");
            PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
            {
                new PolizaEncabezadoModel
                {
                    Descripcion    = "Salida x Venta  En tránsito",
                    Desplazamiento = 0
                },
            };
            polizaImpresion.GeneraCabecero(new[] { "100" }, "NombreGanadera");
            PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
            {
                new PolizaEncabezadoModel
                {
                    Descripcion    = string.Format("{0} {1}", "FECHA:", info.Fecha.ToShortDateString()),
                    Desplazamiento = 0
                },
                new PolizaEncabezadoModel
                {
                    Descripcion =
                        string.Format("{0} {1}", "FOLIO No.",
                                      info.Folio),
                    Desplazamiento = 0
                },
            };

            polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Folio");
            polizaImpresion.GenerarLineaEnBlanco("Folio", 2);

            #endregion

            var codigoSap = info.Cliente.CodigoSAP;
            clienteSap = new ClienteInfo {
                CodigoSAP = codigoSap
            };
            var clienteBl = new ClienteBL();
            clienteSap = clienteBl.ObtenerClientePorCliente(clienteSap);

            PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
            {
                new PolizaEncabezadoModel
                {
                    Descripcion =
                        string.Format("{0}:{1}", "CLIENTE",
                                      clienteSap.Descripcion),
                    Desplazamiento = 0
                },
                new PolizaEncabezadoModel
                {
                    Descripcion =
                        string.Format("{0}:{1}", "REFERENCIA",
                                      organizacionInfo.Descripcion),
                    Desplazamiento = 0
                },
            };

            polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Proveedor");

            PolizaModel.Encabezados = new List <PolizaEncabezadoModel>
            {
                new PolizaEncabezadoModel
                {
                    Descripcion =
                        string.Format("{0}:{1}", "VENDEDOR",
                                      string.Empty),
                    Desplazamiento = 0
                },
                new PolizaEncabezadoModel
                {
                    Descripcion =
                        string.Format("{0}:{1}", "FECHA",
                                      info.Fecha.ToShortDateString()),
                    Desplazamiento = 0
                },
            };
            polizaImpresion.GeneraCabecero(new[] { "50", "50" }, "Comprador");
            GeneraLinea(2);
            polizaImpresion.GeneraCabecero(new[] { "100" }, "Comprador");

            GeneraLineaEncabezadoDetalle();
            GeneraLineasDetalle(info);
            GeneraLinea(12);
            polizaImpresion.GeneraCabecero(new[] { "100" }, "Detalle");

            GeneraLineaEncabezadoCostos();
            polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos");
            GeneraLineaCostos(info.DetallesSalida, string.Empty);
            polizaImpresion.GeneraCostos("Costos");

            GeneraLineaCostosTotales();
            polizaImpresion.GeneraCabecero(new[] { "30", "20", "20", "5", "40" }, "Costos");
            GeneraLineaTotalCostos(info.DetallesSalida);

            GeneraLinea(5);
            polizaImpresion.GeneraCabecero(new[] { "100" }, "Costos");
            polizaImpresion.GenerarLineaEnBlanco();
            GeneraLineaEncabezadoRegistroContable(info.Folio);
            polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");
            GeneraLineaSubEncabezadoRegistroContable(false, "No DE CUENTA", "CARGOS", "ABONOS");
            polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

            IList <PolizaInfo> cargos;
            IList <PolizaInfo> abonos;
            GeneraLineaRegistroContable(polizas, out cargos, out abonos);
            polizaImpresion.GenerarRegistroContable("RegistroContable");
            GeneraLinea(5);

            polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable");

            GenerarLineaSumaRegistroContable(polizas, "*= SUMAS -=>");
            polizaImpresion.GeneraCabecero(new[] { "30", "60", "65", "25", "25" }, "RegistroContable");

            GeneraLinea(5);
            polizaImpresion.GeneraCabecero(new[] { "100" }, "RegistroContable");
            return(polizaImpresion.GenerarArchivo());
        }