gonoov

package module
v0.0.0-...-f818b12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2017 License: MIT Imports: 15 Imported by: 0

README

Golang Noov Client

Usage

package main

import (
	"encoding/json"
	"fmt"

	"github.com/robertogyn19/gonoov"
)

const (
	appname   = "AppName"
	email     = "Email"
	apikey    = "apikey"
	apisecret = "apisecret"
)

func main() {
	lparams := gonoov.LoginParams{apikey, apisecret, appname, email}
	noov := gonoov.NewNoov(lparams)
	noov.Authenticate()

	params := gonoov.NfeParams{}
	params.Size = 1
	params.Model = []string{"55"}
	params.DCnpj = []string{"01234567890"}
	params.Pagination.PageSize = 1

    p, _ := json.Marshal(params)
	fmt.Println()
	fmt.Println("--> nfe params", string(p))
	fmt.Println()

	nfeResponse, err := noov.GetNfe(params)

	if err != nil {
		fmt.Println("Error in get nfe", err)
	}

	body, _ := json.Marshal(nfeResponse.Data)
	pag, _ := json.Marshal(nfeResponse.Pagination)

	fmt.Println()
	fmt.Println("--> response  ", string(body))
	fmt.Println("--> pagination", string(pag))
	fmt.Println()
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type COFINS

type COFINS struct {
	COFINSAliq struct {
		VCOFINS NoovString `json:"vCOFINS"`
		CST     NoovString `json:"CST"`
		VBC     NoovString `json:"vBC"`
		PCOFINS NoovString `json:"pCOFINS"`
	} `json:"COFINSAliq"`
}

type DynamicPagination

type DynamicPagination struct {
	Pagination
	NextProtocol NoovString `json:"nextProtocol,omitempty"`
}

type Enrichment

type Enrichment struct {
	CodVendedor   string `json:"codvendedor"`
	NomeVendedor  string `json:"nomevendedor"`
	CodSupervisor string `json:"codsupervisor"`
	CodTipologia  string `json:"codtipologia"`
	CodCliente    string `json:"cod_cliente"`
	NomeTipologia string `json:"nometipologia"`
}

type ICMS

type ICMS struct {
	ICMS60 struct {
		CST        NoovString `json:"CST"`
		VBCSTRet   NoovString `json:"vBCSTRet"`
		VICMSSTRet NoovString `json:"vICMSSTRet"`
		Orig       NoovString `json:"orig"`
	} `json:"ICMS60"`
}

type ICMSTotal

type ICMSTotal struct {
	VICMSUFDest  json.Number `json:"vICMSUFDest"`
	VFCPUFDest   json.Number `json:"vFCPUFDest"`
	VBC          json.Number `json:"vBC"`
	VST          json.Number `json:"vST"`
	VProd        json.Number `json:"vProd"`
	VTotTrib     json.Number `json:"vTotTrib"`
	VBCST        json.Number `json:"vBCST"`
	VCOFINS      json.Number `json:"vCOFINS"`
	VFrete       json.Number `json:"vFrete"`
	VOutro       json.Number `json:"vOutro"`
	VICMSDeson   json.Number `json:"vICMSDeson"`
	VII          json.Number `json:"vII"`
	VDesc        json.Number `json:"vDesc"`
	VICMSUFRemet json.Number `json:"vICMSUFRemet"`
	VIPI         json.Number `json:"vIPI"`
	VPIS         json.Number `json:"vPIS"`
	VICMS        json.Number `json:"vICMS"`
	VSeg         json.Number `json:"vSeg"`
	VNF          json.Number `json:"vNF"`
}

type Imposto

type Imposto struct {
	ICMS     ICMS       `json:"ICMS"`
	COFINS   COFINS     `json:"COFINS"`
	PIS      PIS        `json:"PIS"`
	VTotTrib NoovString `json:"vTotTrib"`
}

type InfNfe

type InfNfe struct {
	ID      string     `json:"Id"`
	Version float32    `json:"versao"`
	Total   NfeTotal   `json:"total"`
	InfAdic NfeInfAdic `json:"infAdic"`
	Transp  NfeTransp  `json:"transp"`
	Ide     NfeIde     `json:"ide"`
	Dest    NfeDest    `json:"dest"`
	Emit    NfeEmit    `json:"emit"`
	Det     NoovNfeDet `json:"det"`
}

type InfProt

type InfProt struct {
	DigVal   NoovString  `json:"digVal"`
	VerAplic NoovString  `json:"verAplic"`
	DhRecbto NoovTime    `json:"dhrecbto"`
	ChNfe    NoovString  `json:"chNFe"`
	XMotivo  NoovString  `json:"xMotivo"`
	TpAmb    float32     `json:"tpAmb"`
	CStat    float32     `json:"cStat"`
	NProt    json.Number `json:"nProt"`
}

type LoginParams

type LoginParams struct {
	ApiKey    string
	ApiSecret string
	AppName   string
	Email     string
}

type Meta

type Meta struct {
	Errors []NoovError `json:"errors"`
}

type MetaResponse

type MetaResponse struct {
	Meta Meta `json:"meta"`
}

type NFe

type NFe struct {
	Xmlns  string `json:"xmlns"`
	InfNfe InfNfe `json:"infNFe"`
}

type NfeAddress

type NfeAddress struct {
	CEP     NoovString `json:"CEP"`
	CMun    NoovString `json:"cMun"`
	CPais   NoovString `json:"cPais"`
	Fone    NoovString `json:"fone"`
	Nro     NoovString `json:"nro"`
	UF      NoovString `json:"UF"`
	XMun    NoovString `json:"xMun"`
	XPais   NoovString `json:"xPais"`
	XBairro NoovString `json:"xBairro"`
	XLgr    NoovString `json:"xLgr"`
	XCpl    NoovString `json:"xCpl"`
}

type NfeDest

type NfeDest struct {
	CPF       string     `json:"CPF"`
	Cnpj      string     `json:"CNPJ"`
	Email     string     `json:"email"`
	EnderDest NfeAddress `json:"enderDest"`
	IE        NoovString `json:"IE"`
	IndIEDest int        `json:"indIEDest"`
	XNome     string     `json:"xNome"`
}

type NfeDet

type NfeDet struct {
	Imposto Imposto `json:"imposto"`
	NItem   int     `json:"nItem"`
	Prod    Produto `json:"prod"`
}

type NfeEmit

type NfeEmit struct {
	XFant     string     `json:"xFant"`
	CNPJ      string     `json:"CNPJ"`
	EnderEmit NfeAddress `json:"enderEmit"`
	XNome     string     `json:"xNome"`
	CRT       int        `json:"CRT"`
	IE        NoovString `json:"IE"`
}

type NfeIde

type NfeIde struct {
	DhSaiEnt string      `json:"dhSaiEnt"`
	TpEmis   json.Number `json:"tpEmis"`
	TpNF     json.Number `json:"tpNF"`
	CMunFG   json.Number `json:"cMunFG"`
	CUF      json.Number `json:"cUF"`
	Mod      json.Number `json:"mod"`
	TpAmb    json.Number `json:"tpAmb"`
	TpImp    json.Number `json:"tpImp"`
	FinNFe   json.Number `json:"finNFe"`
	IndFinal json.Number `json:"indFinal"`
	ProcEmi  json.Number `json:"procEmi"`
	IDDest   json.Number `json:"idDest"`
	NNF      json.Number `json:"nNF"`
	IndPag   json.Number `json:"indPag"`
	IndPres  json.Number `json:"indPres"`
	Serie    json.Number `json:"serie"`
	CDV      json.Number `json:"cDV"`
	CNF      NoovString  `json:"cNF"`
	NatOp    NoovString  `json:"natOp"`
	VerProc  NoovString  `json:"verProc"`
	DHEmi    NoovTime    `json:"dhEmi"`
}

func (*NfeIde) UnmarshalJSON

func (n *NfeIde) UnmarshalJSON(data []byte) error

type NfeInfAdic

type NfeInfAdic struct {
	ObsCont NfeObsContArray `json:"obsCont"`
	InfCpl  NoovString      `json:"infCpl"`
}

func (*NfeInfAdic) UnmarshalJSON

func (nia *NfeInfAdic) UnmarshalJSON(data []byte) error

type NfeObsCont

type NfeObsCont struct {
	XCampo NoovString `json:"xCampo"`
	XTexto NoovString `json:"xTexto"`
}

type NfeObsContArray

type NfeObsContArray []NfeObsCont

func (*NfeObsContArray) UnmarshalJSON

func (nv *NfeObsContArray) UnmarshalJSON(data []byte) error

type NfeParams

type NfeParams struct {
	Model        []string   `json:"modelo,omitempty"`
	Number       string     `json:"numero,omitempty"`
	Serie        string     `json:"serie,omitempty"`
	ECnpj        []string   `json:"emiDoc,omitempty"`
	DCnpj        []string   `json:"destDoc,omitempty"`
	Cancelled    bool       `json:"cancelados,omitempty"`
	Cean         []string   `json:"cean,omitempty"`
	Key          string     `json:"chave,omitempty"`
	EEndDate     int64      `json:"emDataFinal,omitempty"`
	EStartDate   int64      `json:"emDataInicial,omitempty"`
	EDate        string     `json:"emData,omitempty"`
	REndDate     int64      `json:"recDataFinal,omitempty"`
	RStartDate   int64      `json:"recDataInicial,omitempty"`
	RDate        int64      `json:"recData,omitempty"`
	ECity        string     `json:"emitCidade,omitempty"`
	EState       string     `json:"emitUF,omitempty"`
	Size         int        `json:"pageSize,omitempty"`
	NextProtocol NoovString `json:"nextProtocol,omitempty"`
	AllCnpj      bool       `json:"allCnpj,omitempty"`
}

type NfeProc

type NfeProc struct {
	Xmlns   string  `json:"xmlns"`
	ProtNfe ProNfe  `json:"protNFe"`
	Xmlns2  string  `json:"xmlns:ns2"`
	NFe     NFe     `json:"NFe"`
	Version float32 `json:"versao"`
}

type NfeRawResponse

type NfeRawResponse struct {
	MetaResponse
	Data       []NfeResponse     `json:"data"`
	Pagination DynamicPagination `json:"pagination"`
	Raw        []byte            `json:"-"`
}

type NfeResponse

type NfeResponse struct {
	ID         string     `json:"id"`
	NfeProc    NfeProc    `json:"nfeProc"`
	Enrichment Enrichment `json:"enrichment"`
}

type NfeTotal

type NfeTotal struct {
	ICMSTotal ICMSTotal `json:"ICMSTot"`
}

type NfeTransp

type NfeTransp struct {
	ModFrete int    `json:"modFrete"`
	Vol      NfeVol `json:"vol"`
}

type NfeVol

type NfeVol struct {
	Marca NoovString  `json:"marca"`
	PesoL json.Number `json:"pesoL"`
	Esp   NoovString  `json:"esp"`
	QVol  NoovString  `json:"qVol"`
	PesoB json.Number `json:"pesoB"`
}

func (*NfeVol) UnmarshalJSON

func (nv *NfeVol) UnmarshalJSON(data []byte) error

type Noov

type Noov struct {
	ApiKey    string
	ApiSecret string

	Token          string
	TokenTimestamp int64 // token timestamp
	// contains filtered or unexported fields
}

func NewNoov

func NewNoov(params LoginParams) *Noov

func (*Noov) Authenticate

func (noov *Noov) Authenticate() error

func (*Noov) GetNfe

func (noov *Noov) GetNfe(params NfeParams) (NfeRawResponse, error)

func (*Noov) Stats

func (noov *Noov) Stats(params StatsParams) (Stats, error)

func (*Noov) Totalizer

func (noov *Noov) Totalizer(params TotalizerParams) (TotalizerResponse, error)

type NoovError

type NoovError struct {
	Error   string `json:"error"`
	Message string `json:"message"`
}

type NoovNfeDet

type NoovNfeDet []NfeDet

func (*NoovNfeDet) UnmarshalJSON

func (det *NoovNfeDet) UnmarshalJSON(data []byte) error

type NoovString

type NoovString string

Custom type to transform any type to string

func (NoovString) String

func (v NoovString) String() string

func (*NoovString) UnmarshalJSON

func (v *NoovString) UnmarshalJSON(data []byte) error

type NoovTime

type NoovTime struct {
	Time  time.Time
	Valid bool
}

func NewNoovTime

func NewNoovTime(s string) (NoovTime, error)

func (*NoovTime) UnmarshalJSON

func (t *NoovTime) UnmarshalJSON(data []byte) error

type PIS

type PIS struct {
	PISAliq struct {
		VPIS NoovString `json:"vPIS"`
		CST  NoovString `json:"CST"`
		VBC  NoovString `json:"vBC"`
		PPIS NoovString `json:"pPIS"`
	} `json:"PISAliq"`
}

type Pagination

type Pagination struct {
	PageSize  int  `json:"pageSize,omitempty"`
	PageTotal int  `json:"pageTotalElements,omitempty"`
	LastPage  bool `json:"lastPage,omitempty"`
}

type ProNfe

type ProNfe struct {
	Version float32 `json:"version"`
	InfProt InfProt `json:"infProt"`
}

type Produto

type Produto struct {
	CEAN     NoovString  `json:"cEAN"`
	CProd    NoovString  `json:"cProd"`
	CEANTrib NoovString  `json:"cEANTrib"`
	CEST     NoovString  `json:"CEST"`
	CFOP     json.Number `json:"CFOP"`
	IndTot   json.Number `json:"indTot"`
	QCom     json.Number `json:"qCom"`
	QTrib    json.Number `json:"qTrib"`
	UCom     NoovString  `json:"uCom"`
	UTrib    NoovString  `json:"uTrib"`
	VProd    json.Number `json:"vProd"`
	VFrete   json.Number `json:"vFrete"`
	VUnCom   NoovString  `json:"vUnCom,number"`
	VUnTrib  NoovString  `json:"vUnTrib"`
	XProd    string      `json:"xProd"`
}

type StaticPagination

type StaticPagination struct {
	Pagination
	Number        int   `json:"number,omitempty"`
	TotalElements int64 `json:"totalElements,omitempty"`
}

type Stats

type Stats struct {
	MetaResponse
	Emitentes  []string `json:"emitentes"`
	EStartDate string   `json:"emData,omitempty"`
	Total      int      `json:"totalNfesEmitidas,omitempty"`
	Raw        []byte   `json:"-"`
}

type StatsParams

type StatsParams struct {
	EnvironmentType int        `json:"tpAmb"`
	ECnpj           []string   `json:"emiDoc,omitempty"`
	EStartDate      string     `json:"emData,omitempty"`
	AllCnpj         bool       `json:"allCnpj,omitempty"`
	Size            int        `json:"pageSize,omitempty"`
	Page            int        `json:"page,omitempty"`
	NextProtocol    NoovString `json:"nextProtocol,omitempty"`
}

type Totalizer

type Totalizer struct {
	Day        string   `json:"dia"`
	Emit       string   `json:"emitente"`
	NFEKey     string   `json:"chNF"`
	SalesmanID string   `json:"vendedor"`
	NFEValue   float64  `json:"valorNF"`
	CFOPs      []string `json:"cfops"`
	NFEType    float64  `json:"tipoNF"`
	Raw        []byte   `json:"-"`
}

type TotalizerParams

type TotalizerParams struct {
	NFEKey string   `json:"chave"    url:"chave,omitempty"`
	Emits  []string `json:"emits"    url:"emits,omitempty"`
	CFOPs  []int    `json:"cfops"    url:"cfops,omitempty"`
	Day    string   `json:"dia"      url:"dia,omitempty"`
	Seller string   `json:"vendedor" url:"vendedor,omitempty"`
}

type TotalizerResponse

type TotalizerResponse struct {
	Totalizers []Totalizer `json:"totalizers"`
	Raw        []byte      `json:"-"`
}

Directories

Path Synopsis
example
nfe

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL