clbnkexch

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

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

Go to latest
Published: Dec 22, 2023 License: MIT Imports: 6 Imported by: 0

README

Формирование платежных поручений для банка.

Реализует формат выгрузки 1CClientBankExchange платежных документов в банк.

Как использовать:
	import (
		"os"
		"time"
		
		"github.com/dronm/clbnkexch"
	)
	//список документов
	documents := []clbnkexch.BankDocumenter{&clbnkexch.PPDocument{Num: 1,
		Date: time.Now(),
		Sum: 175000,
		Payer: &clbnkexch.Firm{Name: `ООО "Рога и Копыта"`, Inn: "1234567891", Account: "12345678901234567890"},
		PayerBank: &clbnkexch.Bank{Name: "Банк ОАО", Place: "г. Москва", Bik :"123456789", Account:"12345678901234567890"},
		Receiver: &clbnkexch.Firm{Name: `ИП Иванов А.А.`, Inn: "111122223344", Account: "12345678901234567890"},
		ReceiverBank: &clbnkexch.Bank{Name: "Банк2 ОАО", Place: "г. Москва", Bik: "123456789", Account: "12345678901234567890"},
		PayType: clbnkexch.PAY_TYPE_DIG,
		OplType: "01",
		Order: 5,
		PayComment: "За товары, по счету №125 на сумму 175000-00",		
	}}
	//Типы документов: п/п
	doc_types := []clbnkexch.DocumentType{clbnkexch.DOCUMENT_TYPE_PP}
	
	//объект выгрузки
	fl := clbnkexch.NewExchFile(doc_types, documents)
	
	//сохраним в файл
	f, err := os.Create("cl_to_bank.txt")
	if err != nil {
		panic("os.Create() failed: %v", err)
	}
	defer f.Close()
	
	//вывод в файл
	b, err := fl.Render()
	if err != nil {
		panic("ExchFile.String() failed: %v", err)
	}	
	f.Write(b)	

Documentation

Index

Constants

View Source
const (
	HEADER = "1CClientBankExchange"

	DEF_FORMAT_VERSION = "1.03"
	DEF_SENDER         = "Бухгалтерия предприятия, редакция 3.0"
)

Variables

View Source
var ErNoDocuments = errors.New("не задан список документов")
View Source
var ErNoPayer = errors.New("не задан плательщик документа")
View Source
var ErNoPayerBank = errors.New("не задан банк плательщика документа")
View Source
var ErNoReceiver = errors.New("не задан получатель документа")
View Source
var ErNoReceiverBank = errors.New("не задан банк получателя документа")

Functions

This section is empty.

Types

type Bank

type Bank struct {
	Name    string
	Place   string
	Bik     string
	Account string
}

type BankDocumenter

type BankDocumenter interface {
	GetDocumentType() DocumentType
	Render(*strings.Builder) error
	GetPayer() *Firm
}

type DocumentType

type DocumentType int

DocumentType

const (
	DOCUMENT_TYPE_PP DocumentType = iota
)

func (DocumentType) String

func (d DocumentType) String() string

type EncodingType

type EncodingType int
const (
	ENCODING_TYPE_WIN EncodingType = iota
	ENCODING_TYPE_DOS
)

func (EncodingType) String

func (e EncodingType) String() string

type ExchFile

type ExchFile struct {
	Version       string
	EncodingType  EncodingType
	Sender        string
	CreateDate    time.Time
	DateFrom      time.Time
	DateTo        time.Time
	DocumentTypes []DocumentType
	Documents     []BankDocumenter
}

func NewExchFile

func NewExchFile(documentTypes []DocumentType, documents []BankDocumenter) *ExchFile

func (*ExchFile) Render

func (f *ExchFile) Render() ([]byte, error)

type Firm

type Firm struct {
	Name    string
	Inn     string
	Account string
}

type PPDocument

type PPDocument struct {
	Num          int
	Date         time.Time
	Sum          float64
	Payer        *Firm
	PayerBank    *Bank
	Receiver     *Firm
	ReceiverBank *Bank
	PayType      PayType //вид платежа
	OplType      string  //вид оплаты
	Order        int
	PayComment   string
}

func (*PPDocument) GetDocumentType

func (d *PPDocument) GetDocumentType() DocumentType

func (*PPDocument) GetPayer

func (d *PPDocument) GetPayer() *Firm

func (*PPDocument) Render

func (d *PPDocument) Render(s *strings.Builder) error

type PayType

type PayType int

PayType

const (
	PAY_TYPE_DIG PayType = iota
)

func (PayType) String

func (d PayType) String() string

Jump to

Keyboard shortcuts

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