示例#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;
            }
        }