Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Soporte para cargar ficheros REGANECUQH #49

Merged
merged 9 commits into from
Oct 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,5 @@ Eina d'importació de CCH
- `P2`
- `P2D`
- `REGANECU`
- `REGANECUQH`
- `RF5D`
23 changes: 23 additions & 0 deletions cchloader/adapters/reganecuqh.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import

from cchloader.adapters import CchAdapter
from cchloader.models.reganecuqh import ReganecuQhSchema
from marshmallow import Schema, fields, pre_load


class ReganecuQhBaseAdapter(Schema):
""" REGANECUQh Adapter
"""

@pre_load
def fix_numbers(self, data):
for attr, field in self.fields.items():
if isinstance(field, (fields.Integer, fields.Float)):
if not data.get(attr):
data[attr] = None
return data


class ReganecuQhAdapter(ReganecuQhBaseAdapter, CchAdapter, ReganecuQhSchema):
pass
35 changes: 35 additions & 0 deletions cchloader/models/reganecuqh.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
# -*- encoding: utf-8 -*-
from __future__ import absolute_import

from marshmallow import Schema, fields


class ReganecuQhSchema(Schema):
date = fields.String(position=0, required=True)
reserved0 = fields.Integer(position=1, required=True)
upr = fields.String(position=2, required=True)
energia = fields.Float(position=3, required=True)
reserved1 = fields.Integer(position=4)
precio = fields.Float(position=5, required=True)
reserved2 = fields.Integer(position=6)
importe = fields.Float(position=7, required=True)
reserved3 = fields.Integer(position=8)
vendedor = fields.String(position=9, required=True)
segmento = fields.String(position=10, required=True)
facturacion = fields.Integer(position=11, required=True)
eiec_upr = fields.String(position=12, required=True)
cuenta = fields.String(position=13, required=True)
signo_importe = fields.Integer(position=14, required=True)
signo_magnitud = fields.Integer(position=15, required=True)
eic_titular = fields.String(position=16, required=True)
codigo_magnitud = fields.String(position=17, required=True)
codigo_precio = fields.String(position=18, required=True)
codigo_apunte = fields.String(position=19, required=True)
tipo_oferta = fields.String(position=20, required=True)
tipo_upr = fields.Integer(position=21, required=True)
energia_bilateral = fields.Integer(position=22, required=True)
hora25 = fields.Integer(position=23, required=True)


ReganecuQhSchema()
1 change: 1 addition & 0 deletions cchloader/parsers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,5 @@
from cchloader.parsers.mhcil import Mhcil
from cchloader.parsers.medidas import Medidas
from cchloader.parsers.reganecu import Reganecu
from cchloader.parsers.reganecuqh import ReganecuQh
from cchloader.parsers.corbagen import CorbaGen
3 changes: 1 addition & 2 deletions cchloader/parsers/medidas.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@

class Medidas(Parser):

patterns = ['^medidas_(\d{4})_(\d{4})(\d{2})_(\d{1})_(\d{4})(\d{2})(\d{2})',
'^medidas_(\d{4})_(\d{4})_(\d{4})(\d{2})_(\d{1})_(\d{4})(\d{2})(\d{2})']
patterns = ['^medidas_']
encoding = "iso-8859-15"
delimiter = ';'

Expand Down
3 changes: 1 addition & 2 deletions cchloader/parsers/mhcil.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@

class Mhcil(Parser):

patterns = ['^MHCIL_([H][23CP])_(\d{4})_([PA][12])_(\d{4})(\d{2})(\d{2}).(\d)',
'^MHCIL_([H][23CP])_(\d{4})_([PA][12])_(\d{4})(\d{2})(\d{2})']
patterns = ['^MHCIL_']
encoding = "iso-8859-15"
delimiter = ';'

Expand Down
3 changes: 2 additions & 1 deletion cchloader/parsers/reganecu.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@

class Reganecu(Parser):

patterns = ['^([ABC])(\d{1})_reganecu_(\d{4})(\d{2})(\d{2})_']
patterns = ['^([ABC])(\d{1})_reganecu_',
'^reganecu_']
encoding = "iso-8859-15"
delimiter = ';'

Expand Down
43 changes: 43 additions & 0 deletions cchloader/parsers/reganecuqh.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import

from cchloader import logger
from cchloader.utils import build_dict
from cchloader.adapters.reganecuqh import ReganecuQhAdapter
from cchloader.models.reganecuqh import ReganecuQhSchema
from cchloader.parsers.parser import Parser, register
import six
if six.PY3:
unicode = str


class ReganecuQh(Parser):

patterns = ['^([ABC])(\d{1})_reganecuqh_',
'^reganecuqh_']
encoding = "iso-8859-15"
delimiter = ';'

