@@ -67,7 +67,8 @@ if meeting a specific requirement for the business.
6767 * - :guilabel: `Mexico - Electronic Delivery Guide `
6868 - `l10n_mx_edi_stock `
6969 - Lets you create a *Carta Porte *: A bill of lading that proves to the government you are
70- sending goods between A & B with a signed electronic document.
70+ sending goods between A & B with a signed electronic document, it will also install the
71+ :doc: `Fleet <../../hr/fleet >` app.
7172 * - :guilabel: `Odoo Mexico Localization for Stock/Landing `
7273 - `l10n_mx_edi_landing `
7374 - Allows managing customs numbers related to landed costs in electronic documents.
@@ -83,10 +84,14 @@ if meeting a specific requirement for the business.
8384 - `l10n_mx_edi_website_sale `
8485 - Adds extra fields to the :doc: `eCommerce <../../websites/ecommerce >` module to comply with
8586 the Mexican electronic invoicing requirements
86- * - :guilabel: `Employees - Mexico `
87- - `l10n_mx_hr `
88- - Adds extra fields to the :doc: `Employees <../../hr/employees >` module to comply with local
89- information for employees.
87+ * - :guilabel: `Mexico - Payroll `
88+ - `l10n_mx_hr_payroll `
89+ - Adds the fields necessary to manage employee data for :doc: `Payroll <../../hr/payroll >`
90+ and :doc: `Time Off <../../hr/time_off >`
91+ * - :guilabel: `Mexico - Payroll CFDI `
92+ - `l10n_mx_hr_payroll_account_edi `
93+ - Adds technical fuctions to sign CFDI payroll documents with the government learn more on
94+ :doc: `Mexican Payroll <../../hr/payroll >`.
9095 * - :guilabel: `Mexico - Payroll with Accounting `
9196 - `l10n_mx_hr_payroll_account `
9297 - Adds the required rules and parameters to manage local payroll calculation with the
@@ -498,17 +503,26 @@ Credit notes
498503
499504While an invoice is a document type "I" (Ingreso), a credit note is a document type "E" (Egreso).
500505
501- The only addition to the :doc: `standard flow for credit notes
506+ An addition to the :doc: `standard flow for credit notes
502507<../accounting/customer_invoices/credit_notes>` is that, as a requirement of the |SAT |, there has to
503508be a relation between a credit note and an invoice through the fiscal folio.
504509
505510Because of this requirement, the field :guilabel: `CFDI Origin ` adds this relation with a `01| `,
506- followed by the fiscal folio of the original invoice .
511+ followed by the fiscal folio of the original UUID .
507512
508513.. tip ::
509514 For the :guilabel: `CFDI Origin ` field to be automatically added, use the :guilabel: `Add Credit
510515 Note ` button from the invoice, instead of creating it manually.
511516
517+ Generally credit notes reverse the main sales account defined in the journal, but it is also possible
518+ to globally assign an account to all credit notes, to do so go to :menuselection: `Accounting -->
519+ Configuration --> Settings ` and set the :guilabel: `Credit notes ` account under the
520+ :guilabel: `Default Accounts ` section.
521+
522+ .. note ::
523+ On the default configuration, the credit notes account is set as :guilabel: `402.01.01 Returns,
524+ discounts or bonuses over sales and/or services at the general rate `
525+
512526.. _l10n/mx/vendor-bills :
513527
514528Vendor bills
@@ -521,7 +535,7 @@ bill **Must be in draft state** for the update to happen.
521535
522536.. tip ::
523537 When clicking :guilabel: `Update SAT `, the :guilabel: `SAT status ` field on the invoice will
524- confirm if the XML file is **Validated ** in the |SAT |, this is also true for vendor bills.
538+ confirm if the XML file is **Validated ** by the |SAT |, this is also true for vendor bills.
525539
526540See also :doc: `../accounting/vendor_bills `
527541
@@ -815,8 +829,8 @@ product `Discounts`, make sure that it has a valid :guilabel:`Tax` (usually :gui
815829`16% `).
816830
817831After this, create and sign the invoice via |CFDI |, and add the `Discounts ` product at the bottom.
818- In the XML the discount should be subtracted from the first invoice line available, Odoo will try to
819- subtract from each line the total amount in order until all the discount has been applied .
832+ In the XML Odoo will try to distribute the dicount between the lines evenly, while any math
833+ differences will be added in a rounding product .
820834
821835.. tip ::
822836 A `Discount ` and `UNSPSC Product Category ` for each product variant related to :guilabel: `Gift
@@ -1348,13 +1362,15 @@ and creating global invoices.
13481362Point of sale flow
13491363------------------
13501364
1351- Other than the standard :doc: `Point of Sale configuration
1352- <../../sales/point_of_sale/configuration>`, the only requirement for the Mexican localization is the
1353- additional fact that each payment method needs to be configured with a correct :guilabel: `Payment
1354- Way `.
1365+ On top of the standard :doc: `Point of Sale configuration
1366+ <../../sales/point_of_sale/configuration>`, the Mexican localization requires each
1367+ payment method needs to be configured with a correct :guilabel: `Payment Way ` as well as a
1368+ :guilabel: `Re-invoicing account ` to handle the accounting for invoices with the :ref: `invoicing
1369+ portal <mx/pos/portal>`.
13551370
13561371.. tip ::
1357- By default Odoo creates preconfigured payment methods for cash, credit card, and debit card.
1372+ By default Odoo creates preconfigured payment methods for cash, credit card, and debit card
1373+ and assigns the :guilabel: `402.04.01 Re-invoicing ` account as default for re-invoicing.
13581374
13591375While selling on the **Point of Sale **, click the :guilabel: `Customer ` button to either create or
13601376select a customer. Here it is possible to review customer invoicing information (such as the |RFC |
@@ -1407,6 +1423,10 @@ Customers who scan this QR code or follow the URL will access to a menu where th
14071423fiscal information, including the *Usage * and *Fiscal Regime * once they enter the five digit code
14081424that is also provided on the receipt.
14091425
1426+ On the journal entries of the session, the previously selected **Re-invoicing account ** will be used
1427+ to handle reversals of the sales entries when invoices are requested as well as be used as a sales
1428+ account for the new invoices.
1429+
14101430.. seealso ::
14111431 :doc: `../../sales/point_of_sale/receipts_invoices `
14121432
@@ -1522,7 +1542,7 @@ goods.
15221542According to the `Annex 20 <http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm >`_ of
15231543CFDI 4.0, in documents where the invoiced goods come from a first-hand import operation, the
15241544:guilabel: `Customs Number ` field, needs to be added to all lines of products involved with the
1525- operation.
1545+ operation as well as the date of the document .
15261546
15271547.. note ::
15281548 To do so, the :guilabel: `Odoo Mexico Localization for Stock/Landing ` `l10n_mx_edi_landing ` module
@@ -1542,23 +1562,31 @@ In order to track the correct customs number for a specific invoice, Odoo uses :
15421562:menuselection: `Inventory --> Configuration --> Settings `, and in the :guilabel: `Valuation ` section,
15431563make sure that :guilabel: `Landed Costs ` is activated.
15441564
1545- Begin by creating a **service-type ** product called, `Pedimento `. In the :guilabel: `Purchase ` tab,
1546- activate :guilabel: `Is a Landed Cost `, and select a :guilabel: `Default Split Method `.
1565+ .. Tip ::
1566+ It is recommended to add a :guilabel: `Default Jorunal ` even if the customs numbers do not modify
1567+ the accounting directly.
1568+
1569+ Configure the **goods-type ** products that hold the customs numbers. To do so, create the
1570+ products and complete these three requirements:
15471571
1548- Then, configure the **goods-type ** products that hold the customs numbers. To do so, create the
1549- products, and make sure the :guilabel: `Product Category ` has the following configuration:
1572+ - :guilabel: `Tracking ` **must ** be set to either :guilabel: `By Lots ` or :guilabel: `By Unique Serial
1573+ Number`but **not** :guilabel:`By Quantity `.
1574+ - :guilabel: `Invoicing Policy ` **must ** be set to :guilabel: `Delivered quantities `.
1575+ - :doc: `Valuation by Lot/Serial <../../inventory_valuation/valuation_by_lots >`**must** be enabled.
1576+
1577+ This will make the field :guilabel:`Customs invoicing` available on the :guilabel: `Accounting ` tab,
1578+ enable the field to use customs numbers with this product.
1579+
1580+ It is important to make sure the product has a :guilabel: `Product Category ` and has the following
1581+ configuration:
15501582
15511583- :guilabel: `Costing Method `: Either :guilabel: `FIFO ` or :guilabel: `AVCO `
15521584- :guilabel: `Inventory Valuation `: :guilabel: `Automated `
1553- - :guilabel: `Stock Valuation Account `: :guilabel: `115.01.01 Inventory `
1554- - :guilabel: `Stock Journal `: :guilabel: `Inventory Valuation `
1555- - :guilabel: `Stock Input Account `: :guilabel: `115.05.01 Goods in transit `
1556- - :guilabel: `Stock Output Account `: :guilabel: `115.05.01 Goods in transit `
15571585
15581586.. note ::
1559- Setting the :guilabel: ` Inventory Valuation ` to :guilabel: ` Automated ` requires first enabling the
1560- feature. Go to :menuselection: ` Accounting --> Configuration --> Settings `, and in the
1561- :guilabel: `Stock Valuation ` section, enable :guilabel: `Automatic Accounting `.
1587+ The feature works regardless of whether the :doc: ` Valutation
1588+ <../../inventory/product_management/inventory_valuation> is set as
1589+ :guilabel:`Periodic (at closing)`or :guilabel:`Perpetual (at invoicing) `.
15621590
15631591.. image :: mexico/mx-landing-configuration.png
15641592 :alt: Storable products general configuration.
@@ -1574,28 +1602,37 @@ After configuring the product, follow the standard :doc:`purchase flow
15741602
15751603Create a purchase order from :menuselection: `Purchase --> Orders --> Purchase Order `. Then, confirm
15761604the order to display a :guilabel: `Receipt ` smart button. Click on the :guilabel: `Receipt ` smart
1577- button and :guilabel: `Validate ` the receipt .
1605+ button, add the lots or serial numbers and :guilabel: `Validate ` validate .
15781606
15791607Go to :menuselection: `Inventory --> Operations --> Landed Costs `, and create a new record. In the
1580- :guilabel: `Transfer `, add the receipt that was just validated, add the :guilabel: `Customs number `
1581- and in the :guilabel: `Additional Costs ` tab, add the :guilabel: `Pedimento ` product.
1608+ :guilabel: `Transfer `, add the receipt that was just validated, add the :guilabel: `Customs number `.
15821609
1583- Optionally, it is possible to add a cost amount. After this, :guilabel: `Validate ` the landed cost.
1584- Once :guilabel: `Posted `, all products related to that receipt have the customs number assigned.
1610+ .. tip ::
1611+ While it is possible to add costs related to the customs number on this part of the process, it
1612+ is highly recommended to create a landed cost from a vendor bill from your customs agent. Learn
1613+ more about :doc: `Landed Costs here `
1614+ <../../inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs>
15851615
15861616.. warning ::
1587- The :guilabel: `Pedimento Number ` field is not editable once it is set, so be careful when
1588- associating the correct number with the transfer(s) .
1617+ The :guilabel: `Pedimento Number ` field is not editable once it is set, and cannot be repeated,
1618+ however it is possible to fix the number on the lot later by selecting a different landed cost .
15891619
15901620.. image :: mexico/mx-landing-inventory.png
15911621 :alt: Customs number on a landed costs Inventory record.
15921622
1623+ The customs number assigned to a specific lot or serial number can be found on the its registry on
1624+ :menuselection: `Inventory --> Products --> Lots/Serial Numbers `, the :guilabel: `L10N Mx Edi Landed Cost `
1625+ field can be edited at any time to fix any mistakes that could ocurr during the landed cost, this
1626+ changes the :guilabel: `Customs number ` and the name.
1627+
15931628Next, create a sales order and confirm it. Click on the :guilabel: `Delivery ` smart button that
1594- appears, and :guilabel: `Validate ` the delivery order.
1629+ appears, and carefully review the assigned lots/serial numbers to make sure they are the desired
1630+ values, after that :guilabel: `Validate ` the delivery order.
15951631
15961632Finally, :ref: `create an invoice from the sales order <accounting/inv-process/so >`, and confirm it.
1597- The invoice line related to the product has a customs number on it. This number matches the customs
1598- number added in the landed cost record created earlier.
1633+ The invoice lines are created according to the distribution of the delivery order, in cases where
1634+ more than one customs number were selected, Odoo will split the invoice lines by quantity and
1635+ customs numbers.
15991636
16001637.. image :: mexico/mx-landing-invoice.png
16011638 :alt: Customs number on confirmed sales order product.
@@ -1605,8 +1642,8 @@ number added in the landed cost record created earlier.
16051642Delivery guide
16061643--------------
16071644
1608- A `Carta Porte <https://www.sat.gob.mx/consultas/68823/ complemento-carta-porte- >`_ is a bill of
1609- lading: a document that states the type, quantity, and destination of goods being carried.
1645+ A `Carta Porte <https://www.sat.gob.mx/portal/public/tramites/ complemento-carta-porte> ` is a bill
1646+ of lading: a document that states the type, quantity, and destination of goods being carried.
16101647
16111648On July 17th, 2024, version 3.1 of this |CFDI | was implemented for all transportation providers,
16121649intermediaries, and owners of goods. Odoo is able to generate a document type "T" (Traslado), which,
@@ -1618,7 +1655,8 @@ are treated as *Dangerous Hazards*.
16181655In order to print the PDF, the delivery order must be signed by the government and then it can be
16191656printed using the :guilabel: `Print Carta Porte ` button on the delivery order.
16201657
1621- The PDF file contains a QR code to verify the CCP code for the authorities.
1658+ .. tip ::
1659+ The PDF file contains a QR code to verify the CCP code for the authorities.
16221660
16231661In order to transport goods between warehouses, the logistic route must contain a **Delivery ** type
16241662of operation, see :doc: `Inter-warehouse replenishment
@@ -1671,22 +1709,29 @@ with the `Official SAT Catalog for Carta Porte
16711709 Configuration --> Warehouses `. While this is set as the company address by default, you can
16721710 change it to your correct warehouse address.
16731711
1674- Another addition to this feature is the :guilabel: ` Vehicle Setups ` menu found in
1675- :menuselection: ` Inventory --> Settings --> Vehicle Setups `. This menu lets you add all the
1676- information related to the vehicle used for the delivery order .
1712+ This feature requires the use of :doc: ` Fleet < ../../hr/fleet/new_vehicle >` to manage vehicles,
1713+ the vehicle setup is managed directly on the vehicle, all the required fields are only visible
1714+ after checking the :guilabel: ` L10N Mx Is Freight Vehicle ` field .
16771715
1678- All fields are mandatory to create a correct delivery guide.
1716+ This adds the :guilabel: `MX Parameters ` tab where the mandatory fields are required to create a
1717+ correct delivery guide, additionally the vehicle **must ** contain a :guilabel: `License Plate `, a
1718+ :guilabel: `Model Year ` and a :guilabel: `Driver `.
16791719
16801720.. tip ::
16811721 The fields, :guilabel: `Vehicle Plate Number ` and :guilabel: `Number Plate `, must contain between 5
16821722 and 7 characters.
16831723
1684- In the :guilabel: `Intermediaries ` section, add the operator of the vehicle. The only mandatory
1685- fields for this contact are the :guilabel: `VAT ` and :guilabel: `Operator Licence `.
1724+ The main driver of the vehicle is set directly on the :guilabel: `Driver ` field, it is possible to
1725+ add aditional operators of the vehicle directly in the :guilabel: `Intermediaries ` section,
1726+ The only mandatory fields for driver contacts are the :guilabel: `VAT ` and :guilabel: `Operator Licence `.
16861727
16871728.. image :: mexico/mx-delivery-guide-vehicle.png
16881729 :alt: Delivery guide vehicle configuration.
16891730
1731+ .. tip ::
1732+ If the vehicle is rented or more intermediaries are required, it is possible to add them in the
1733+ :guilabel: `Intermediaries ` field.
1734+
16901735Products
16911736********
16921737
@@ -1717,17 +1762,26 @@ click :guilabel:`Generate Delivery Guide`. The resulting XML can be found in the
17171762
17181763.. note ::
17191764 Other than the :guilabel: `UNSPSC ` on all products, delivery guides that use :guilabel: `No Federal
1720- Highways ` do not require any special configuration to be sent to the government.
1765+ Highways ` do not require any special configuration to be sent to the government, this is a type
1766+ "T" CFDI with no delivery guide complement.
1767+
1768+ If using the :guilabel: `Federal Transport ` :guilabel: `Transport Type `, the :guilabel: `Vehicle Setup `
1769+ is displayed to be selected.
1770+ The :guilabel: `Gross vehicle weight ` is taken from the :guilabel: `Vehicle setup ` configuration where
1771+ it is possible to add additional :guilabel: `Extra weight ` to account for the drivers and luggage.
17211772
1722- If using the :guilabel: `Federal Transport ` :guilabel: `Transport Type `, the tab :guilabel: `MX EDI `
1723- appears. There, enter a value in :guilabel: `Distance to Destination (KM) ` greater than `0 `, and
1724- select the :guilabel: `Vehicle Setup ` used for this delivery.
1773+ .. note ::
1774+ Odoo will calculate the :guilabel: `Gross vehicle weight ` with the following formula:
1775+ .. math ::
1776+ Gross vehicle weight = Vehicle weight + :guilabel:`Weight` * :guilabel:`Extra Weight`/1000
17251777
1726- Finally, add a :guilabel: `Gross Vehicle Weight ` and click :guilabel: `Generate Delivery Guide `.
1778+ Every delivery requires a value in :guilabel: `Distance to Destination (KM) ` greater than `0 `.
1779+ Finally, enter the :guilabel: `Delivery Date ` and click :guilabel: `Generate Delivery Guide `.
17271780
1728- .. tip ::
1729- Delivery Guides can also be created from :guilabel: `Receipts `, either from the Inventory app or
1730- by the standard flow of the Purchase app.
1781+ .. warning ::
1782+ By default the :guilabel: `Scheduled Date ` is filled and represents the time at which the shipment
1783+ leaves the warehouse and the :guilabel: `Delivery Date ` is the time that the shipment is expected
1784+ to arrive to its destination, these values are declared in both the XML and PDF.
17311785
17321786Dangerous hazards
17331787*****************
@@ -1749,8 +1803,8 @@ First, select the product from :menuselection:`Inventory --> Products --> Produc
17491803 hazard (for example *01010101 *). If it is not dangerous, enter `0 ` in the :guilabel: `Hazardous
17501804 Material Designation Code ` field.
17511805
1752- In :menuselection: ` Inventory --> Settings --> Vehicle Setup `, complete the :guilabel: `Environment
1753- Insurer ` and :guilabel: `Environment Insurance Policy ` well. After this, continue with the regular
1806+ In :guilabel: ` MX Parameters `, complete the :guilabel: `Environment
1807+ Insurer ` and :guilabel: `Environment Insurance Policy ` as well. After this, continue with the regular
17541808process to create a delivery guide.
17551809
17561810Imports and Exports
0 commit comments