Esempio n. 1
0
        private IList <PolizaInfo> ObtenerPoliza(PolizaContratoModel datosContrato)
        {
            var polizasContrato = new List <PolizaInfo>();

            int      folioPedido    = datosContrato.Contrato.Folio;
            int      organizacionID = datosContrato.Contrato.Organizacion.OrganizacionID;
            DateTime fechaPedido    = datosContrato.Contrato.Fecha;

            int    miliSegunda  = DateTime.Now.Millisecond;
            string archivoFolio = ObtenerArchivoFolio(fechaPedido);

            OrganizacionInfo organizacion = ObtenerOrganizacionIVA(organizacionID);

            var tipoContrato   = (TipoContratoEnum)datosContrato.Contrato.TipoContrato.TipoContratoId;
            var tipoPolizaEnum = TipoPoliza.PolizaContratoTerceros;

            switch (tipoContrato)
            {
            case TipoContratoEnum.EnTransito:
                tipoPolizaEnum = TipoPoliza.PolizaContratoTransito;
                break;
            }
            TipoPolizaInfo tipoPoliza =
                TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == tipoPolizaEnum.GetHashCode());

            if (tipoPoliza == null)
            {
                throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA",
                                                          TipoPoliza.PolizaContratoTerceros));
            }

            string textoDocumento = tipoPoliza.TextoDocumento;
            string tipoMovimiento = tipoPoliza.ClavePoliza;
            string postFijoRef3   = tipoPoliza.PostFijoRef3;

            var ref3 = new StringBuilder();

            ref3.Append("03");
            ref3.Append(Convert.ToString(folioPedido).PadLeft(10, ' '));
            ref3.Append(new Random(10).Next(10, 20));
            ref3.Append(new Random(30).Next(30, 40));
            ref3.Append(miliSegunda);
            ref3.Append(postFijoRef3);

            //string numeroDocumento = ObtenerNumeroReferencia;
            string numeroDocumento = ObtenerNumeroReferenciaFolio(datosContrato.AlmacenMovimiento.FolioMovimiento);

            var proveedorAlmacenBL = new ProveedorAlmacenBL();
            ProveedorAlmacenInfo proveedorAlmacen =
                proveedorAlmacenBL.ObtenerPorProveedorId(datosContrato.Contrato.Proveedor);

            if (proveedorAlmacen == null)
            {
                throw new ExcepcionServicio(string.Format("EL PROVEEDOR {0} NO TIENE ALMACEN ASIGNADO",
                                                          datosContrato.Contrato.Proveedor.Descripcion));
            }
            decimal importe = datosContrato.Contrato.Precio * datosContrato.Contrato.Cantidad;
            var     renglon = 1;
            var     datos   = new DatosPolizaInfo
            {
                NumeroReferencia = numeroDocumento,
                FechaEntrada     = datosContrato.Contrato.Fecha,
                Folio            = datosContrato.Contrato.Folio.ToString(),
                Importe          =
                    string.Format("{0}", importe.ToString("F2")),
                Renglon          = Convert.ToString(renglon),
                ImporteIva       = "0",
                Ref3             = ref3.ToString(),
                Cuenta           = datosContrato.Contrato.Cuenta.CuentaSAP,
                ArchivoFolio     = archivoFolio,
                DescripcionCosto = datosContrato.Contrato.Cuenta.Descripcion,
                PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                Division         = organizacion.Division,
                TipoDocumento    = textoDocumento,
                ClaseDocumento   = postFijoRef3,
                Concepto         = String.Format("{0}-{1} {2} {3} {4} ${5} {6}",
                                                 tipoMovimiento,
                                                 datosContrato.Contrato.Folio,
                                                 datosContrato.Contrato.Cantidad.ToString("N0"),
                                                 "KGS", datosContrato.Contrato.Producto.Descripcion,
                                                 importe.ToString("N2"), postFijoRef3),
                Sociedad = organizacion.Sociedad,
                Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
            };
            PolizaInfo poliza = GeneraRegistroPoliza(datos);

            polizasContrato.Add(poliza);

            renglon++;
            datos = new DatosPolizaInfo
            {
                NumeroReferencia = numeroDocumento,
                FechaEntrada     = datosContrato.Contrato.Fecha,
                Folio            = datosContrato.Contrato.Folio.ToString(),
                ClaveProveedor   = datosContrato.Contrato.Proveedor.CodigoSAP,
                Importe          =
                    string.Format("{0}", (importe * -1).ToString("F2")),
                Renglon          = Convert.ToString(renglon),
                Division         = organizacion.Division,
                ImporteIva       = "0",
                Ref3             = ref3.ToString(),
                ArchivoFolio     = archivoFolio,
                DescripcionCosto = datosContrato.Contrato.Proveedor.Descripcion,
                PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                TipoDocumento    = textoDocumento,
                ClaseDocumento   = postFijoRef3,
                Concepto         = String.Format("{0}-{1} {2} {3} {4} ${5} {6}",
                                                 tipoMovimiento,
                                                 datosContrato.Contrato.Folio,
                                                 datosContrato.Contrato.Cantidad.ToString("N0"),
                                                 "KGS", datosContrato.Contrato.Producto.Descripcion,
                                                 importe.ToString("N2"), postFijoRef3),
                Sociedad = organizacion.Sociedad,
                Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
            };
            poliza = GeneraRegistroPoliza(datos);
            polizasContrato.Add(poliza);

            return(polizasContrato);
        }
