public override IList <PolizaInfo> GeneraPoliza(object datosPoliza)
        {
            var interfaceSalidaTraspaso       = datosPoliza as InterfaceSalidaTraspasoInfo;
            IList <PolizaInfo> polizaGenerada = null;

            var interfaceSalidaTraspasoCostoBL = new InterfaceSalidaTraspasoCostoBL();
            List <InterfaceSalidaTraspasoCostoInfo> interfaceSalidaTraspasoCosto =
                interfaceSalidaTraspasoCostoBL.ObtenerCostosInterfacePorDetalle(
                    interfaceSalidaTraspaso.ListaInterfaceSalidaTraspasoDetalle);

            if (interfaceSalidaTraspasoCosto != null && interfaceSalidaTraspasoCosto.Any())
            {
                polizaGenerada = ObtenerPoliza(interfaceSalidaTraspaso, interfaceSalidaTraspasoCosto);
            }
            return(polizaGenerada);
        }
Example #2
0
        private IList <PolizaInfo> GeneraDatosPoliza(InterfaceSalidaTraspasoInfo interfaceSalidaTraspaso)
        {
            var polizasSalidaTraspaso = new List <PolizaInfo>();

            IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP();

            TipoPolizaInfo tipoPoliza =
                TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.SalidaGanado.GetHashCode());

            if (tipoPoliza == null)
            {
                throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA",
                                                          TipoPoliza.SalidaGanado));
            }
            string textoDocumento  = tipoPoliza.TextoDocumento;
            string postFijoRef3    = tipoPoliza.PostFijoRef3;
            string prefijoConcepto = tipoPoliza.ClavePoliza;

            OrganizacionInfo organizacionDestino =
                ObtenerOrganizacionIVA(interfaceSalidaTraspaso.OrganizacionDestino.OrganizacionID);

            OrganizacionInfo organizacionOrigen =
                ObtenerOrganizacionIVA(interfaceSalidaTraspaso.OrganizacionId);
            string divisionOrigen = organizacionOrigen.Division;

            long folioTraspaso = interfaceSalidaTraspaso.FolioTraspaso;

            var             animalBL = new AnimalBL();
            List <LoteInfo> lotes    =
                interfaceSalidaTraspaso.ListaInterfaceSalidaTraspasoDetalle.Select(lote => lote.Lote).ToList();
            List <AnimalInfo> animalesMovimientoSalidaTraspaso = animalBL.ObtenerMovimientosPorLoteXML(lotes);

            List <AnimalInfo> animalesMovimientoSacrificadosLote = animalBL.ObtenerMovimientosPorLoteSacrificadosXML(lotes);

            if (animalesMovimientoSacrificadosLote == null)
            {
                animalesMovimientoSacrificadosLote = new List <AnimalInfo>();
            }

            if (animalesMovimientoSalidaTraspaso != null && animalesMovimientoSalidaTraspaso.Any())
            {
                var costosGanadoTransferido = new List <InterfaceSalidaTraspasoCostoInfo>();
                var animalesMovimiento      = new List <AnimalMovimientoInfo>();
                animalesMovimientoSalidaTraspaso.ForEach(
                    movs => animalesMovimiento.AddRange(movs.ListaAnimalesMovimiento));

                var animalCostoBL = new AnimalCostoBL();
                List <AnimalCostoInfo> costosAnimal =
                    animalCostoBL.ObtenerCostosAnimal(animalesMovimientoSalidaTraspaso);

                var costoBL = new CostoBL();
                IList <CostoInfo> costos = costoBL.ObtenerTodos(EstatusEnum.Activo);

                List <AnimalInfo> animalesPorLote;
                List <AnimalInfo> animalesSacrificadosPorLote;

                int loteID;

                const string COMPLEMENTO_REF1       = "czas.";
                const string UNIDAD_MOVIMIENTO      = "Kgs.";
                const string DESCRIPCION_MOVIMIENTO = "CABEZAS";

                DateTime fechaEnvio = interfaceSalidaTraspaso.FechaEnvio;

                for (var indexLotes = 0; indexLotes < lotes.Count; indexLotes++)
                {
                    Thread.Sleep(999);
                    var ref3 = new StringBuilder();
                    ref3.Append("03");
                    ref3.Append(Convert.ToString(folioTraspaso).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 archivoFolio =
                        new StringBuilder(ObtenerArchivoFolio(fechaEnvio));
                    //var numeroDocumento =
                    //    new StringBuilder(string.Format("{0}{1}", folioTraspaso, ObtenerNumeroReferencia));
                    var numeroDocumento = ObtenerNumeroReferenciaFolio(folioTraspaso);

                    loteID          = lotes[indexLotes].LoteID;
                    animalesPorLote = (from ani in animalesMovimientoSalidaTraspaso
                                       from movs in animalesMovimiento
                                       where ani.AnimalID == movs.AnimalID &&
                                       movs.LoteID == loteID
                                       orderby ani.AnimalID
                                       select ani).ToList();
                    animalesSacrificadosPorLote =
                        animalesMovimientoSacrificadosLote.Where(lote => lote.LoteID == loteID).ToList();
                    var renglon = 1;
                    if (animalesPorLote.Any())
                    {
                        int cabezas = interfaceSalidaTraspaso.ListaInterfaceSalidaTraspasoDetalle.Where(
                            loteId => loteId.Lote.LoteID == loteID).Select(
                            cabe => cabe.Cabezas).FirstOrDefault();
                        int interfaceSalidaTraspasoDetalleID =
                            interfaceSalidaTraspaso.ListaInterfaceSalidaTraspasoDetalle.Where(
                                loteId => loteId.Lote.LoteID == loteID).Select(
                                cabe => cabe.InterfaceSalidaTraspasoDetalleID).FirstOrDefault();
                        animalesPorLote = EliminarAnimalesSacrificados(animalesPorLote,
                                                                       animalesSacrificadosPorLote);
                        animalesPorLote = animalesPorLote.Take(cabezas).ToList();
                        if (animalesPorLote.Any())
                        {
                            List <AnimalCostoInfo> costosAnimalesTraspasados =
                                costosAnimal.Join(animalesPorLote, info => info.AnimalID, cos => cos.AnimalID,
                                                  (info, cos) => info).ToList();
                            List <AnimalCostoInfo> costosAnimalesTraspasadosIndividual;
                            if (costosAnimalesTraspasados.Any())
                            {
                                costosAnimalesTraspasadosIndividual = costosAnimalesTraspasados
                                                                      .GroupBy(costoAnimal => new { costoAnimal.CostoID, costoAnimal.AnimalID })
                                                                      .Select(dinero => new AnimalCostoInfo
                                {
                                    AnimalCostoID =
                                        dinero.Select(id => id.AnimalCostoID).FirstOrDefault(),
                                    AnimalID   = dinero.Key.AnimalID,
                                    CostoID    = dinero.Key.CostoID,
                                    FechaCosto =
                                        dinero.Select(fecha => fecha.FechaCosto).
                                        FirstOrDefault(),
                                    FolioReferencia =
                                        dinero.Select(folio => folio.FolioReferencia).
                                        FirstOrDefault(),
                                    Importe        = dinero.Sum(imp => imp.Importe),
                                    OrganizacionID =
                                        dinero.Select(org => org.OrganizacionID).
                                        FirstOrDefault(),
                                    TipoReferencia =
                                        dinero.Select(tipo => tipo.TipoReferencia).
                                        FirstOrDefault()
                                }).ToList();

                                costosAnimalesTraspasados = costosAnimalesTraspasados
                                                            .GroupBy(costoAnimal => costoAnimal.CostoID)
                                                            .Select(dinero => new AnimalCostoInfo
                                {
                                    AnimalCostoID =
                                        dinero.Select(id => id.AnimalCostoID).FirstOrDefault(),
                                    AnimalID =
                                        dinero.Select(id => id.AnimalID).FirstOrDefault(),
                                    CostoID    = dinero.Select(id => id.CostoID).FirstOrDefault(),
                                    FechaCosto =
                                        dinero.Select(fecha => fecha.FechaCosto).
                                        FirstOrDefault(),
                                    FolioReferencia =
                                        dinero.Select(folio => folio.FolioReferencia).
                                        FirstOrDefault(),
                                    Importe        = dinero.Sum(imp => imp.Importe),
                                    OrganizacionID =
                                        dinero.Select(org => org.OrganizacionID).
                                        FirstOrDefault(),
                                    TipoReferencia =
                                        dinero.Select(tipo => tipo.TipoReferencia).
                                        FirstOrDefault()
                                }).ToList();
                                costosGanadoTransferido.AddRange(
                                    costosAnimalesTraspasadosIndividual.Select(
                                        dato => new InterfaceSalidaTraspasoCostoInfo
                                {
                                    AnimalID          = dato.AnimalID,
                                    Activo            = EstatusEnum.Activo,
                                    Importe           = dato.Importe,
                                    UsuarioCreacionID =
                                        interfaceSalidaTraspaso.
                                        UsuarioModificacionID.Value,
                                    Costo = new CostoInfo
                                    {
                                        CostoID =
                                            dato.CostoID
                                    },
                                    InterfaceSalidaTraspasoDetalle =
                                        new InterfaceSalidaTraspasoDetalleInfo
                                    {
                                        InterfaceSalidaTraspasoDetalleID
                                            =
                                                interfaceSalidaTraspasoDetalleID
                                    }
                                }));
                                ClaveContableInfo claveContableDestino;
                                ClaveContableInfo claveContableOrigen;
                                CostoInfo         costo;

                                CuentaSAPInfo   cuentaSapDestino;
                                CuentaSAPInfo   cuentaSapOrigen;
                                DatosPolizaInfo datos;
                                PolizaInfo      polizaSalida;

                                int cabezasRecibidas =
                                    interfaceSalidaTraspaso.ListaInterfaceSalidaTraspasoDetalle.Sum(cab => cab.Cabezas);
                                decimal         pesoOrigen = interfaceSalidaTraspaso.PesoBruto - interfaceSalidaTraspaso.PesoTara;
                                AnimalCostoInfo animalCosto;
                                for (var indexCostos = 0; indexCostos < costosAnimalesTraspasados.Count; indexCostos++)
                                {
                                    animalCosto = costosAnimalesTraspasados[indexCostos];
                                    costo       =
                                        costos.FirstOrDefault(
                                            id => id.CostoID == animalCosto.CostoID);
                                    claveContableDestino = ObtenerCuentaInventario(costo
                                                                                   , organizacionOrigen.OrganizacionID
                                                                                   ,
                                                                                   TipoOrganizacion.Ganadera.GetHashCode
                                                                                       ());
                                    claveContableOrigen = ObtenerCuentaInventario(costo
                                                                                  , organizacionDestino.OrganizacionID
                                                                                  , TipoPoliza.SalidaGanado);
                                    cuentaSapDestino =
                                        cuentasSap.FirstOrDefault(
                                            clave => clave.CuentaSAP.Equals(claveContableDestino.Valor));
                                    if (cuentaSapDestino == null)
                                    {
                                        throw new ExcepcionServicio(string.Format("{0} {1}",
                                                                                  "NO SE CUENTA CON CONFIGURACIÓN PARA CUENTA DE INVENTARIO",
                                                                                  claveContableDestino.Valor));
                                    }
                                    cuentaSapOrigen =
                                        cuentasSap.FirstOrDefault(
                                            clave => clave.CuentaSAP.Equals(claveContableOrigen.Valor));
                                    if (cuentaSapOrigen == null)
                                    {
                                        throw new ExcepcionServicio(string.Format("{0} {1}",
                                                                                  "NO SE CUENTA CON CONFIGURACIÓN PARA CUENTA DE TRANSITO",
                                                                                  claveContableOrigen.Valor));
                                    }
                                    datos = new DatosPolizaInfo
                                    {
                                        NumeroReferencia = numeroDocumento,
                                        FechaEntrada     = fechaEnvio,
                                        Folio            = folioTraspaso.ToString(),
                                        CabezasRecibidas = cabezasRecibidas.ToString(),
                                        NumeroDocumento  = folioTraspaso.ToString(),
                                        ClaseDocumento   = postFijoRef3,
                                        Importe          =
                                            string.Format("{0}", Cancelacion ? (animalCosto.Importe * -1).ToString("F2")
                                                                             : animalCosto.Importe.ToString("F2")),
                                        IndicadorImpuesto = String.Empty,
                                        Renglon           = Convert.ToString(renglon++),
                                        Cabezas           = Convert.ToString(cabezasRecibidas),
                                        ImporteIva        = "0",
                                        Ref3             = ref3.ToString(),
                                        ArchivoFolio     = archivoFolio.ToString(),
                                        DescripcionCosto = cuentaSapOrigen.Descripcion,
                                        Cuenta           = cuentaSapOrigen.CuentaSAP,
                                        PesoOrigen       = pesoOrigen,
                                        Division         = divisionOrigen,
                                        ComplementoRef1  = COMPLEMENTO_REF1,
                                        TipoDocumento    = textoDocumento,
                                        Concepto         =
                                            String.Format("{0}-{1} ,{2} {3}, {4} {5}", prefijoConcepto,
                                                          folioTraspaso,
                                                          cabezasRecibidas, DESCRIPCION_MOVIMIENTO,
                                                          pesoOrigen.ToString("N0"), UNIDAD_MOVIMIENTO),
                                        Sociedad = organizacionDestino.Sociedad,
                                        Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacionDestino.Sociedad),
                                    };
                                    polizaSalida = GeneraRegistroPoliza(datos);
                                    polizasSalidaTraspaso.Add(polizaSalida);

                                    datos = new DatosPolizaInfo
                                    {
                                        NumeroReferencia = numeroDocumento,
                                        FechaEntrada     = fechaEnvio,
                                        Folio            = folioTraspaso.ToString(),
                                        CabezasRecibidas = cabezasRecibidas.ToString(),
                                        NumeroDocumento  = folioTraspaso.ToString(),
                                        ClaseDocumento   = postFijoRef3,
                                        Importe          =
                                            string.Format("{0}", Cancelacion ? animalCosto.Importe.ToString("F2")
                                                                             : (animalCosto.Importe * -1).ToString("F2")),
                                        IndicadorImpuesto = String.Empty,
                                        Renglon           = Convert.ToString(renglon++),
                                        Cabezas           = Convert.ToString(cabezasRecibidas),
                                        ImporteIva        = "0",
                                        Ref3             = ref3.ToString(),
                                        ArchivoFolio     = archivoFolio.ToString(),
                                        DescripcionCosto = cuentaSapDestino.Descripcion,
                                        Cuenta           = cuentaSapDestino.CuentaSAP,
                                        PesoOrigen       = pesoOrigen,
                                        Division         = divisionOrigen,
                                        ComplementoRef1  = COMPLEMENTO_REF1,
                                        TipoDocumento    = textoDocumento,
                                        Concepto         =
                                            String.Format("{0}-{1} ,{2} {3}, {4} {5}", prefijoConcepto,
                                                          folioTraspaso,
                                                          cabezasRecibidas, DESCRIPCION_MOVIMIENTO,
                                                          pesoOrigen.ToString("N0"), UNIDAD_MOVIMIENTO),
                                        Sociedad = organizacionDestino.Sociedad,
                                        Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacionDestino.Sociedad),
                                    };
                                    polizaSalida = GeneraRegistroPoliza(datos);
                                    polizasSalidaTraspaso.Add(polizaSalida);
                                }
                            }
                        }
                    }
                }
                if (costosGanadoTransferido.Any())
                {
                    var interfaceSalidaTraspasoCostoBL = new InterfaceSalidaTraspasoCostoBL();
                    interfaceSalidaTraspasoCostoBL.Guardar(costosGanadoTransferido);
                }
            }
            return(polizasSalidaTraspaso);
        }
        private IList <PolizaInfo> ObtenerPoliza(InterfaceSalidaTraspasoInfo interfaceSalidaTraspaso, List <InterfaceSalidaTraspasoCostoInfo> interfaceSalidaTraspasoCosto)
        {
            var polizasSalidaTraspaso = new List <PolizaInfo>();

            IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP();

            TipoPolizaInfo tipoPoliza =
                TiposPoliza.FirstOrDefault(
                    clave => clave.TipoPolizaID == TipoPoliza.PolizaSacrificioTraspasoGanado.GetHashCode());

            if (tipoPoliza == null)
            {
                throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA",
                                                          TipoPoliza.PolizaSacrificioTraspasoGanado));
            }
            string textoDocumento  = tipoPoliza.TextoDocumento;
            string postFijoRef3    = tipoPoliza.PostFijoRef3;
            string prefijoConcepto = tipoPoliza.ClavePoliza;

            OrganizacionInfo organizacionDestino =
                ObtenerOrganizacionIVA(interfaceSalidaTraspaso.OrganizacionDestino.OrganizacionID);

            OrganizacionInfo organizacionOrigen =
                ObtenerOrganizacionIVA(interfaceSalidaTraspaso.OrganizacionId);
            string divisionOrigen = organizacionOrigen.Division;

            long folioTraspaso = interfaceSalidaTraspaso.FolioTraspaso;

            List <LoteInfo> lotes =
                interfaceSalidaTraspaso.ListaInterfaceSalidaTraspasoDetalle.Select(lote => lote.Lote).ToList();

            var costoBL = new CostoBL();
            IList <CostoInfo> costos = costoBL.ObtenerTodos(EstatusEnum.Activo);

            List <InterfaceSalidaTraspasoCostoInfo> animalesPorLote;
            int loteID;

            const string COMPLEMENTO_REF1       = "czas.";
            const string UNIDAD_MOVIMIENTO      = "Kgs.";
            const string DESCRIPCION_MOVIMIENTO = "CABEZAS";

            DateTime fechaEnvio = interfaceSalidaTraspaso.FechaEnvio;

            ParametroOrganizacionInfo parametroOrganizacion =
                ObtenerParametroOrganizacionPorClave(organizacionOrigen.OrganizacionID,
                                                     ParametrosEnum.CTACENTROCOSTOENG.ToString());

            for (var indexLotes = 0; indexLotes < lotes.Count; indexLotes++)
            {
                Thread.Sleep(999);
                var ref3 = new StringBuilder();
                ref3.Append("03");
                ref3.Append(Convert.ToString(folioTraspaso).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 archivoFolio =
                    new StringBuilder(ObtenerArchivoFolio(fechaEnvio));
                //var numeroDocumento =
                //    new StringBuilder(string.Format("{0}{1}", folioTraspaso, ObtenerNumeroReferencia));
                var numeroDocumento = ObtenerNumeroReferenciaFolio(folioTraspaso);

                loteID          = lotes[indexLotes].LoteID;
                animalesPorLote = (from ani in interfaceSalidaTraspasoCosto
                                   from movs in interfaceSalidaTraspaso.ListaInterfaceSalidaTraspasoDetalle
                                   where movs.Lote.LoteID == loteID
                                   &&
                                   ani.InterfaceSalidaTraspasoDetalle.InterfaceSalidaTraspasoDetalleID ==
                                   movs.InterfaceSalidaTraspasoDetalleID
                                   orderby ani.InterfaceSalidaTraspasoCostoID, ani.AnimalID
                                   select ani).ToList();
                var renglon = 1;
                if (animalesPorLote.Any())
                {
                    int cabezas = interfaceSalidaTraspaso.ListaInterfaceSalidaTraspasoDetalle.Where(
                        loteId => loteId.Lote.LoteID == loteID).Select(
                        cabe => cabe.Cabezas).FirstOrDefault();
                    List <long> animalesAFacturar = ObtenerAnimalesPorFacturar(animalesPorLote, cabezas);
                    animalesPorLote =
                        animalesPorLote.Join(animalesAFacturar, lote => lote.AnimalID, id => id, (lote, id) => lote).
                        ToList();
                    var interfaceSalidaTraspasoCostoBL = new InterfaceSalidaTraspasoCostoBL();
                    interfaceSalidaTraspasoCostoBL.ActualizarFacturado(animalesAFacturar);
                    if (animalesPorLote.Any())
                    {
                        if (animalesPorLote.Any())
                        {
                            animalesPorLote = animalesPorLote
                                              .GroupBy(costoAnimal => costoAnimal.Costo.CostoID)
                                              .Select(dinero => new InterfaceSalidaTraspasoCostoInfo
                            {
                                AnimalID =
                                    dinero.Select(id => id.AnimalID).FirstOrDefault(),
                                Costo = new CostoInfo
                                {
                                    CostoID = dinero.Key
                                },
                                Importe = dinero.Sum(imp => imp.Importe),
                            }).ToList();
                            ClaveContableInfo claveContableDestino;
                            ClaveContableInfo claveContableOrigen;
                            CostoInfo         costo;

                            CuentaSAPInfo   cuentaSapDestino;
                            CuentaSAPInfo   cuentaSapOrigen;
                            DatosPolizaInfo datos;
                            PolizaInfo      polizaSalida;

                            decimal pesoOrigen = interfaceSalidaTraspaso.PesoBruto -
                                                 interfaceSalidaTraspaso.PesoTara;
                            InterfaceSalidaTraspasoCostoInfo animalCosto;
                            for (var indexCostos = 0; indexCostos < animalesPorLote.Count; indexCostos++)
                            {
                                animalCosto = animalesPorLote[indexCostos];
                                costo       =
                                    costos.FirstOrDefault(
                                        id => id.CostoID == animalCosto.Costo.CostoID);
                                claveContableDestino = ObtenerCuentaInventario(costo
                                                                               , organizacionDestino.OrganizacionID
                                                                               ,
                                                                               TipoPoliza.SalidaGanado);
                                claveContableOrigen = ObtenerCuentaInventario(costo
                                                                              , organizacionOrigen.OrganizacionID
                                                                              ,
                                                                              TipoPoliza.
                                                                              PolizaSacrificioTraspasoGanado);
                                cuentaSapDestino =
                                    cuentasSap.FirstOrDefault(
                                        clave => clave.CuentaSAP.Equals(claveContableDestino.Valor));
                                if (cuentaSapDestino == null)
                                {
                                    throw new ExcepcionServicio(string.Format("{0} {1}",
                                                                              "NO SE CUENTA CON CONFIGURACIÓN PARA CUENTA DE INVENTARIO",
                                                                              claveContableDestino.Valor));
                                }
                                cuentaSapOrigen =
                                    cuentasSap.FirstOrDefault(
                                        clave => clave.CuentaSAP.Equals(claveContableOrigen.Valor));
                                if (cuentaSapOrigen == null)
                                {
                                    throw new ExcepcionServicio(string.Format("{0} {1}",
                                                                              "NO SE CUENTA CON CONFIGURACIÓN PARA CUENTA DE TRANSITO",
                                                                              claveContableOrigen.Valor));
                                }
                                datos = new DatosPolizaInfo
                                {
                                    NumeroReferencia = numeroDocumento,
                                    FechaEntrada     = fechaEnvio,
                                    Folio            = folioTraspaso.ToString(),
                                    CabezasRecibidas = cabezas.ToString(),
                                    NumeroDocumento  = folioTraspaso.ToString(),
                                    ClaseDocumento   = postFijoRef3,
                                    Importe          =
                                        string.Format("{0}", Cancelacion ? (animalCosto.Importe * -1).ToString("F2")
                                                                         : animalCosto.Importe.ToString("F2")),
                                    IndicadorImpuesto = String.Empty,
                                    Renglon           = Convert.ToString(renglon++),
                                    Cabezas           = Convert.ToString(cabezas),
                                    ImporteIva        = "0",
                                    Ref3             = ref3.ToString(),
                                    ArchivoFolio     = archivoFolio.ToString(),
                                    DescripcionCosto = cuentaSapOrigen.Descripcion,
                                    Cuenta           = cuentaSapOrigen.CuentaSAP,
                                    CentroCosto      =
                                        cuentaSapOrigen.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto)
                                            ? parametroOrganizacion.Valor
                                            : string.Empty,
                                    PesoOrigen      = pesoOrigen,
                                    Division        = divisionOrigen,
                                    ComplementoRef1 = COMPLEMENTO_REF1,
                                    TipoDocumento   = textoDocumento,
                                    Concepto        =
                                        String.Format("{0}-{1} ,{2} {3}, {4} {5}", prefijoConcepto,
                                                      folioTraspaso,
                                                      cabezas, DESCRIPCION_MOVIMIENTO,
                                                      pesoOrigen.ToString("N0"), UNIDAD_MOVIMIENTO),
                                    Sociedad = organizacionDestino.Sociedad,
                                    Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacionDestino.Sociedad),
                                };
                                polizaSalida = GeneraRegistroPoliza(datos);
                                polizasSalidaTraspaso.Add(polizaSalida);

                                datos = new DatosPolizaInfo
                                {
                                    NumeroReferencia = numeroDocumento,
                                    FechaEntrada     = fechaEnvio,
                                    Folio            = folioTraspaso.ToString(),
                                    CabezasRecibidas = cabezas.ToString(),
                                    NumeroDocumento  = folioTraspaso.ToString(),
                                    ClaseDocumento   = postFijoRef3,
                                    Importe          =
                                        string.Format("{0}", Cancelacion ? animalCosto.Importe.ToString("F2")
                                                                         : (animalCosto.Importe * -1).ToString("F2")),
                                    IndicadorImpuesto = String.Empty,
                                    Renglon           = Convert.ToString(renglon++),
                                    Cabezas           = Convert.ToString(cabezas),
                                    ImporteIva        = "0",
                                    Ref3             = ref3.ToString(),
                                    ArchivoFolio     = archivoFolio.ToString(),
                                    DescripcionCosto = cuentaSapDestino.Descripcion,
                                    Cuenta           = cuentaSapDestino.CuentaSAP,
                                    PesoOrigen       = pesoOrigen,
                                    Division         = divisionOrigen,
                                    ComplementoRef1  = COMPLEMENTO_REF1,
                                    TipoDocumento    = textoDocumento,
                                    Concepto         =
                                        String.Format("{0}-{1} ,{2} {3}, {4} {5}", prefijoConcepto,
                                                      folioTraspaso,
                                                      cabezas, DESCRIPCION_MOVIMIENTO,
                                                      pesoOrigen.ToString("N0"), UNIDAD_MOVIMIENTO),
                                    Sociedad = organizacionDestino.Sociedad,
                                    Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacionDestino.Sociedad),
                                };
                                polizaSalida = GeneraRegistroPoliza(datos);
                                polizasSalidaTraspaso.Add(polizaSalida);
                            }
                        }
                    }
                }
            }
            return(polizasSalidaTraspaso);
        }