예제 #1
0
        public IEnumerable <Direccion> TraerPorTipoYIdCatalogo(TipoCatalogoDireccion tipoCatalogoDireccion, int idCatalogo)
        {
            var tipoCatalogo   = new StringBuilder(7);
            var idCatalogoDato = new StringBuilder(12);

            _sdk.fPosPrimerDireccion().ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CTIPOCATALOGO", tipoCatalogo, 7).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CIDCATALOGO", idCatalogoDato, 12).ToResultadoSdk(_sdk).ThrowIfError();
            if (tipoCatalogoDireccion == TipoCatalogoDireccionHelper.ConvertToTipoCatalogoDireccion(tipoCatalogo.ToString()) &&
                idCatalogo == int.Parse(idCatalogoDato.ToString()))
            {
                yield return(LeerDatosDireccionActual());
            }

            while (_sdk.fPosSiguienteDireccion() == SdkResultConstants.Success)
            {
                _sdk.fLeeDatoDireccion("CTIPOCATALOGO", tipoCatalogo, 7).ToResultadoSdk(_sdk).ThrowIfError();
                _sdk.fLeeDatoDireccion("CIDCATALOGO", idCatalogoDato, 12).ToResultadoSdk(_sdk).ThrowIfError();
                if (tipoCatalogoDireccion == TipoCatalogoDireccionHelper.ConvertToTipoCatalogoDireccion(tipoCatalogo.ToString()) &&
                    idCatalogo == int.Parse(idCatalogoDato.ToString()))
                {
                    yield return(LeerDatosDireccionActual());
                }

                if (_sdk.fPosEOFDireccion() == 1)
                {
                    break;
                }
            }
        }
예제 #2
0
        private Direccion LeerDatosDireccionActual()
        {
            var tipoCatalogo   = new StringBuilder(7);
            var tipoDireccion  = new StringBuilder(7);
            var nombreCalle    = new StringBuilder(61);
            var numeroExterior = new StringBuilder(31);
            var numeroInterior = new StringBuilder(31);
            var colonia        = new StringBuilder(61);
            var codigoPostal   = new StringBuilder(7);
            var telefono1      = new StringBuilder(16);
            var telefono2      = new StringBuilder(16);
            var telefono3      = new StringBuilder(16);
            var telefono4      = new StringBuilder(16);
            var email          = new StringBuilder(51);
            var direccionWeb   = new StringBuilder(51);
            var ciudad         = new StringBuilder(61);
            var estado         = new StringBuilder(61);
            var pais           = new StringBuilder(61);
            var textoExtra     = new StringBuilder(61);
            var idDireccion    = new StringBuilder(12);
            var idCatalogo     = new StringBuilder(12);

            _sdk.fLeeDatoDireccion("CTIPOCATALOGO", tipoCatalogo, 7).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CTIPODIRECCION", tipoDireccion, 7).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CNOMBRECALLE", nombreCalle, 61).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CNUMEROEXTERIOR", numeroExterior, 31).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CNUMEROINTERIOR", numeroInterior, 31).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CCOLONIA", colonia, 61).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CCODIGOPOSTAL", codigoPostal, 7).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CTELEFONO1", telefono1, 16).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CTELEFONO2", telefono2, 16).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CTELEFONO3", telefono3, 16).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CTELEFONO4", telefono4, 16).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CEMAIL", email, 51).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CDIRECCIONWEB", direccionWeb, 51).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CCIUDAD", ciudad, 61).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CESTADO", estado, 61).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CPAIS", pais, 61).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CTEXTOEXTRA", textoExtra, 61).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CIDDIRECCION", idDireccion, 12).ToResultadoSdk(_sdk).ThrowIfError();
            _sdk.fLeeDatoDireccion("CIDCATALOGO", idCatalogo, 12).ToResultadoSdk(_sdk).ThrowIfError();

            var direccion = new Direccion();

            direccion.TipoCatalogo   = TipoCatalogoDireccionHelper.ConvertToTipoCatalogoDireccion(tipoCatalogo.ToString());
            direccion.TipoDireccion  = TipoDireccionHelper.ToTipoDireccion(tipoDireccion.ToString());
            direccion.NombreCalle    = nombreCalle.ToString();
            direccion.NumeroExterior = numeroExterior.ToString();
            direccion.NumeroInterior = numeroInterior.ToString();
            direccion.Colonia        = colonia.ToString();
            direccion.CodigoPostal   = codigoPostal.ToString();
            direccion.Telefono1      = telefono1.ToString();
            direccion.Telefono2      = telefono2.ToString();
            direccion.Telefono3      = telefono3.ToString();
            direccion.Telefono4      = telefono4.ToString();
            direccion.Email          = email.ToString();
            direccion.DireccionWeb   = direccionWeb.ToString();
            direccion.Ciudad         = ciudad.ToString();
            direccion.Estado         = estado.ToString();
            direccion.Pais           = pais.ToString();
            direccion.TextoExtra     = textoExtra.ToString();
            direccion.Id             = int.Parse(idDireccion.ToString());
            direccion.IdCatalogo     = int.Parse(idCatalogo.ToString());
            if ((direccion.TipoCatalogo == TipoCatalogoDireccion.Clientes || direccion.TipoCatalogo == TipoCatalogoDireccion.Proveedores) && _sdk.fBuscaIdCteProv(direccion.IdCatalogo) == SdkResultConstants.Success)
            {
                var codigoCliente = new StringBuilder(Constantes.kLongCodigo);
                _sdk.fLeeDatoCteProv("CCODIGOCLIENTE", codigoCliente, Constantes.kLongCodigo).ToResultadoSdk(_sdk).ThrowIfError();
                direccion.CodigoClienteProveedor = codigoCliente.ToString();
            }

            return(direccion);
        }