2026/07/01-01
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user