2026/07/01-01

This commit is contained in:
2026-01-27 09:26:42 +01:00
parent c14bb09eb2
commit 415b281213
19 changed files with 1618 additions and 152 deletions

View File

@@ -1,145 +1,108 @@
using Microsoft.VisualBasic;
using bdGrupoSanchoToro.db;
using Microsoft.VisualBasic;
using System;
using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
using System.Globalization;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
using System.Threading.Tasks;
namespace bdGrupoSanchoToro.Importaciones
{
public class ImportaAccesorios
public class ImportaGRUASGC
{
public static void Importar(byte[] Fichero)
{
try
{
var bd = tscGrupoSanchoToro.NuevoContexto();
var accs = bd.accesorios.ToList();
var le = bd.enumeraciones.ToList();
var prodsela = bd.productoselaborados.ToList();
var gruprods = bd.gruposdeproductos.ToList();
var lcaag = bd.codigosdeaccesoriosagrupados.ToList();
var lusus = bd.usuarios.ToList();
var dsprueba = new XSD.ALMACENAC();
var dsprueba = new XSD.GRUASGC();
dsprueba.ReadXml(new System.IO.MemoryStream(Fichero));
int i = 1;
int Ultimalinea = dsprueba.Tables["Datos"].Rows.Count;
foreach (XSD.ALMACENAC.DatosRow Proant in dsprueba.Tables["Datos"].Rows)
List<modelosgruas> lg = bd.modelosgruas.ToList();
var lm = bd.marcasgruas.ToList();
var lv = bd.versionesgruas.ToList();
var grs = dsprueba.Tables["Datos"].Rows.Cast<XSD.GRUASGC.DatosRow>().ToList().OrderBy(x=> OrdenGRUASGC(x)).ToList();
foreach (XSD.GRUASGC.DatosRow gr in grs)
{
try
{
bdGrupoSanchoToro.db.accesorios Pronue =accs.FirstOrDefault(x => x.CodigoDeAccesorio == Proant.ALCOD.Trim());
if (Pronue==null)
productos pr;
var mar = lm.First(x => x.Marca == gr.CGMAR);
bdGrupoSanchoToro.db.modelosgruas n = lg.FirstOrDefault(x => x.idMarcaNavigation.Marca == mar.Marca && x.Modelo == gr.CGMDL);
if (n == null)
{
Pronue = new bdGrupoSanchoToro.db.accesorios();
bd.accesorios.Add(Pronue);
}
Pronue.CodigoDeAccesorio = Proant.ALCOD;
Pronue.DescripcionDeAccesorio = Proant.ALDES;
Pronue.idGrupoDeProducto = null;
if (Proant.ALGPR.Trim()!="")
{
var grupodeproducto = gruprods.FirstOrDefault(x => x.CodigoGrupoProductos == Proant.ALGPR.Trim());
if (grupodeproducto!=null) Pronue.idGrupoDeProducto = grupodeproducto.idGrupoDeProducto;
}
Pronue.idProductoElaborado = null;
if (Proant.ALCPEC.Trim()!="")
{
var productoelaborado =prodsela.FirstOrDefault(x => x.CodigoDeProductoElaborado == Proant.ALCPEC.Trim());
if (productoelaborado!=null) Pronue.idProductoElaborado = productoelaborado.idProductoElaborado;
}
Pronue.idExpresionDeCantidad = null;
if (Proant.ALECAN.Trim()!="")
{
Pronue.idExpresionDeCantidad = le.First(x => x.Codigo == "ECAN." + Proant.ALECAN.Trim()).idEnumeracion;
}
else
{
Pronue.idExpresionDeCantidad = null;
}
var enumeracion = le.First(x => x.Codigo == "TAC." + Proant.ALTIPO.Trim());
Pronue.idTipoDeAccesorio = enumeracion.idEnumeracion;
Pronue.idSubtipoDeAccesorio = le.First(x => x.Codigo.Trim() == "STA." + Proant.ALSTIP.Trim()).idEnumeracion;
Pronue.idCodigoAgrupado = null;
if (Proant.ALCODAG.Trim()!="")
{
var Codagru = lcaag.FirstOrDefault(x => x.CodigoAgrupado == Proant.ALCODAG.Trim());
if (Codagru!=null) Pronue.idCodigoAgrupado = Codagru.idCodigoDeaccesorioAgrupado;
}
Pronue.RangoPermitido1 = double.Parse(Proant.ALRANGO1, CultureInfo.InvariantCulture);
Pronue.RangoPermitido2 = double.Parse(Proant.ALRANGO2, CultureInfo.InvariantCulture);
Pronue.Facturable = false;
if (Proant.ALFAC.Trim() == "S")
{
Pronue.Facturable = true;
}
Pronue.Precio = double.Parse(Proant.ALPRE, CultureInfo.InvariantCulture);
Pronue.PrecioDeCosteMedio = double.Parse(Proant.ALPCM, CultureInfo.InvariantCulture);
Pronue.Existencia = double.Parse(Proant.ALEXI, CultureInfo.InvariantCulture);
Pronue.ExistenciaMinima = double.Parse(Proant.ALEXIM, CultureInfo.InvariantCulture);
Pronue.Peso = double.Parse(Proant.ALPESO, CultureInfo.InvariantCulture);
Pronue.PrecioDeCosteAplicado = double.Parse(Proant.ALPCOA, CultureInfo.InvariantCulture);
Pronue.CuentaDeCompras1 = Proant.ALNCUC1;
Pronue.CuentaDeCompras2 = Proant.ALNCUC2;
Pronue.CuentaDeCompras3 = Proant.ALNCUC3;
Pronue.CuentaDeCompras4 = Proant.ALNCUC4;
Pronue.CuentaDeVentas1 = Proant.ALNCUV1;
Pronue.CuentaDeVentas2 = Proant.ALNCUV2;
Pronue.CuentaDeVentas3 = Proant.ALNCUV3;
Pronue.CuentaDeVentas4 = Proant.ALNCUV4;
//if (bd.cuentasanaliticas.Any(x => x.CodigoCuenta.Trim() == Proant.ALNCUA.Trim()))
//{
// var Cuenta = bd.cuentasanaliticas.First(x => x.CodigoCuenta == Proant.ALNCUA.Trim());
// Pronue.idCuentaAnalitica = 0; // cuentasanaliticas.idcuentasanaliticas
//}
Pronue.FechaDeAlta = (DateOnly)tsUtilidades.Extensiones.StringExtensions.FechaStringADateOnly(Proant.ALFAL);
Pronue.FechaDeBaja = tsUtilidades.Extensiones.StringExtensions.FechaStringADateOnly(Proant.ALFBA);
Pronue.idGrupoDeAccesorios = le.First(x => x.Codigo == "GRA." + Proant.ALGRU.Trim()).idEnumeracion;
Pronue.idNaturalezaDelGasto = le.First(x => x.Codigo == "NGA." + Proant.ALNGA.Trim()).idEnumeracion;
Pronue.Subvencion = false;
if (Proant.ALSSN.Trim() == "S")
{
Pronue.Subvencion = true;
}
Pronue.PorcentajedeSubvencion = double.Parse(Proant.ALSPO, CultureInfo.InvariantCulture);
Pronue.ReferenciaDelProveedor = Proant.ALSLA;
Pronue.idTipoDeIva = null;
if (Proant.ALTIVA.Trim()!="")
{
Pronue.idTipoDeIva = le.First(x => x.Codigo == "TIVA." + Proant.ALTIVA.Trim()).idEnumeracion;
}
Pronue.FechaUltimoRecuento = tsUtilidades.Extensiones.StringExtensions.FechaStringADate(Proant.ALFURE);
Pronue.ActualizacionExistencias = false;
if (double.Parse(Proant.ALNL4) == 1)
{
Pronue.ActualizacionExistencias = true;
}
Pronue.idModificadoPor = null;
if (Proant.ALUUM.Trim()!="")
{
var usuario = lusus.FirstOrDefault(x => x.Usuario == Proant.ALUUM.Trim());
if(usuario!=null) Pronue.idModificadoPor = usuario.idUsuario;
}
string minuseg = (double.Parse(Proant.ALHUM, CultureInfo.InvariantCulture) * 100).ToString();
var fechahora = tsUtilidades.Extensiones.StringExtensions.FechaHoraStringADateTime(Proant.ALFUM + "." + minuseg.PadLeft(4, '0').Substring(0, 4));
Pronue.FechaUltimaModificacion = fechahora;
Pronue.Situacion = Proant.ALSIT;
Pronue.Observaciones = Proant.ALOBS;
i = i + 1;
if (i > 1000)
{
i=0;
pr = new productos()
{
Codigo = "GR-" + gr.CGCOD,
Descripcion = "GRÚA " + mar.Marca + " " + gr.CGMDL
};
bd.productos.Add(pr);
n = new bdGrupoSanchoToro.db.modelosgruas();
bd.modelosgruas.Add(n);
n.idMarcaNavigation = mar;
n.idProductoNavigation = pr;
n.FechaAlta = DateTime.Now;
bd.SaveChanges();
bd = tscGrupoSanchoToro.NuevoContexto();
}
VersionesGruasEnum ver;
if (gr.CGVER != "")
{
switch (gr.CGVER)
{
case "APOYADA":
{
ver = VersionesGruasEnum.APOYADA;
break;
}
case "EMPOTRADA":
{
ver = VersionesGruasEnum.EMPOTRADA;
break;
}
case "TRASLACION":
case "CON TRASLACION":
{
ver = VersionesGruasEnum.CON_TRASLACION;
break;
}
case "AUTOMONTANTE":
{
ver = VersionesGruasEnum.AUTOMONTANTE;
break;
}
case "MONOCOLUMNA":
{
ver = VersionesGruasEnum.MONOCOLUMNA;
break;
}
case "BICOLUMNA":
{
ver = VersionesGruasEnum.BICOLUMNA;
break;
}
default:
ver = VersionesGruasEnum.EMPOTRADA;
break;
}
var vg = lv.FirstOrDefault(x => x.idModeloNavigation.Modelo == gr.CGMDL && x.idModeloNavigation.idMarcaNavigation.Marca == gr.CGMAR && x.Version == (int)ver);
if (vg != null)
{
vg = new versionesgruas()
{
Version = (int)ver,
idModeloNavigation = n
};
bd.versionesgruas.Add(vg);
lv.Add(vg);
bd.SaveChanges();
}
}
}
catch (Exception ex)
@@ -154,6 +117,24 @@ namespace bdGrupoSanchoToro.Importaciones
throw new Exception(ex.Message, ex);
}
}
internal static int OrdenGRUASGC(XSD.GRUASGC.DatosRow row)
{
if (row.CGTIP=="G")
{
if (row.CGVER=="")
{
return 0;
}
else
{
return 1;
}
}
else
{
return 2;
}
}
}
}

View File

@@ -16,7 +16,7 @@ namespace bdGrupoSanchoToro.Importaciones
tscGrupoSanchoToro bd = tscGrupoSanchoToro.NuevoContexto();
//00
// Importa("GRUASGC", bdGrupoSanchoToro.Importaciones.ImportarGRUASGC.Importar, de); //00
Importa("GRUASGC", bdGrupoSanchoToro.Importaciones.ImportaGRUASGC.Importar, de); //00
//Importa("GRUPRO", bdGrupoSanchoToro.Importaciones.ImportaGrupoProductos.Importar, de); //01
//Importa("CAMPAÑAS", bdGrupoSanchoToro.Importaciones.ImportaCampañas.Importar, de); //02
//Importa("PRODUCTOS", bdGrupoSanchoToro.Importaciones.ImportaProductos.Importar, de); //03
@@ -88,7 +88,7 @@ namespace bdGrupoSanchoToro.Importaciones
try
{
string sCadServidor = (from c in bd.enumeraciones
where c.Codigo == "VAR.HP9000"
where c.Codigo == "CONF.HP9000"
select c).First().ValorAlfabeticoLargo;
string Servidor = sCadServidor.Split("@")[0];
string Usuario = sCadServidor.Split("@")[1].Split(":")[0];