199 lines
14 KiB
XML
199 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<template id="cfdi_cartaporte">
|
|
<cfdi:Comprobante
|
|
t-att-Fecha="cfdi_date"
|
|
t-att-Folio="folio"
|
|
t-att-Serie="serie"
|
|
t-att-NoCertificado="no_certificado"
|
|
t-att-Certificado="certificado"
|
|
t-att-LugarExpedicion="lugar_expedicion"
|
|
Moneda="XXX"
|
|
Serie="CartaPorte"
|
|
SubTotal="0"
|
|
TipoDeComprobante="T"
|
|
Total="0"
|
|
Version="4.0"
|
|
t-att-Exportacion="exportacion"
|
|
xmlns:cartaporte31="http://www.sat.gob.mx/CartaPorte31"
|
|
xmlns:cfdi="http://www.sat.gob.mx/cfd/4"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd http://www.sat.gob.mx/CartaPorte31 http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte/CartaPorte31.xsd http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte31/CartaPorte31.xsd">
|
|
<t t-if="cfdi_relationado_data">
|
|
<t t-foreach="cfdi_relationado_data" t-as="code">
|
|
<cfdi:CfdiRelacionados t-if="cfdi_relationado_data[code]" t-att-TipoRelacion="code">
|
|
<t t-foreach="cfdi_relationado_data[code]" t-as="uuid">
|
|
<cfdi:CfdiRelacionado t-att-UUID="uuid" />
|
|
</t>
|
|
</cfdi:CfdiRelacionados>
|
|
</t>
|
|
</t>
|
|
<cfdi:Emisor
|
|
t-att-Rfc="emisor['rfc']"
|
|
t-att-Nombre="format_string(emisor['nombre'], 254)"
|
|
t-att-RegimenFiscal="emisor['regimen_fiscal']"/>
|
|
<cfdi:Receptor
|
|
t-att-Rfc="emisor['rfc']"
|
|
t-att-Nombre="format_string(emisor['nombre'], 254)"
|
|
t-att-DomicilioFiscalReceptor="emisor['domicilio_fiscal_receptor']"
|
|
t-att-RegimenFiscalReceptor="emisor['regimen_fiscal']"
|
|
UsoCFDI="S01"/>
|
|
<cfdi:Conceptos>
|
|
<t t-foreach="moves" t-as="move">
|
|
<cfdi:Concepto
|
|
t-att-Cantidad="format_float(move.quantity, 6)"
|
|
t-att-ClaveProdServ="move.product_id.unspsc_code_id.code"
|
|
t-att-ClaveUnidad="move.product_uom.unspsc_code_id.code"
|
|
t-att-Descripcion="move.description_picking or move.product_id.name"
|
|
Importe="0.00"
|
|
ValorUnitario="0.00"
|
|
t-att-Unidad="move.product_uom.name"
|
|
ObjetoImp="01"
|
|
NoIdentificacion="01"/>
|
|
</t>
|
|
</cfdi:Conceptos>
|
|
<cfdi:Complemento t-if="record.l10n_mx_edi_transport_type == '01'">
|
|
<cartaporte31:CartaPorte
|
|
t-att-TranspInternac="'Sí' if record.l10n_mx_edi_external_trade else 'No'"
|
|
t-att-TotalDistRec="record.l10n_mx_edi_distance"
|
|
t-att-EntradaSalidaMerc="entrada_salida_merc"
|
|
t-att-ViaEntradaSalida="record.l10n_mx_edi_transport_type if record.l10n_mx_edi_external_trade else None"
|
|
t-att-PaisOrigenDestino="receptor['customer'].country_id.l10n_mx_edi_code if record.l10n_mx_edi_external_trade else None"
|
|
t-att-IdCCP="idccp"
|
|
Version="3.1">
|
|
<cartaporte31:RegimenesAduaneros t-if="regimenes_aduanero">
|
|
<t t-foreach="regimenes_aduanero" t-as="regimen_aduanero">
|
|
<cartaporte31:RegimenAduaneroCCP t-att-RegimenAduanero="regimen_aduanero"/>
|
|
</t>
|
|
</cartaporte31:RegimenesAduaneros>
|
|
<cartaporte31:Ubicaciones>
|
|
<cartaporte31:Ubicacion
|
|
TipoUbicacion="Origen"
|
|
t-att-IDUbicacion="origen['id_ubicacion']"
|
|
t-att-FechaHoraSalidaLlegada="origen['fecha_hora_salida_llegada']"
|
|
t-att-RFCRemitenteDestinatario="origen['rfc_remitente_destinatario']"
|
|
t-att-NumRegIdTrib="origen['num_reg_id_trib']"
|
|
t-att-ResidenciaFiscal="origen['residencia_fiscal']">
|
|
<cartaporte31:Domicilio
|
|
t-att-Calle="origen['domicilio']['calle']"
|
|
t-att-CodigoPostal="origen['domicilio']['codigo_postal']"
|
|
t-att-Estado="origen['domicilio']['estado']"
|
|
t-att-Pais="origen['domicilio']['pais']"
|
|
t-att-Colonia="origen['domicilio']['colonia']"
|
|
t-att-Municipio="origen['domicilio']['municipio']"/>
|
|
</cartaporte31:Ubicacion>
|
|
<cartaporte31:Ubicacion
|
|
TipoUbicacion="Destino"
|
|
t-att-IDUbicacion="destino['id_ubicacion']"
|
|
t-att-DistanciaRecorrida="destino['distancia_recorrida']"
|
|
t-att-FechaHoraSalidaLlegada="destino['fecha_hora_salida_llegada']"
|
|
t-att-RFCRemitenteDestinatario="destino['rfc_remitente_destinatario']"
|
|
t-att-NumRegIdTrib="destino['num_reg_id_trib']"
|
|
t-att-ResidenciaFiscal="destino['residencia_fiscal']">
|
|
<cartaporte31:Domicilio
|
|
t-att-Calle="destino['domicilio']['calle']"
|
|
t-att-CodigoPostal="destino['domicilio']['codigo_postal']"
|
|
t-att-Estado="destino['domicilio']['estado']"
|
|
t-att-Pais="destino['domicilio']['pais']"
|
|
t-att-Colonia="destino['domicilio']['colonia']"
|
|
t-att-Municipio="destino['domicilio']['municipio']"/>
|
|
</cartaporte31:Ubicacion>
|
|
</cartaporte31:Ubicaciones>
|
|
<cartaporte31:Mercancias
|
|
t-att-NumTotalMercancias="len(moves)"
|
|
t-att-PesoBrutoTotal="format_float(sum(moves.mapped('weight')), 3)"
|
|
t-att-UnidadPeso="weight_uom.unspsc_code_id.code">
|
|
<t t-foreach="moves" t-as="move">
|
|
<cartaporte31:Mercancia
|
|
t-att-BienesTransp="move.product_id.unspsc_code_id.code"
|
|
t-att-Cantidad="format_float(move.quantity, 6)"
|
|
t-att-ClaveUnidad="move.product_uom.unspsc_code_id.code"
|
|
t-att-Descripcion="move.description_picking or move.product_id.name"
|
|
t-att-PesoEnKg="format_float(move.weight, 3)"
|
|
t-att-FraccionArancelaria="move.product_id.l10n_mx_edi_tariff_fraction_id.code
|
|
if record.l10n_mx_edi_external_trade
|
|
else None"
|
|
t-att-MaterialPeligroso="move.l10n_mx_edi_is_hazardous_material and 'Sí' or
|
|
move.product_id.unspsc_code_id.l10n_mx_edi_hazardous_material == '0,1' and 'No' or
|
|
None"
|
|
t-att-CveMaterialPeligroso="move.product_id.l10n_mx_edi_hazardous_material_code_id.code
|
|
if move.l10n_mx_edi_is_hazardous_material
|
|
else None"
|
|
t-att-Embalaje="move.product_id.l10n_mx_edi_hazard_package_type
|
|
if move.l10n_mx_edi_is_hazardous_material
|
|
else None"
|
|
t-att-DescripEmbalaje="move.picking_id._l10n_mx_edi_get_packaging_desc(move.product_id.l10n_mx_edi_hazard_package_type)
|
|
if move.l10n_mx_edi_is_hazardous_material
|
|
else None"
|
|
t-att-TipoMateria="move.product_id.l10n_mx_edi_material_type
|
|
if record.l10n_mx_edi_external_trade
|
|
else None"
|
|
t-att-DescripcionMateria="move.product_id.l10n_mx_edi_material_description
|
|
if record.l10n_mx_edi_external_trade
|
|
and move.product_id.l10n_mx_edi_material_type == '05'
|
|
else None">
|
|
<cartaporte31:DocumentacionAduanera
|
|
xmlns:cartaporte31="http://www.sat.gob.mx/CartaPorte31"
|
|
t-if="record.l10n_mx_edi_external_trade"
|
|
t-att-TipoDocumento="tipo_documento"
|
|
t-att-NumPedimento="num_pedimento"
|
|
t-att-IdentDocAduanero="ident_doc_aduanero"
|
|
t-att-RFCImpo="rfc_impo"/>
|
|
<cartaporte31:CantidadTransporta
|
|
t-att-Cantidad="format_float(move.quantity, 6)"
|
|
t-att-IDOrigen="'OR' + str(record.location_id.id).rjust(6,'0')"
|
|
t-att-IDDestino="'DE' + str(record.location_dest_id.id).rjust(6,'0')" />
|
|
</cartaporte31:Mercancia>
|
|
</t>
|
|
<cartaporte31:Autotransporte t-if="record.l10n_mx_edi_transport_type == '01'"
|
|
t-att-NumPermisoSCT="record.l10n_mx_edi_vehicle_id.l10n_mx_transport_perm_number"
|
|
t-att-PermSCT="record.l10n_mx_edi_vehicle_id.l10n_mx_transport_perm_sct">
|
|
<cartaporte31:IdentificacionVehicular
|
|
t-att-AnioModeloVM="record.l10n_mx_edi_vehicle_id.model_year"
|
|
t-att-ConfigVehicular="record.l10n_mx_edi_vehicle_id.l10n_mx_vehicle_config"
|
|
t-att-PesoBrutoVehicular="peso_bruto_vehicular"
|
|
t-att-PlacaVM="record.l10n_mx_edi_vehicle_id.license_plate"/>
|
|
<cartaporte31:Seguros
|
|
t-att-AseguraRespCivil="record.l10n_mx_edi_vehicle_id.l10n_mx_transport_insurer"
|
|
t-att-PolizaRespCivil="record.l10n_mx_edi_vehicle_id.l10n_mx_transport_insurance_policy"
|
|
t-att-AseguraMedAmbiente="record.l10n_mx_edi_vehicle_id.l10n_mx_environment_insurer
|
|
if any(moves.filtered(lambda m: m.l10n_mx_edi_is_hazardous_material))
|
|
else None"
|
|
t-att-PolizaMedAmbiente="record.l10n_mx_edi_vehicle_id.l10n_mx_environment_insurance_policy
|
|
if any(moves.filtered(lambda m: m.l10n_mx_edi_is_hazardous_material))
|
|
else None"/>
|
|
<cartaporte31:Remolques t-if="record.l10n_mx_edi_vehicle_id.l10n_mx_trailer_ids">
|
|
<t t-foreach="record.l10n_mx_edi_vehicle_id.l10n_mx_trailer_ids" t-as="trailer">
|
|
<cartaporte31:Remolque
|
|
t-att-SubTipoRem="trailer.sub_type"
|
|
t-att-Placa="trailer.name"/>
|
|
</t>
|
|
</cartaporte31:Remolques>
|
|
</cartaporte31:Autotransporte>
|
|
</cartaporte31:Mercancias>
|
|
<cartaporte31:FiguraTransporte>
|
|
<cartaporte31:TiposFigura
|
|
t-if="record.l10n_mx_edi_vehicle_id.driver_id"
|
|
TipoFigura="01"
|
|
t-att-RFCFigura="record.l10n_mx_edi_vehicle_id.driver_id.vat"
|
|
t-att-NombreFigura="record.l10n_mx_edi_vehicle_id.driver_id.name"
|
|
t-att-NumLicencia="record.l10n_mx_edi_vehicle_id.driver_id.l10n_mx_edi_operator_licence"/>
|
|
<t t-foreach="record.l10n_mx_edi_vehicle_id.l10n_mx_figure_ids.sorted(lambda f: f.type)" t-as="figure">
|
|
<cartaporte31:TiposFigura
|
|
t-att-TipoFigura="figure.type"
|
|
t-att-RFCFigura="figure.operator_id.vat"
|
|
t-att-NombreFigura="figure.operator_id.name"
|
|
t-att-NumLicencia="figure.type == '01' and figure.operator_id.l10n_mx_edi_operator_licence">
|
|
<t t-foreach="figure.part_ids" t-as="part">
|
|
<cartaporte31:PartesTransporte t-if="figure.type in ('02', '03')"
|
|
t-att-ParteTransporte="part.code"/>
|
|
</t>
|
|
</cartaporte31:TiposFigura>
|
|
</t>
|
|
</cartaporte31:FiguraTransporte>
|
|
</cartaporte31:CartaPorte>
|
|
</cfdi:Complemento>
|
|
</cfdi:Comprobante>
|
|
</template>
|
|
</odoo>
|