109 lines
4.3 KiB
Python
109 lines
4.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
from odoo import api, fields, models
|
|
from .http_helper import DEFAULT_SERVICE_URL
|
|
from .http_helper import DEFAULT_SERVICE_URL_GET
|
|
from .http_helper import DEFAULT_SERVICE_POST
|
|
|
|
EI_DATABASE_HELP = """
|
|
Base de Datos en la cual funcionará la Facturación Electrónica"""
|
|
EI_ENVIRONMENT_HELP = """
|
|
Indicador del tipo de ambiente de Facturación Electrónica que se usará en
|
|
esta Base de Datos"""
|
|
SERVICE_URL_HELP = """URL de envio de Facturación Electrónica del Proveedor"""
|
|
SERVICE_URL_GET_HELP = """URL de Respuesta de Proveedor"""
|
|
SERVICE_URL_POST_HELP = """
|
|
URL de envio de Facturación Electrónica del Facturador"""
|
|
SOFTWARE_TOKEN_HELP = """Token de Proveedor Tecnológico"""
|
|
SOFTWARE_CODE_DIAN_HELP = """Codigo de software dado por la DIAN"""
|
|
EI_TMP_PATH_HELP = """Directorio local para archivos temporales"""
|
|
EI_AUTOMATIC_GENERATION_HELP = """
|
|
Enviar factura electrónica automáticamente al validar la factura"""
|
|
ATTACH_CUSTOMER_ORDER_HELP = """
|
|
Adjuntar en el correo la orden de compra del cliente"""
|
|
ATTACH_DELIVERY_NOTE_HELP = """Adjuntar documento de remisión de pedido"""
|
|
ATTACH_INVOICE_DOCS_HELP = """
|
|
Adjuntar documentos adicionales al pdf y xml adjuntos en la factura"""
|
|
AUTO_ACCEPTANCE_EMAIL_HELP = """Enviar correo de aceptación al cliente
|
|
una vez la factura haya quedado aceptada por la DIAN"""
|
|
EI_ID_CUSTOMIZATION_HELP = """
|
|
Tipo de Operación principal de facturación electrónica de la compañía"""
|
|
TRIBUTARY_OBLIGATIONS_HELP = """
|
|
Usadas en la construcción del XML AttachedDocument"""
|
|
|
|
|
|
class ResCompany(models.Model):
|
|
_inherit = 'res.company'
|
|
|
|
# Basic config
|
|
|
|
electronic_invoice = fields.Boolean(
|
|
string='Activar Facturación Electrónica')
|
|
ei_database = fields.Char(
|
|
string='Base de Datos', default=lambda self: self.env.cr.dbname,
|
|
required=True, help=EI_DATABASE_HELP)
|
|
ei_environment = fields.Selection(
|
|
string='Ambiente',
|
|
selection=[
|
|
('production', u'Producción'), ('test', u'Habilitación')],
|
|
default='test', required=True, help=EI_ENVIRONMENT_HELP)
|
|
ei_software_operation = fields.Selection(
|
|
string='Operación de Software',
|
|
selection=[
|
|
('own', u'Software Propio'),
|
|
('provider', u'Proveedor Tecnológico')],
|
|
default='provider', required=True)
|
|
|
|
# Server
|
|
|
|
service_url = fields.Char(
|
|
string='URL Servicio', help=SERVICE_URL_HELP,
|
|
default=DEFAULT_SERVICE_URL)
|
|
service_url_get = fields.Char(
|
|
string='URL Respuesta', help=SERVICE_URL_GET_HELP,
|
|
default=DEFAULT_SERVICE_URL_GET)
|
|
service_url_post = fields.Char(
|
|
string='URL Peticion', help=SERVICE_URL_POST_HELP,
|
|
default=DEFAULT_SERVICE_POST)
|
|
software_token = fields.Char(
|
|
string='Token', help=SOFTWARE_TOKEN_HELP)
|
|
software_code_dian = fields.Char(
|
|
string='Codigo Software DIAN', help=SOFTWARE_CODE_DIAN_HELP)
|
|
ei_tmp_path = fields.Char(
|
|
string='Ruta de Archivos Temporales',
|
|
help=EI_TMP_PATH_HELP, default='/tmp')
|
|
|
|
# Policies
|
|
|
|
ei_automatic_generation = fields.Boolean(
|
|
string='Enviar Factura al Validar',
|
|
help=EI_AUTOMATIC_GENERATION_HELP)
|
|
attach_customer_order = fields.Boolean(
|
|
string='Adjuntar OC Cliente', help=ATTACH_CUSTOMER_ORDER_HELP)
|
|
attach_delivery_note = fields.Boolean(
|
|
string='Adjuntar Remisión', help=ATTACH_DELIVERY_NOTE_HELP)
|
|
attach_invoice_docs = fields.Boolean(
|
|
string='Envíar Adjuntos de Factura',
|
|
help=ATTACH_INVOICE_DOCS_HELP)
|
|
auto_acceptance_email = fields.Boolean(
|
|
string='Email de Aceptación Automático',
|
|
help=AUTO_ACCEPTANCE_EMAIL_HELP)
|
|
|
|
# Settings
|
|
|
|
ei_id_customization = fields.Selection(
|
|
string='Operación Principal',
|
|
selection=[('09', 'AIU'), ('10', 'Estandar'), ('11', 'Mandatos')],
|
|
required=True, default='10',
|
|
help=EI_ID_CUSTOMIZATION_HELP)
|
|
mail_server_id = fields.Many2one(
|
|
string='Servidor Email Preferido',
|
|
comodel_name='ir.mail_server')
|
|
ei_report_id = fields.Many2one(
|
|
string='Formato PDF', comodel_name='ir.actions.report',
|
|
domain=[('model', '=', 'account.move')])
|
|
tributary_obligations = fields.Char(
|
|
string='Obligaciones Tributarias',
|
|
help=TRIBUTARY_OBLIGATIONS_HELP,
|
|
default='R-99-PN')
|
|
invoice_batch_process = fields.Boolean(string='Procesamiento Masivo')
|