def _validar(self): datos = self._get_datos_empresa(self.company_id) grupos = {} recs = self._get_moves() for r in recs: grupos.setdefault(r.document_class_id.sii_code, []) grupos[r.document_class_id.sii_code].append(r) for anulaciones in self.anulaciones: raise UserError("terminar código anulaciones manuales") grupos.setdefault(r.document_class_id.sii_code, []) grupos[r.document_class_id.sii_code].append(r) datos['ConsumoFolios'] = { "FchInicio": self.fecha_inicio, "FchFinal": self.fecha_final, "SecEnvio": self.sec_envio, "Correlativo": self.correlativo, "Documento": [{'TipoDTE': k, 'documentos': v} for k, v in grupos.items()] } datos['test'] = True result = fe.libro(datos)[0] envio_dte = result['sii_xml_request'] doc_id = '%s_%s' % (self.tipo_operacion, self.periodo_tributario) self.sii_xml_request = self.env['sii.xml.envio'].create({ 'xml_envio': envio_dte, 'name': doc_id, 'company_id': self.company_id.id, }).id
def _validar(self): datos = self._get_datos_empresa(self.company_id) grupos = {} recs = self.with_context(lang='es_CL').move_ids for rec in recs: grupos.setdefault(rec.document_class_id.sii_code, []) grupos[rec.document_class_id.sii_code].append(rec._dte()) datos['Libro'] = { "PeriodoTributario": self.periodo_tributario, "TipoOperacion": 'GUIA', "TipoLibro": self.tipo_libro, "FolioNotificacion": self.folio_notificacion, "TipoEnvio": self.tipo_envio, "Documento": [{ 'TipoDTE': k, 'documentos': v } for k, v in grupos.items()] } datos['test'] = True result = fe.libro(datos) envio_dte = result['sii_xml_request'] doc_id = '%s_%s' % ('GUIA', self.periodo_tributario) self.sii_xml_request = self.env['sii.xml.envio'].create({ 'xml_envio': envio_dte, 'name': doc_id, 'company_id': self.company_id.id, }).id
def _validar(self): datos = self._get_datos_empresa(self.company_id) grupos = {} boletas = [] recs = self._get_moves() for r in recs: grupos.setdefault(r.document_class_id.sii_code, []) grupos[r.document_class_id.sii_code].append(r.with_context(tax_detail=True)._dte()) for b in self.boletas: boletas.append(b._dte()) datos['Libro'] = { "PeriodoTributario": self.periodo_tributario, "TipoOperacion": self.tipo_operacion, "TipoLibro": self.tipo_libro, "FolioNotificacion": self.folio_notificacion, "TipoEnvio": self.tipo_envio, "CodigoRectificacion": self.codigo_rectificacion, "Documento": [{'TipoDTE': k, 'documentos': v} for k, v in grupos.items()], 'FctProp': self.fact_prop, 'boletas': boletas, } datos['test'] = True result = fe.libro(datos) envio_dte = result['sii_xml_request'] doc_id = '%s_%s' % (self.tipo_operacion, self.periodo_tributario) self.sii_xml_request = self.env['sii.xml.envio'].create({ 'xml_envio': envio_dte, 'name': doc_id, 'company_id': self.company_id.id, }).id
def _validar(self): datos = self._get_datos_empresa(self.company_id) grupos = {} boletas = [] recs = self._get_moves() for r in recs: grupos.setdefault(r.document_class_id.sii_code, []) grupos[r.document_class_id.sii_code].append( r.with_context(tax_detail=True)._dte()) for b in self.boletas: boletas.append(b._dte()) datos["Libro"] = { "PeriodoTributario": self.periodo_tributario, "TipoOperacion": self.tipo_operacion, "TipoLibro": self.tipo_libro, "FolioNotificacion": self.folio_notificacion, "TipoEnvio": self.tipo_envio, "CodigoRectificacion": self.codigo_rectificacion, "Documento": [{ "TipoDTE": k, "documentos": v } for k, v in grupos.items()], "FctProp": self.fact_prop, "boletas": boletas, } datos["test"] = True result = fe.libro(datos) envio_dte = result["sii_xml_request"] doc_id = "{}_{}".format(self.tipo_operacion, self.periodo_tributario) self.sii_xml_request = (self.env["sii.xml.envio"].create({ "xml_envio": envio_dte, "name": doc_id, "company_id": self.company_id.id, }).id)
def _validar(self): datos = self._get_datos_empresa(self.company_id) grupos = {} recs = self._get_moves() for r in recs: grupos.setdefault(r['Encabezado']['IdDoc']['TipoDTE'], []) grupos[r['Encabezado']['IdDoc']['TipoDTE']].append(r) for boletas in self.boletas: resumenesPeriodo[boletas.tipo_boleta.id] = {} resumen = self._setResumenBoletas(boletas) datos['Libro'] = { "PeriodoTributario": self.periodo_tributario, "TipoOperacion": self.tipo_operacion, "TipoLibro": self.tipo_libro, "FolioNotificacion": self.folio_notificacion, "TipoEnvio": self.tipo_envio, "CodigoRectificacion": self.codigo_rectificacion, "Documento": [{ 'TipoDTE': k, 'documentos': v } for k, v in grupos.items()], 'FctProp': self.fact_prop, } datos['test'] = True result = fe.libro(datos) envio_dte = result['sii_xml_request'] doc_id = '%s_%s' % (self.tipo_operacion, self.periodo_tributario) self.sii_xml_request = self.env['sii.xml.envio'].create({ 'xml_envio': envio_dte, 'name': doc_id, 'company_id': self.company_id.id, }).id
def do_dte_send(self, n_atencion=''): if self.sii_xml_request and self.sii_xml_request.state == "Rechazado": self.sii_xml_request.unlink() self._validar() self.sii_xml_request.state = 'NoEnviado' if self.state in ['NoEnviado', 'EnCola']: envio_id = self.sii_xml_request datos = self._get_datos_empresa(self.company_id) datos.update({ 'Libro': { "PeriodoTributario": self.periodo_tributario, "TipoOperacion": self.tipo_operacion, "TipoLibro": self.tipo_libro, "TipoEnvio": self.tipo_envio, }, 'sii_xml_request': envio_id.xml_envio.replace( '''<?xml version="1.0" encoding="ISO-8859-1"?>\n''', ''), 'ID': envio_id.name, }) result = fe.libro(datos) envio = { 'xml_envio': result['sii_xml_request'], 'name': result['sii_send_filename'], 'company_id': self.company_id.id, 'user_id': self.env.uid, 'sii_send_ident': result.get('sii_send_ident'), 'sii_xml_response': result.get('sii_xml_response'), 'state': result.get('sii_result'), } if not envio_id: envio_id = self.env['sii.xml.envio'].create(envio) for i in self: i.sii_xml_request = envio_id.id i.state = 'Enviado' else: envio_id.write(envio) return self.sii_xml_request
def do_dte_send(self, n_atencion=""): if self.sii_xml_request and self.sii_xml_request.state == "Rechazado": self.sii_xml_request.unlink() self._validar() self.sii_xml_request.state = "NoEnviado" if self.state in ["NoEnviado", "EnCola"]: envio_id = self.sii_xml_request datos = self._get_datos_empresa(self.company_id) datos.update({ "Libro": { "PeriodoTributario": self.periodo_tributario, "TipoOperacion": self.tipo_operacion, "TipoLibro": self.tipo_libro, "TipoEnvio": self.tipo_envio, }, "sii_xml_request": envio_id.xml_envio.replace( """<?xml version="1.0" encoding="ISO-8859-1"?>\n""", ""), "ID": envio_id.name, }) result = fe.libro(datos) envio = { "xml_envio": result["sii_xml_request"], "name": result["sii_send_filename"], "company_id": self.company_id.id, "user_id": self.env.uid, "sii_send_ident": result.get("sii_send_ident"), "sii_xml_response": result.get("sii_xml_response"), "state": result.get("sii_result"), } if not envio_id: envio_id = self.env["sii.xml.envio"].create(envio) for i in self: i.sii_xml_request = envio_id.id i.state = "Enviado" else: envio_id.write(envio) return self.sii_xml_request
def _validar(self): util_model = self.env['odoo.utils'] fecha_inicio = fields.Date.to_date(self.periodo_tributario + "-01") fecha_fin = fecha_inicio + relativedelta(day=1, days=-1, months=1) date_start = util_model._change_time_zone( fields.Datetime.to_datetime(self.periodo_tributario + "-01")) date_end = util_model._change_time_zone( fields.Datetime.to_datetime(self.periodo_tributario + "-01 23:59:59") + relativedelta(day=1, days=-1, months=1)) if self.tipo_operacion != 'COMPRA' and self.check_folios_duplicity( fecha_inicio, fecha_fin, date_start, date_end): raise UserError( u"Hay folios repetidos, primero regularice eso, contacte con su administrador" ) datos = self._get_datos_empresa(self.company_id) grupos = {} boletas = [] recs = sorted( self._get_moves(), key=lambda r: f"{r.document_class_id.sii_code}_{r.sii_document_number}") self.move_ids.write({'sended': True}) for r in recs: grupos.setdefault(r.document_class_id.sii_code, []) grupos[r.document_class_id.sii_code].append( r.with_context(tax_detail=True)._dte(is_for_libro=True)) # for b in self.boletas: # boletas.append(b._dte()) datos['Libro'] = { "PeriodoTributario": self.periodo_tributario, "TipoOperacion": self.tipo_operacion, "TipoLibro": self.tipo_libro, "FolioNotificacion": self.folio_notificacion, "TipoEnvio": self.tipo_envio, "CodigoRectificacion": self.codigo_rectificacion, "Documento": [{ 'TipoDTE': k, 'documentos': v } for k, v in grupos.items()], 'FctProp': self.fact_prop, 'boletas': boletas, } datos['test'] = True result = fe.libro(datos) envio_dte = result['sii_xml_request'] doc_id = '%s_%s' % (self.tipo_operacion, self.periodo_tributario) self.sii_xml_request = self.env['sii.xml.envio'].create({ 'xml_envio': envio_dte, 'name': doc_id, 'company_id': self.company_id.id, }).id