Files
enterprise-addons/l10n_mx_edi_stock/data/cfdi_cartaporte.xml
T

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>