def __init__(self, strict=False):
self.adapter = ReganecuQhAdapter(strict=strict)
self.schema = ReganecuQhSchema(strict=strict)
self.fields = []
self.headers = []
for f in sorted(self.schema.fields, key=lambda f: self.schema.fields[f].metadata['position']):
field = self.schema.fields[f]
self.fields.append((f, field.metadata))
self.headers.append(f)

def parse_line(self, line):
slinia = tuple(unicode(line.decode(self.encoding)).split(self.delimiter))
slinia = list(map(lambda s: s.strip(), slinia))
parsed = {'reganecu': {}, 'orig': line}
data = build_dict(self.headers, slinia)
result, errors = self.adapter.load(data)
if errors:
logger.error(errors)
parsed['reganecu'] = result
return parsed, errors


register(ReganecuQh)
84 changes: 84 additions & 0 deletions spec/curve_files/C3_reganecu_20240501_demo
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
reganecu;
2024;08;09;07;46;0;
01/05/2024;6;DEMO_RE;0.014;;1.5042;;0.02;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;7;DEMO_RE;0.089;;2.5543;;0.23;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;8;DEMO_RE;0.231;;3.2498;;0.75;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;9;DEMO_RE;0.314;;4.4667;;1.4;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;10;DEMO_RE;0.059;;5.0056;;0.3;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;11;DEMO_RE;0.987;;4.5668;;4.51;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;12;DEMO_RE;1.103;;1.2208;;1.35;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;13;DEMO_RE;0.956;;0.7712;;0.74;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;14;DEMO_RE;0.546;;0.7147;;0.39;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;15;DEMO_RE;0.603;;0.7774;;0.47;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;16;DEMO_RE;1.883;;0.7132;;1.34;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;17;DEMO_RE;1.097;;1.3492;;1.48;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;18;DEMO_RE;0.926;;2.2262;;2.06;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;19;DEMO_RE;0.527;;3.6938;;1.95;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;20;DEMO_RE;0.344;;4.5276;;1.56;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;21;DEMO_RE;0.056;;1.5311;;0.09;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;22;DEMO_RE;0.063;;1.2687;;0.08;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;23;DEMO_RE;0.006;;1.599;;0.01;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;21;DEMO_RE;0.056;;0;;0;;;DSV;3;;C_MEDI;1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_DC;R;11;0;0;
01/05/2024;1;DEMO_RE;0.07;;1;;0.07;;;RAD3;3;;C_RAD;-1;0;18X0000000004444;M_1RAD3;P_2RAD3;P_3RAD3_OP;R;11;0;0;
01/05/2024;2;DEMO_RE;0.006;;1.6667;;0.01;;;RAD3;3;;C_RAD;-1;0;18X0000000004444;M_1RAD3;P_2RAD3;P_3RAD3_OP;R;11;0;0;
01/05/2024;3;DEMO_RE;0.021;;0.9524;;0.02;;;RAD3;3;;C_RAD;-1;0;18X0000000004444;M_1RAD3;P_2RAD3;P_3RAD3_OP;R;11;0;0;
01/05/2024;22;DEMO_RE;0.063;;0.7937;;0.05;;;RAD3;3;;C_RAD;-1;0;18X0000000004444;M_1RAD3;P_2RAD3;P_3RAD3_OP;R;11;0;0;
01/05/2024;23;DEMO_RE;0.006;;0;;0;;;RAD3;3;;C_RAD;-1;0;18X0000000004444;M_1RAD3;P_2RAD3;P_3RAD3_OP;R;11;0;0;
01/05/2024;24;DEMO_RE;0.063;;0.9524;;0.06;;;RAD3;3;;C_RAD;-1;0;18X0000000004444;M_1RAD3;P_2RAD3;P_3RAD3_OP;R;11;0;0;
01/05/2024;18;DEMO_C;1.097;;18.7056;;20.52;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;19;DEMO_C;1.095;;19.8904;;21.78;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;20;DEMO_C;1.11;;19.7027;;21.87;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;21;DEMO_C;1.199;;14.3286;;17.18;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;22;DEMO_C;1.265;;8.1897;;10.36;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;23;DEMO_C;1.208;;10.9934;;13.28;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;24;DEMO_C;1.166;;11.0806;;12.92;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;1;DEMO_RE;0.07;;2.132;;0.15;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;2;DEMO_RE;0.006;;1.7411;;0.01;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;3;DEMO_RE;0.021;;2.1299;;0.04;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;4;DEMO_RE;0.041;;1.9561;;0.08;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;5;DEMO_RE;0.023;;0.9141;;0.02;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;1;ERPCFV0;47.134;;2.61;;123.02;;ENEDJ;CFP;3;18W000000000QOJG;C_CFP;-1;0;18X0000000004444;M_CF_GEN;P_CF_GEN;P_CFP_OP;V;45;0;0;
01/05/2024;1;ERPCFV1;15.774;;2.61;;41.17;;ENEDJ;CFP;3;18W000000000R37P;C_CFP;-1;0;18X0000000004444;M_CF_GEN;P_CF_GEN;P_CFP_OP;V;45;0;0;
01/05/2024;1;ERPCHI0;1.251;;2.61;;3.27;;ENEDJ;CFP;3;18W000000000QV9F;C_CFP;-1;0;18X0000000004444;M_CF_GEN;P_CF_GEN;P_CFP_OP;V;44;0;0;
01/05/2024;24;DEMO_RE;0.063;;1.2016;;0.08;;;BS3;3;;C_BAN;-1;0;18X0000000004444;DSV;P_2BAN;P_3CBAN_OP;R;11;0;0;
01/05/2024;2;DEMO_RE;0.006;;59.57;;0.36;;;DSV;3;;C_MEDI;-1;-1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;6;DEMO_RE;0.014;;33.74;;0.47;;;DSV;3;;C_MEDI;-1;-1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;7;DEMO_RE;0.089;;65.61;;5.84;;;DSV;3;;C_MEDI;-1;-1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;8;DEMO_RE;0.231;;67.77;;15.65;;;DSV;3;;C_MEDI;-1;-1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;9;DEMO_RE;0.314;;47.1;;14.79;;;DSV;3;;C_MEDI;-1;-1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;10;DEMO_RE;0.059;;38.68;;2.28;;;DSV;3;;C_MEDI;-1;-1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;11;DEMO_RE;0.987;;0.01;;0.01;;;DSV;3;;C_MEDI;-1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;14;DEMO_RE;0.546;;8.87;;4.84;;;DSV;3;;C_MEDI;-1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;15;DEMO_RE;0.603;;10.27;;6.19;;;DSV;3;;C_MEDI;-1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;16;DEMO_RE;1.883;;39.26;;73.93;;;DSV;3;;C_MEDI;-1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;17;DEMO_RE;1.097;;28.71;;31.49;;;DSV;3;;C_MEDI;-1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;18;DEMO_RE;0.926;;5.6;;5.19;;;DSV;3;;C_MEDI;-1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;19;DEMO_RE;0.527;;5.37;;2.83;;;DSV;3;;C_MEDI;-1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;20;DEMO_RE;0.344;;4.92;;1.69;;;DSV;3;;C_MEDI;-1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;22;DEMO_RE;0.063;;93.08;;5.86;;;DSV;3;;C_MEDI;-1;-1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;23;DEMO_RE;0.006;;74.85;;0.45;;;DSV;3;;C_MEDI;-1;-1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;24;DEMO_RE;0.063;;34.68;;2.18;;;DSV;3;;C_MEDI;-1;-1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_OP;R;11;0;0;
01/05/2024;1;DEMO_RE;0.07;;7.53;;0.53;;;DSV;3;;C_MEDI;1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_DC;R;11;0;0;
01/05/2024;3;DEMO_RE;0.021;;65.17;;1.37;;;DSV;3;;C_MEDI;1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_DC;R;11;0;0;
01/05/2024;4;DEMO_RE;0.041;;0.71;;0.03;;;DSV;3;;C_MEDI;1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_DC;R;11;0;0;
01/05/2024;5;DEMO_RE;0.023;;0.01;;0;;;DSV;3;;C_MEDI;1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_DC;R;11;0;0;
01/05/2024;12;DEMO_RE;1.103;;1.57;;1.73;;;DSV;3;;C_MEDI;1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_DC;R;11;0;0;
01/05/2024;13;DEMO_RE;0.956;;0.18;;0.17;;;DSV;3;;C_MEDI;1;1;18X0000000004444;DESVIO_M;P_MEDI;M_DESV_DC;R;11;0;0;
01/05/2024;1;DEMO_C;1.133;;10.053;;11.39;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;2;DEMO_C;1.107;;13.1075;;14.51;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;3;DEMO_C;1.081;;17.2988;;18.7;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;4;DEMO_C;1.062;;15.8851;;16.87;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;5;DEMO_C;1.079;;16.6821;;18;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;6;DEMO_C;1.116;;16.1201;;17.99;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;7;DEMO_C;1.192;;18.5738;;22.14;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;8;DEMO_C;1.248;;18.7099;;23.35;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;9;DEMO_C;1.213;;21.9951;;26.68;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;10;DEMO_C;1.188;;21.532;;25.58;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;11;DEMO_C;1.205;;13.9502;;16.81;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;12;DEMO_C;1.208;;9.4454;;11.41;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;13;DEMO_C;1.209;;9.0902;;10.99;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;14;DEMO_C;1.224;;9.5507;;11.69;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;15;DEMO_C;1.184;;10.0507;;11.9;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;16;DEMO_C;1.157;;10.6223;;12.29;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
01/05/2024;17;DEMO_C;1.113;;11.3657;;12.65;;;CAD;3;18W0000000008888;C_CAD;-1;0;18X0000000004444;MEDBC;P_CAD;M_CAD_OP;C;20;0;0;
*
Loading
Loading