Esempio n. 2
0
        private IList <PolizaInfo> ObtenerPoliza(PolizaContratoModel datosContrato)
        {
            var polizasContrato = new List <PolizaInfo>();

            long     folioPedido    = datosContrato.AlmacenMovimiento.FolioMovimiento;
            int      organizacionID = datosContrato.Contrato.Organizacion.OrganizacionID;
            DateTime fechaPedido    = datosContrato.Contrato.Fecha;

            int    miliSegunda  = DateTime.Now.Millisecond;
            string archivoFolio = ObtenerArchivoFolio(fechaPedido);

            OrganizacionInfo organizacion = ObtenerOrganizacionIVA(organizacionID);

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

            if (tipoPoliza == null)
            {
                throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA",
                                                          TipoPoliza.PolizaContratoOtrosCostos));
            }

            string textoDocumento = tipoPoliza.TextoDocumento;
            string tipoMovimiento = tipoPoliza.ClavePoliza;
            string postFijoRef3   = tipoPoliza.PostFijoRef3;

            PolizaInfo poliza;
            var        renglon = 0;

            var ref3 = new StringBuilder();

            ref3.Append("03");
            ref3.Append(Convert.ToString(folioPedido).PadLeft(10, ' '));
            ref3.Append(new Random(10).Next(10, 20));
            ref3.Append(new Random(30).Next(30, 40));
            ref3.Append(miliSegunda);
            ref3.Append(postFijoRef3);

            //string numeroDocumento = ObtenerNumeroReferencia;
            string numeroDocumento = ObtenerNumeroReferenciaFolio(datosContrato.AlmacenMovimiento.FolioMovimiento);

            IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP();

            List <CostoInfo>           costos = datosContrato.OtrosCostos;
            CostoInfo                  costo;
            IList <UnidadMedicionInfo> unidadesMedicion = ObtenerUnidadesMedicion();
            UnidadMedicionInfo         unidadMedicion;
            IList <ProductoInfo>       productos = ObtenerProductos();
            ProductoInfo               producto;
            DatosPolizaInfo            datos;
            IList <int>                costosConRetencion = costos.Select(cos => cos.CostoID).ToList();

            for (var indexCostos = 0; indexCostos < costos.Count; indexCostos++)
            {
                costo = costos[indexCostos];
                bool esProveedor    = costo.Proveedor != null && !string.IsNullOrWhiteSpace(costo.Proveedor.CodigoSAP);
                bool tieneIva       = costo.AplicaIva;
                bool tieneRetencion = costo.AplicaRetencion;

                fechaPedido = costo.FechaCosto != DateTime.MinValue
                                  ? costo.FechaCosto
                                  : fechaPedido;

                producto       = productos.FirstOrDefault(id => id.ProductoId == datosContrato.Contrato.Producto.ProductoId);
                unidadMedicion =
                    unidadesMedicion.FirstOrDefault(uni => uni.UnidadID == producto.UnidadId);
                #region Es Proveedor
                if (esProveedor)
                {
                    #region Sin IVA ni Retencion
                    if (!tieneIva && !tieneRetencion)
                    {
                        renglon++;
                        datos = new DatosPolizaInfo
                        {
                            NumeroReferencia  = numeroDocumento,
                            FechaEntrada      = fechaPedido,
                            Folio             = folioPedido.ToString(),
                            Importe           = string.Format("{0}", costo.ImporteCosto.ToString("F2")),
                            IndicadorImpuesto = String.Empty,
                            Renglon           = Convert.ToString(renglon),
                            ImporteIva        = "0",
                            Ref3             = ref3.ToString(),
                            Cuenta           = datosContrato.Contrato.Cuenta.CuentaSAP,
                            ArchivoFolio     = archivoFolio,
                            DescripcionCosto = datosContrato.Contrato.Cuenta.Descripcion,
                            PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                            Division         = organizacion.Division,
                            TipoDocumento    = textoDocumento,
                            ClaseDocumento   = postFijoRef3,
                            Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                             tipoMovimiento,
                                                             folioPedido,
                                                             costo.ToneladasCosto.ToString("N0"),
                                                             unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                             costo.ImporteCosto.ToString("C2"), postFijoRef3),
                            Sociedad = organizacion.Sociedad,
                            Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                        };
                        poliza = GeneraRegistroPoliza(datos);
                        polizasContrato.Add(poliza);

                        renglon++;
                        datos = new DatosPolizaInfo
                        {
                            NumeroReferencia  = numeroDocumento,
                            FechaEntrada      = fechaPedido,
                            Folio             = folioPedido.ToString(),
                            ClaveProveedor    = costo.Proveedor.CodigoSAP,
                            Importe           = string.Format("{0}", (costo.ImporteCosto * -1).ToString("F2")),
                            IndicadorImpuesto = String.Empty,
                            Renglon           = Convert.ToString(renglon),
                            Division          = organizacion.Division,
                            ImporteIva        = "0",
                            Ref3             = ref3.ToString(),
                            ArchivoFolio     = archivoFolio,
                            DescripcionCosto = costo.Proveedor.Descripcion,
                            PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                            ClaseDocumento   = postFijoRef3,
                            TipoDocumento    = textoDocumento,
                            Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                             tipoMovimiento,
                                                             folioPedido,
                                                             costo.ToneladasCosto.ToString("N0"),
                                                             unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                             costo.ImporteCosto.ToString("C2"), postFijoRef3),
                            Sociedad = organizacion.Sociedad,
                            Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                        };
                        poliza = GeneraRegistroPoliza(datos);
                        polizasContrato.Add(poliza);
                    }
                    #endregion Sin IVA ni Retencion
                    else
                    {
                        #region Con IVA

                        if (tieneIva)
                        {
                            CuentaSAPInfo cuentaIva = cuentasSap.FirstOrDefault(
                                clave => clave.CuentaSAP.Equals(organizacion.Iva.CuentaRecuperar.ClaveCuenta));
                            if (cuentaIva == null)
                            {
                                cuentaIva = new CuentaSAPInfo {
                                    Descripcion = string.Empty
                                };
                            }
                            renglon++;
                            var importeIva = (costo.ImporteCosto) * (organizacion.Iva.TasaIva / 100);
                            datos = new DatosPolizaInfo
                            {
                                NumeroReferencia  = numeroDocumento,
                                FechaEntrada      = fechaPedido,
                                Folio             = folioPedido.ToString(),
                                Division          = organizacion.Division,
                                ClaveProveedor    = String.Empty,
                                Importe           = string.Format("{0}", costo.ImporteCosto.ToString("F2")),
                                IndicadorImpuesto = String.Empty,
                                Renglon           = Convert.ToString(renglon),
                                ImporteIva        = "0",
                                Ref3             = ref3.ToString(),
                                Cuenta           = datosContrato.Contrato.Cuenta.CuentaSAP,
                                ArchivoFolio     = archivoFolio,
                                DescripcionCosto = producto.Descripcion,
                                PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                                TipoDocumento    = textoDocumento,
                                ClaseDocumento   = postFijoRef3,
                                Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                                 tipoMovimiento,
                                                                 folioPedido,
                                                                 costo.ToneladasCosto.ToString("N0"),
                                                                 unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                                 costo.ImporteCosto.ToString("C2"), postFijoRef3),
                                Sociedad = organizacion.Sociedad,
                                Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                            };
                            poliza = GeneraRegistroPoliza(datos);
                            polizasContrato.Add(poliza);

                            renglon++;
                            datos = new DatosPolizaInfo
                            {
                                NumeroReferencia  = numeroDocumento,
                                FechaEntrada      = fechaPedido,
                                Folio             = folioPedido.ToString(),
                                ClaveProveedor    = String.Empty,
                                Importe           = string.Format("{0}", importeIva.ToString("F2")),
                                Renglon           = Convert.ToString(renglon),
                                ImporteIva        = costo.ImporteCosto.ToString("F2"),
                                IndicadorImpuesto = organizacion.Iva.IndicadorIvaRecuperar,
                                ClaveImpuesto     = ClaveImpuesto,
                                CondicionImpuesto = CondicionImpuesto,
                                Ref3             = ref3.ToString(),
                                Division         = organizacion.Division,
                                Cuenta           = organizacion.Iva.CuentaRecuperar.ClaveCuenta,
                                ArchivoFolio     = archivoFolio,
                                DescripcionCosto = cuentaIva.Descripcion,
                                PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                                TipoDocumento    = textoDocumento,
                                ClaseDocumento   = postFijoRef3,
                                Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                                 tipoMovimiento,
                                                                 folioPedido,
                                                                 costo.ToneladasCosto.ToString("N0"),
                                                                 unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                                 costo.ImporteCosto.ToString("C2"), postFijoRef3),
                                Sociedad = organizacion.Sociedad,
                                Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                            };
                            poliza = GeneraRegistroPoliza(datos);
                            polizasContrato.Add(poliza);

                            renglon++;

                            datos = new DatosPolizaInfo
                            {
                                NumeroReferencia  = numeroDocumento.ToString(),
                                FechaEntrada      = fechaPedido,
                                Folio             = folioPedido.ToString(),
                                Division          = organizacion.Division,
                                ClaveProveedor    = costo.Proveedor.CodigoSAP,
                                Importe           = string.Format("{0}", ((costo.ImporteCosto + importeIva) * -1).ToString("F2")),
                                IndicadorImpuesto = String.Empty,
                                Renglon           = Convert.ToString(renglon),
                                ImporteIva        = "0",
                                Ref3             = ref3.ToString(),
                                ArchivoFolio     = archivoFolio,
                                DescripcionCosto = costo.Proveedor.Descripcion,
                                PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                                TipoDocumento    = textoDocumento,
                                ClaseDocumento   = postFijoRef3,
                                Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                                 tipoMovimiento,
                                                                 folioPedido,
                                                                 costo.ToneladasCosto.ToString("N0"),
                                                                 unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                                 costo.ImporteCosto.ToString("C2"), postFijoRef3),
                                Sociedad = organizacion.Sociedad,
                                Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                            };
                            poliza = GeneraRegistroPoliza(datos);
                            polizasContrato.Add(poliza);
                        }
                        #endregion Con IVA

                        #region Con Retencion

                        if (tieneRetencion)
                        {
                            var           retencionBL = new RetencionBL();
                            var           retenciones = retencionBL.ObtenerRetencionesConCosto(costosConRetencion);
                            RetencionInfo retencion   = null;
                            if (retenciones != null && retenciones.Any())
                            {
                                retencion =
                                    retenciones.FirstOrDefault(
                                        costoRet => costoRet.CostoID == costo.CostoID);
                            }
                            if (retencion != null)
                            {
                                var parametrosRetencion = new StringBuilder();
                                parametrosRetencion.Append(String.Format("{0}{1}"
                                                                         , retencion.IndicadorRetencion
                                                                         , retencion.TipoRetencion));
                                datos = new DatosPolizaInfo
                                {
                                    NumeroReferencia  = numeroDocumento,
                                    FechaEntrada      = fechaPedido,
                                    Folio             = folioPedido.ToString(CultureInfo.InvariantCulture),
                                    Division          = organizacion.Division,
                                    ClaveProveedor    = costo.Proveedor.CodigoSAP,
                                    Importe           = string.Format("-{0}", "0"),
                                    IndicadorImpuesto = parametrosRetencion.ToString(),
                                    Renglon           = Convert.ToString(renglon),
                                    ImporteIva        = "0",
                                    Ref3             = ref3.ToString(),
                                    CodigoRetencion  = retencion.IndicadorImpuesto,
                                    TipoRetencion    = retencion.IndicadorRetencion,
                                    ArchivoFolio     = archivoFolio,
                                    DescripcionCosto = costo.Proveedor.Descripcion,
                                    PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                                    TipoDocumento    = textoDocumento,
                                    ClaseDocumento   = postFijoRef3,
                                    Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                                     tipoMovimiento,
                                                                     folioPedido,
                                                                     costo.ToneladasCosto.ToString("N0"),
                                                                     unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                                     costo.ImporteCosto.ToString("C2"), postFijoRef3),
                                    Sociedad = organizacion.Sociedad,
                                    Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                                };
                                poliza = GeneraRegistroPoliza(datos);
                                polizasContrato.Add(poliza);
                                if (!tieneIva)
                                {
                                    renglon++;
                                    datos = new DatosPolizaInfo
                                    {
                                        NumeroReferencia = numeroDocumento,
                                        FechaEntrada     = fechaPedido,
                                        Folio            = folioPedido.ToString(CultureInfo.InvariantCulture),
                                        Division         = organizacion.Division,
                                        ClaveProveedor   = costo.Proveedor.CodigoSAP,
                                        Importe          = string.Format("{0}", (costo.ImporteCosto * -1).ToString("F2")),
                                        Renglon          = Convert.ToString(renglon),
                                        ImporteIva       = "0",
                                        Ref3             = ref3.ToString(),
                                        ArchivoFolio     = archivoFolio,
                                        DescripcionCosto = costo.Proveedor.Descripcion,
                                        PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                                        TipoDocumento    = textoDocumento,
                                        ClaseDocumento   = postFijoRef3,
                                        Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                                         tipoMovimiento,
                                                                         folioPedido,
                                                                         costo.ToneladasCosto.ToString("N0"),
                                                                         unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                                         costo.ImporteCosto.ToString("C2"), postFijoRef3),
                                        Sociedad = organizacion.Sociedad,
                                        Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                                    };
                                    poliza = GeneraRegistroPoliza(datos);
                                    polizasContrato.Add(poliza);
                                    renglon++;
                                    datos = new DatosPolizaInfo
                                    {
                                        NumeroReferencia  = numeroDocumento,
                                        FechaEntrada      = fechaPedido,
                                        Folio             = folioPedido.ToString(CultureInfo.InvariantCulture),
                                        Division          = organizacion.Division,
                                        ClaveProveedor    = String.Empty,
                                        Importe           = string.Format("{0}", costo.ImporteCosto.ToString("F2")),
                                        IndicadorImpuesto = String.Empty,
                                        Renglon           = Convert.ToString(renglon),
                                        ImporteIva        = "0",
                                        Ref3             = ref3.ToString(),
                                        Cuenta           = datosContrato.Contrato.Cuenta.CuentaSAP,
                                        ArchivoFolio     = archivoFolio,
                                        DescripcionCosto = datosContrato.Contrato.Cuenta.Descripcion,
                                        PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                                        TipoDocumento    = textoDocumento,
                                        ClaseDocumento   = postFijoRef3,
                                        ComplementoRef1  = string.Empty,
                                        Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                                         tipoMovimiento,
                                                                         folioPedido,
                                                                         costo.ToneladasCosto.ToString("N0"),
                                                                         unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                                         costo.ImporteCosto.ToString("C2"), postFijoRef3),
                                        Sociedad = organizacion.Sociedad,
                                        Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                                    };
                                    poliza = GeneraRegistroPoliza(datos);
                                    polizasContrato.Add(poliza);
                                }
                            }
                        }

                        #endregion Con Retencion
                    }
                }
                #endregion Es Proveedor

                #region Es Cuenta
                else
                {
                    renglon++;
                    datos = new DatosPolizaInfo
                    {
                        NumeroReferencia  = numeroDocumento,
                        FechaEntrada      = fechaPedido,
                        Folio             = folioPedido.ToString(CultureInfo.InvariantCulture),
                        Division          = organizacion.Division,
                        ClaveProveedor    = String.Empty,
                        Importe           = string.Format("{0}", (costo.ImporteCosto * -1).ToString("F2")),
                        IndicadorImpuesto = String.Empty,
                        Renglon           = Convert.ToString(renglon),
                        Cabezas           = string.Empty,
                        ImporteIva        = "0",
                        Ref3             = ref3.ToString(),
                        Cuenta           = costo.CuentaSap.CuentaSAP,
                        ArchivoFolio     = archivoFolio,
                        DescripcionCosto = costo.CuentaSap.Descripcion,
                        PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                        TipoDocumento    = textoDocumento,
                        ClaseDocumento   = postFijoRef3,
                        Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                         tipoMovimiento,
                                                         folioPedido,
                                                         costo.ToneladasCosto.ToString("N0"),
                                                         unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                         costo.ImporteCosto.ToString("C2"), postFijoRef3),
                        Sociedad = organizacion.Sociedad,
                        Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                    };
                    poliza = GeneraRegistroPoliza(datos);
                    polizasContrato.Add(poliza);

                    renglon++;
                    datos = new DatosPolizaInfo
                    {
                        NumeroReferencia  = numeroDocumento,
                        FechaEntrada      = fechaPedido,
                        Folio             = folioPedido.ToString(CultureInfo.InvariantCulture),
                        Division          = organizacion.Division,
                        Importe           = string.Format("{0}", costo.ImporteCosto.ToString("F2")),
                        IndicadorImpuesto = String.Empty,
                        Renglon           = Convert.ToString(renglon),
                        ImporteIva        = "0",
                        Ref3             = ref3.ToString(),
                        Cuenta           = datosContrato.Contrato.Cuenta.CuentaSAP,
                        ArchivoFolio     = archivoFolio,
                        DescripcionCosto = producto.Descripcion,
                        PesoOrigen       = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0),
                        TipoDocumento    = textoDocumento,
                        ClaseDocumento   = postFijoRef3,
                        Concepto         = String.Format("{0}-{1} {2} {3} {4} {5} {6}",
                                                         tipoMovimiento,
                                                         folioPedido,
                                                         costo.ToneladasCosto.ToString("N0"),
                                                         unidadMedicion.ClaveUnidad, string.IsNullOrWhiteSpace(producto.Descripcion) ? producto.ProductoDescripcion : producto.Descripcion,
                                                         costo.ImporteCosto.ToString("C2"), postFijoRef3),
                        Sociedad = organizacion.Sociedad,
                        Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                    };
                    poliza = GeneraRegistroPoliza(datos);
                    polizasContrato.Add(poliza);
                }
                #endregion Es Cuenta
            }
            return(polizasContrato);
        }