From 393caac989bc21fa565a3f37f2db36fec8e62f3b Mon Sep 17 00:00:00 2001 From: fedpo Date: Sun, 8 Sep 2024 02:39:13 +0100 Subject: [PATCH] asdas --- Controladora/ControladoraPresupuestos.cs | 18 +- Controladora/ControladoraProductos.cs | 9 +- Entidades/OrdenDeCompra.cs | 3 +- Informes/bin/Debug/net8.0/Entidades.dll | Bin 17408 -> 17408 bytes Informes/bin/Debug/net8.0/Entidades.pdb | Bin 17468 -> 17400 bytes Informes/bin/Debug/net8.0/Informes.dll | Bin 8704 -> 8704 bytes Informes/bin/Debug/net8.0/Informes.pdb | Bin 11468 -> 11468 bytes .../obj/Debug/net8.0/Informes.AssemblyInfo.cs | 2 +- .../net8.0/Informes.AssemblyInfoInputs.cache | 2 +- .../Informes.csproj.AssemblyReference.cache | Bin 709 -> 709 bytes Informes/obj/Debug/net8.0/Informes.dll | Bin 8704 -> 8704 bytes Informes/obj/Debug/net8.0/Informes.pdb | Bin 11468 -> 11468 bytes Informes/obj/Debug/net8.0/ref/Informes.dll | Bin 5120 -> 5120 bytes Informes/obj/Debug/net8.0/refint/Informes.dll | Bin 5120 -> 5120 bytes Modelo/Context.cs | 2 +- .../20240907203054_funcatodo.Designer.cs | 576 ++++++++++++++++++ Modelo/Migrations/20240907203054_funcatodo.cs | 95 +++ Modelo/Migrations/ContextModelSnapshot.cs | 35 +- Modelo/Repositorio.cs | 2 +- Modelo/RepositorioCategoria.cs | 4 +- Modelo/RepositorioClientes.cs | 5 +- Modelo/RepositorioFactura.cs | 5 +- Modelo/RepositorioLote.cs | 6 +- Modelo/RepositorioOrdenDeCompra.cs | 16 +- Modelo/RepositorioPresupuesto.cs | 26 +- Modelo/RepositorioProductoNoPercedero.cs | 42 +- Modelo/RepositorioProductos.cs | 13 +- Modelo/RepositorioProductosPercedero.cs | 52 +- Modelo/RepositorioProveedor.cs | 5 +- Modelo/RepositorioRemito.cs | 8 +- Vista/FrmClientes.Designer.cs | 7 +- Vista/FrmClientes.resx | 6 +- Vista/FrmFacturas.Designer.cs | 8 +- Vista/FrmFacturas.resx | 6 +- Vista/FrmOrdenDeCompra.cs | 1 - Vista/FrmOrdenesDeCompras.Designer.cs | 14 +- Vista/FrmOrdenesDeCompras.cs | 2 + Vista/FrmOrdenesDeCompras.resx | 6 +- Vista/FrmPresupuesto.Designer.cs | 41 +- Vista/FrmPresupuesto.cs | 38 +- Vista/FrmPresupuesto.resx | 6 +- Vista/FrmProducto.Designer.cs | 118 ++-- Vista/FrmProducto.cs | 140 +++-- Vista/FrmProductos.Designer.cs | 12 +- Vista/FrmProductos.cs | 45 +- Vista/FrmProveedor.Designer.cs | 4 +- Vista/FrmProveedor.resx | 6 +- Vista/FrmProveedores.Designer.cs | 7 +- Vista/FrmProveedores.resx | 4 +- Vista/FrmRemito.cs | 2 - Vista/FrmRemitos.Designer.cs | 11 +- Vista/FrmRemitos.resx | 6 +- testing/bin/Debug/net8.0/Entidades.dll | Bin 17408 -> 17408 bytes testing/bin/Debug/net8.0/Entidades.pdb | Bin 17468 -> 17400 bytes testing/bin/Debug/net8.0/Modelo.dll | Bin 118272 -> 140288 bytes testing/bin/Debug/net8.0/Modelo.pdb | Bin 31708 -> 36280 bytes testing/bin/Debug/net8.0/testing.dll | Bin 5120 -> 5120 bytes testing/bin/Debug/net8.0/testing.pdb | Bin 13840 -> 13840 bytes testing/obj/Debug/net8.0/ref/testing.dll | Bin 5632 -> 5632 bytes testing/obj/Debug/net8.0/refint/testing.dll | Bin 5632 -> 5632 bytes .../obj/Debug/net8.0/testing.AssemblyInfo.cs | 2 +- .../net8.0/testing.AssemblyInfoInputs.cache | 2 +- .../testing.csproj.AssemblyReference.cache | Bin 30060 -> 29980 bytes testing/obj/Debug/net8.0/testing.dll | Bin 5120 -> 5120 bytes testing/obj/Debug/net8.0/testing.pdb | Bin 13840 -> 13840 bytes 65 files changed, 1138 insertions(+), 282 deletions(-) create mode 100644 Modelo/Migrations/20240907203054_funcatodo.Designer.cs create mode 100644 Modelo/Migrations/20240907203054_funcatodo.cs diff --git a/Controladora/ControladoraPresupuestos.cs b/Controladora/ControladoraPresupuestos.cs index f6579ca..9979b3c 100644 --- a/Controladora/ControladoraPresupuestos.cs +++ b/Controladora/ControladoraPresupuestos.cs @@ -32,16 +32,7 @@ namespace Controladora $"El Presupuesto {t.Id} se Elimino correctamente": $"Fallo la Eliminacion del Presupuesto {t.Id}"; } - - public string Modificar(Presupuesto t) - { - if (t == null) return "El Presupuesto es nulo fallo la carga"; - - repositorioPresupuestos.Mod(t); - return (repositorioPresupuestos.Guardar()) ? - $"El Presupuesto {t.Id} se Modifico correctamente": - $"Fallo la Modificacion del Presupuesto {t.Id}"; - } + public string AceptarPresupuesto(Presupuesto t) { if (t == null) return "El Presupuesto es nulo fallo la carga"; @@ -83,12 +74,9 @@ namespace Controladora return productos; } - public object ListarProveedores() + public ReadOnlyCollection ListarProveedores() { - return ControladoraProveedores.Instance.Listar() - .Where(x => x.Habilitado == true) - .ToList() - .AsReadOnly(); + return ControladoraProveedores.Instance.Listar(); } public ReadOnlyCollection ListarTodo() diff --git a/Controladora/ControladoraProductos.cs b/Controladora/ControladoraProductos.cs index 839e453..1a9344b 100644 --- a/Controladora/ControladoraProductos.cs +++ b/Controladora/ControladoraProductos.cs @@ -17,9 +17,16 @@ namespace Controladora public ReadOnlyCollection ListarProveedores(Producto producto) { Producto productoalistar = new RepositorioProductos(new Context()).Listar().First(x => x.Id == producto.Id); - if (productoalistar == null) return new ReadOnlyCollection(new List()); + if (productoalistar == null) return new List().AsReadOnly(); return productoalistar.proveedores.AsReadOnly(); + } + public ReadOnlyCollection ListarCategorias(Producto producto) + { + Producto productoalistar = new RepositorioProductos(new Context()).Listar().First(x => x.Id == producto.Id); + if (productoalistar == null) return new List().AsReadOnly(); + return productoalistar.categorias.AsReadOnly(); + } public Producto? MostrarPorId(Producto producto) diff --git a/Entidades/OrdenDeCompra.cs b/Entidades/OrdenDeCompra.cs index 0748ff7..edf76c0 100644 --- a/Entidades/OrdenDeCompra.cs +++ b/Entidades/OrdenDeCompra.cs @@ -11,8 +11,7 @@ namespace Entidades public long IdProveedor { get; set; } public bool Entregado { get; set; } - private List detalles = new List(); - public ReadOnlyCollection Detalles => detalles.AsReadOnly(); + public List detalles = new List(); public void AñadirDetalle(DetalleOrdenDeCompra detalle) { detalles.Add(detalle); diff --git a/Informes/bin/Debug/net8.0/Entidades.dll b/Informes/bin/Debug/net8.0/Entidades.dll index 66a1039183f28a78e5b303ff487b261ea991409b..16b2eae0ac4125ffb61ff28221e8af3fe1b37712 100644 GIT binary patch delta 5959 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 Wqtjm2`lfzi#aPbD|4_rRtp5S98Njyy diff --git a/Informes/bin/Debug/net8.0/Entidades.pdb b/Informes/bin/Debug/net8.0/Entidades.pdb index b28042f98dd1bbfb82c3bfceac109fc808708c8c..c72e32687bfedd19956fc9367445fa1ce724c401 100644 GIT binary patch delta 3085 zcmZ{m4OEm>8poe^7?^LEks46}#}!kAVLpIO7DWaWArtZdYT_nlz{+Bv7Fue9i63pU z0k4u^?IIMC<%qGgSr+cPN0bE@j~|DVXuE1|*pgbU7=7*kd1dT99@cYy_uk)q?)%)2 zdEbjiwhMQ*36(KRl>S5$Um&`PdOD$<`ONASPZz8~lOh9%l-!q{Np`f$xIHI3Z5HYl zcxnthsi^o#_?K^=YziJQWK=lXrxqS>8T|Ld>CIJ@!4sMgO9gR&a|H`TI@CtMdDd5T z$D4Ri4bTGQC5t#lc+*{M^`TO*5tM_MK{coa^;Qfcf%aJixIiAzCiN-kh*d$yKrN^T zo!~U+1)qXzU;umrz5|LV&ZVT!qLlO>@HH5UQo2d7DM@YPpf3g3e8~(#B=@5^Ha|)S z*!;)zRyA9lZhG2JeDis}4KY(P6Z&*mQIh zb*Mu}Ss)K=02K~B?F4&3woOk<+$cJ&dL-6U13LTQSHN}f7Q6-g8C(Vb1rbg?O?MhF zxdD?KC>d>!)qrOWc-BCVz~_TSU@6E4O`s19fQixm*ttJW%Aah}0pu=3u?nnX0b8Su z^crXc`@tb#wi)St)a~Fn=(HNKU_J#Cc4NYBOgIG-PQiqq(nQ_SCOQi)0N)rBnehq} zX(&XhxvirxsjVAJ5mG}>PN_Cf+;E-Pnxh<0x&ttJ5uWwId&vKi!Q*h>VK>1S%iIpn zkvYeg$UG4KYv6reh4vFNSEIf3XLl11$o;v4c)&85bDY0TZ$geQmpR9uk~zooWX|z? znRC40p1Vm}z;Et#khFjmI6?1(yu(77^NIad=6qsBaFy)DR?3`Dp9`}`v$xubB_N`=A7VVnR9%H%sE~mbB_OB<{YnN z$Nh}z?n_w39mCE8s%6dzM45AZr_4FNOXeJ}K{jtbJ^WRfkB0Ati;0GyIsAt1!LRQf z`~dt9__e*x$?Ij#@djBk_BY5N9yElAeTF3W@hAm)1d76+9{A79Sw}Dd??x17iw5{WHwJDK9>%((yy*oZ;Z~plsZ#A^_HZ5IL z|4758ViQjKfH-&Vu|#9XjimNtJ>oCA8!HZMw45C}y4mvH=dS6GmQL>fYyQI9d#_&j zaK)so4UhG7hqwOpeg3tX;_=^!~RjxVT7X=obDzrx0yET`3k|Nw? zNBorg+IB4N|7c-)mNMX}cX|q|XQ#!a`t?ui97?N>`C!3^iyEh%^i#b5Q1XN@*OplO zH#Lb1w&P;bLR<6o!)sEmUOK&O(AoR< zDsdom#tp;#EmJmr9zSdCW21L|x7yv6z57&0)>_Mo-Nox}cl0$U?J3OEb&g-x5jn#( zHqWOkdaOD8i&v^$zs!$&v;4I);p6htN`KXPJ7ax8%wX3K-6waIRR6g3&c(lUd!D%Q zgwYujQT8xLoJe9d$P@39W6TZ#^_7Q1FZuJh6gjrr?J@ZcxuJ=gbeeD(ONNV=9v*g2k(f6#L7|pze>TV5y-4i8%R(*XBBruhlsXV zpUMiaOWiS%HEeL@SK=o`hgz3sI>3Ihzq5rx0ckXp%y0 zchK-S{$|s~QdiuFo0O&$Pq-R`|KEb7Q`nYtXvD3y&KA>?i`52a uIBzyUJf9q%5OUw-F1?1=FltN;SK3KaB{NHxiU0U`wxFN{uKdGh(Ek8pM?tax delta 3096 zcmZ{m4OEm>8poe^1ZIX|h8dKv6>v(CQifp|!qrR>!89^c78Dm1%QBF!uoYcdX5>TA zH3eS`0!2hQk>aqyo-Ht2jkNYuT5P(Z^bSIOo6D3Rnf!fej!Zlqh}Fm_$w0RyEawCXf%_R$^M}vTErx_yn8>hb&sUh_V;dg8{2U zOW&aKPhgAGQXJR}c0_toC8z-@R!=PMi5+@khn`q~lhsi}q>h?FE9d~1EIRC5M_s57 zSaoz7rLRp#Q$ZTY2Bl!1&5QPf!yv_B^}^&{nA{7Kd(lxe_QD6iH{c!kd*ILDHuwqH zqr50SN{b?KG*`B zpd9SB8|er*2HHU<@V6T26v~gmIq<2)h=lnhOxTSHyD{M;OgIS>ew`+|U^mef&=2l{ zkZ2QGag~X*6r+?}*F8#4DWaozrSzgirNk~q%G8b|w?Q`tU*{DVI}Z1ef4o7e;Pc@t z;qD`G6a3eLN5azt=lCkY$HP~H(eY~3*Zk}b(m>LGZXoWkR&b8@YSfpbEER(ED@Y1 zEESyNWn<>sF2uQix#Euh-FhBSF{Z-~!8yKDaGv1zf^&SA;2eKlaE|X5oa1}g9V17? z9jeB3*ef{4Wx;uZYQZ_aPjHUEAvnitaK57_%&&bdO#Y=lV7Wh}P6+bx*9*=!_5g0f z=->(PM*Q|iofm5ooa0AGC)enMr53qazx3&kBUEUU$cjHoTn0pXDCPH&oR~yk*!Zuf zM7!__<}wwZQlc=tbC=a&WXX*#$xj*l9sLof+|-1pJ3srBXQPMGqCA}%HN6t) z)M)6{$VSxrBO0~*H0#v#tj(;`P_iu+_5O(Tk*9`=Y)+*ftLJtno|B`TdJTm~H7YG; zZ#5l@ipBG*Nhmbb8|8#dv^!CsVyE#uELM4Td}~M@XMQ_mQl7ct_Rvb}OQD5#H@zJ2 zrsd-4*+&*WcfxsZ@j$Up$9kUyl9^U5kcKvPpDX%N{vzgT;SniOow>s}QN8_F;U^Po zZyfCSeEc+(;|bfr#@91keFXsrs+wFSzK?zQb$6%X!-~$o>~yW0zI6AtJQGg!xV$*A zJJz`UyRzZ(LtzPZS%0sMIj&hb_aEkpogp7}PknNcU(AX2NzV+QtWSwMo@x!)%=GqdV|t7LFX>wDYMY^C0rjgIlL7s>rtwPx1MlkyvX z(=2JxFV8orr_}DvsP?#1YV5f+Yw&1Odwjn({j!(4zvhW-^IPZ4d2dcXZhNs;%F*&F@57t~x`y&$me%j+9*E5bM5EW9?S ztE}tPXZwD#Eian2CaJeLzUYJDn|nH|%6f*n{H6`}1&7*wny2jP4_~w_ZduIQe+3+V zA>^&4(JwAs5k0pdEaCni3s%}{F8A&)97yTQskk4U_T8F?Ds7`-EqTj zdC{4+Xv>Cbzx?YPJq8O7c2xM^nHo4ja!r(6F_J4*ay=`#(j-^5lwCa9AABoALnlI$uYCY6HGH&~@Ha9<H|EoJCUHI}hD($71;x^K%0YQAWJ=k`d`yN0xn@ j_clSUn*Vs%qhqp}r`K{)K7r9(cut+Bn7@2|zTbZVFf>M< diff --git a/Informes/bin/Debug/net8.0/Informes.dll b/Informes/bin/Debug/net8.0/Informes.dll index 284ba5e62e02892d2d69543f851f8102ca25677d..6c4353368a7ceadcb433dd5ec1bd9a97390f681a 100644 GIT binary patch delta 235 zcmZp0X>gg)!LqpQ(6Nm@Az}hSK}DS^X*#Y;8+r2j=2q)%{vh^)Q6t&VG%?lO#5gg@ zB-JdZ34gg)!E*5T!EGCRLc|0XPCj*M*XKN+^~d+z;%m9!zxjjM4@M0$a|1(5gJctv zBr`Kh0|UzxqZA91RKqk26H7xw^ORJB6hjMB3$wJz0+Ko`w?wbcoa`VOAh1l$LGu2w z9Pj;ha(^yQ@35Y{Kr%uBD#%?A6$Gia-#UM@@$YLj!4ErkZI+Na!QyYmV9sE`V8~zz zB$F9TfG~-{3PrEN830K`pr|Pjn=zzq)|bD? F1OPH`OH=>= diff --git a/Informes/bin/Debug/net8.0/Informes.pdb b/Informes/bin/Debug/net8.0/Informes.pdb index 57f102fe1e9f3c7060e62557942ebe200e9ef6b3..5e346635b8f308e47a14a7cecee7b658efb29032 100644 GIT binary patch delta 99 zcmV-p0G$8KSJqs6z8#!rvo4stFE&|csR$^keO>* zjG@x;$%g13jipag{^3<#5x3N{R|Gc#7%sMzxd6Zb04y`%7M$TXMvDkmwPkiuzO$wV FCMNZTFNXjC delta 99 zcmV-p0G$8KSKjfp8t06L}yOaK4? diff --git a/Informes/obj/Debug/net8.0/Informes.dll b/Informes/obj/Debug/net8.0/Informes.dll index 284ba5e62e02892d2d69543f851f8102ca25677d..6c4353368a7ceadcb433dd5ec1bd9a97390f681a 100644 GIT binary patch delta 235 zcmZp0X>gg)!LqpQ(6Nm@Az}hSK}DS^X*#Y;8+r2j=2q)%{vh^)Q6t&VG%?lO#5gg@ zB-JdZ34gg)!E*5T!EGCRLc|0XPCj*M*XKN+^~d+z;%m9!zxjjM4@M0$a|1(5gJctv zBr`Kh0|UzxqZA91RKqk26H7xw^ORJB6hjMB3$wJz0+Ko`w?wbcoa`VOAh1l$LGu2w z9Pj;ha(^yQ@35Y{Kr%uBD#%?A6$Gia-#UM@@$YLj!4ErkZI+Na!QyYmV9sE`V8~zz zB$F9TfG~-{3PrEN830K`pr|Pjn=zzq)|bD? F1OPH`OH=>= diff --git a/Informes/obj/Debug/net8.0/Informes.pdb b/Informes/obj/Debug/net8.0/Informes.pdb index 57f102fe1e9f3c7060e62557942ebe200e9ef6b3..5e346635b8f308e47a14a7cecee7b658efb29032 100644 GIT binary patch delta 99 zcmV-p0G$8KSJqs6z8#!rvo4stFE&|csR$^keO>* zjG@x;$%g13jipag{^3<#5x3N{R|Gc#7%sMzxd6Zb04y`%7M$TXMvDkmwPkiuzO$wV FCMNZTFNXjC delta 99 zcmV-p0G$8KSG@8QOt5@vySi$2xeZIJceGU>xL5$W)|n*~|kGj9IRD$0f-HCct{ zrAD%$X=19miE(0*Nvc_zVX~3Afw75Ya#E^cYGO)CsztJyiGhiQxyfcz-qpb7y-o%fZ`?$mOx$-P{t656B$x~FqOdqC}swf QGXP=>kO`ah1urrI0Kz9Ye*gdg delta 194 zcmZqBXwaC@!LlZ4_SB6%CCmbkllF1PD%$(*Px4pz^)d19WG@8QOt5@vySi$2xeZIJceGU>xL5$W)|n*~|kGj9IRD$0f-HCct{ zrAD%$X=19miE(0*Nvc_zVX~3Afw75Ya#E^cYGO)CsztJyiGhiQxyfcz-qpb7y-o%fZ`?$mOx$-P{t656B$x~FqOdqC}swf QGXP=>kO`ah1urrI0Kz9Ye*gdg delta 194 zcmZqBXwaC@!LlZ4_SB6%CCmbkllF1PD%$(*Px4pz^)d19W x.Id); modelBuilder.Entity() - .HasMany(x => x.Detalles) + .HasMany(x => x.detalles) .WithOne() .HasForeignKey(x => x.IdOrdenDeCompra); diff --git a/Modelo/Migrations/20240907203054_funcatodo.Designer.cs b/Modelo/Migrations/20240907203054_funcatodo.Designer.cs new file mode 100644 index 0000000..e06d38b --- /dev/null +++ b/Modelo/Migrations/20240907203054_funcatodo.Designer.cs @@ -0,0 +1,576 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Modelo; + +#nullable disable + +namespace Modelo.Migrations +{ + [DbContext(typeof(Context))] + [Migration("20240907203054_funcatodo")] + partial class funcatodo + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.8") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Entidades.Categoria", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Descripcion") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.ToTable("Categoria", (string)null); + }); + + modelBuilder.Entity("Entidades.Cliente", b => + { + b.Property("Cuit") + .HasColumnType("bigint"); + + b.Property("Apellido") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Correo") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("Direccion") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Habilitado") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("Nombre") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.HasKey("Cuit"); + + b.ToTable("Clientes", (string)null); + }); + + modelBuilder.Entity("Entidades.DetalleFactura", b => + { + b.Property("Id") + .HasColumnType("int"); + + b.Property("IdFactura") + .HasColumnType("int"); + + b.Property("Cantidad") + .HasColumnType("int"); + + b.Property("ProductoId") + .HasColumnType("int"); + + b.HasKey("Id", "IdFactura"); + + b.HasIndex("IdFactura"); + + b.HasIndex("ProductoId"); + + b.ToTable("DetallesFacturas", (string)null); + }); + + modelBuilder.Entity("Entidades.DetalleOrdenDeCompra", b => + { + b.Property("Id") + .HasColumnType("int"); + + b.Property("IdOrdenDeCompra") + .HasColumnType("int"); + + b.Property("Cantidad") + .HasColumnType("int"); + + b.Property("IdPresupuesto") + .HasColumnType("int"); + + b.Property("MontoCU") + .HasColumnType("float"); + + b.Property("ProductoId") + .HasColumnType("int"); + + b.HasKey("Id", "IdOrdenDeCompra"); + + b.HasIndex("IdOrdenDeCompra"); + + b.HasIndex("ProductoId"); + + b.ToTable("DetalleOrdenDeCompras"); + }); + + modelBuilder.Entity("Entidades.DetallePresupuesto", b => + { + b.Property("Id") + .HasColumnType("int"); + + b.Property("IdPresupuesto") + .HasColumnType("int"); + + b.Property("Cantidad") + .HasColumnType("int"); + + b.Property("MontoCUPropuesto") + .HasColumnType("float"); + + b.Property("ProductoId") + .HasColumnType("int"); + + b.HasKey("Id", "IdPresupuesto"); + + b.HasIndex("IdPresupuesto"); + + b.HasIndex("ProductoId"); + + b.ToTable("DetallePresupuestos"); + }); + + modelBuilder.Entity("Entidades.Factura", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClienteCuit") + .HasColumnType("bigint"); + + b.Property("Fecha") + .HasColumnType("datetime2"); + + b.Property("IdCliente") + .HasColumnType("bigint"); + + b.Property("Total") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("ClienteCuit"); + + b.ToTable("Facturas", (string)null); + }); + + modelBuilder.Entity("Entidades.Lote", b => + { + b.Property("Id") + .HasColumnType("int"); + + b.Property("IdRemito") + .HasColumnType("int"); + + b.Property("Cantidad") + .HasColumnType("int"); + + b.Property("Fecha") + .HasColumnType("datetime2"); + + b.Property("Habilitado") + .HasColumnType("bit"); + + b.Property("ProductoId") + .HasColumnType("int"); + + b.HasKey("Id", "IdRemito"); + + b.HasIndex("IdRemito"); + + b.HasIndex("ProductoId"); + + b.ToTable("Lotes"); + }); + + modelBuilder.Entity("Entidades.OrdenDeCompra", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Entregado") + .HasColumnType("bit"); + + b.Property("IdProveedor") + .HasColumnType("bigint"); + + b.Property("ProveedorCuit") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ProveedorCuit"); + + b.ToTable("OrdenDeCompras"); + }); + + modelBuilder.Entity("Entidades.Presupuesto", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Aceptado") + .HasColumnType("bit"); + + b.Property("Fecha") + .HasColumnType("datetime2"); + + b.Property("Habilitado") + .HasColumnType("bit"); + + b.Property("IdProveedor") + .HasColumnType("bigint"); + + b.Property("ProveedorCuit") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ProveedorCuit"); + + b.ToTable("Presupuestos"); + }); + + modelBuilder.Entity("Entidades.Producto", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Discriminator") + .IsRequired() + .HasMaxLength(21) + .HasColumnType("nvarchar(21)"); + + b.Property("EsPerecedero") + .HasColumnType("bit"); + + b.Property("Habilitado") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("Nombre") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Precio") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("Producto"); + + b.HasDiscriminator().HasValue("Producto"); + + b.UseTphMappingStrategy(); + }); + + modelBuilder.Entity("Entidades.Proveedor", b => + { + b.Property("Cuit") + .HasColumnType("bigint"); + + b.Property("Direccion") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("Habilitado") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("Nombre") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RazonSocial") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("Cuit"); + + b.ToTable("Proveedores"); + }); + + modelBuilder.Entity("Entidades.Remito", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("IdProveedor") + .HasColumnType("int"); + + b.Property("ProveedorCuit") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ProveedorCuit"); + + b.ToTable("Remitos"); + }); + + modelBuilder.Entity("ProductoCategoria", b => + { + b.Property("CategoriaId") + .HasColumnType("int"); + + b.Property("ProductoId") + .HasColumnType("int"); + + b.HasKey("CategoriaId", "ProductoId"); + + b.HasIndex("ProductoId"); + + b.ToTable("ProductoCategoria"); + }); + + modelBuilder.Entity("ProductoProveedor", b => + { + b.Property("ProveedorId") + .HasColumnType("bigint"); + + b.Property("ProductoId") + .HasColumnType("int"); + + b.HasKey("ProveedorId", "ProductoId"); + + b.HasIndex("ProductoId"); + + b.ToTable("ProductoProveedor"); + }); + + modelBuilder.Entity("Entidades.ProductoNoPercedero", b => + { + b.HasBaseType("Entidades.Producto"); + + b.Property("TipoDeEnvase") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasDiscriminator().HasValue("ProductoNoPercedero"); + }); + + modelBuilder.Entity("Entidades.ProductoPercedero", b => + { + b.HasBaseType("Entidades.Producto"); + + b.Property("MesesHastaConsumoPreferente") + .HasColumnType("int"); + + b.Property("MesesHastaVencimiento") + .HasColumnType("int"); + + b.HasDiscriminator().HasValue("ProductoPercedero"); + }); + + modelBuilder.Entity("Entidades.DetalleFactura", b => + { + b.HasOne("Entidades.Factura", null) + .WithMany("Detalles") + .HasForeignKey("IdFactura") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entidades.Producto", "Producto") + .WithMany() + .HasForeignKey("ProductoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Producto"); + }); + + modelBuilder.Entity("Entidades.DetalleOrdenDeCompra", b => + { + b.HasOne("Entidades.OrdenDeCompra", null) + .WithMany("Detalles") + .HasForeignKey("IdOrdenDeCompra") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entidades.Producto", "Producto") + .WithMany() + .HasForeignKey("ProductoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Producto"); + }); + + modelBuilder.Entity("Entidades.DetallePresupuesto", b => + { + b.HasOne("Entidades.Presupuesto", null) + .WithMany("detalles") + .HasForeignKey("IdPresupuesto") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entidades.Producto", "Producto") + .WithMany() + .HasForeignKey("ProductoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Producto"); + }); + + modelBuilder.Entity("Entidades.Factura", b => + { + b.HasOne("Entidades.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteCuit") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cliente"); + }); + + modelBuilder.Entity("Entidades.Lote", b => + { + b.HasOne("Entidades.Remito", null) + .WithMany("Lotes") + .HasForeignKey("IdRemito") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entidades.Producto", "Producto") + .WithMany() + .HasForeignKey("ProductoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Producto"); + }); + + modelBuilder.Entity("Entidades.OrdenDeCompra", b => + { + b.HasOne("Entidades.Proveedor", "Proveedor") + .WithMany() + .HasForeignKey("ProveedorCuit") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Proveedor"); + }); + + modelBuilder.Entity("Entidades.Presupuesto", b => + { + b.HasOne("Entidades.Proveedor", "Proveedor") + .WithMany() + .HasForeignKey("ProveedorCuit") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Proveedor"); + }); + + modelBuilder.Entity("Entidades.Remito", b => + { + b.HasOne("Entidades.Proveedor", "Proveedor") + .WithMany() + .HasForeignKey("ProveedorCuit") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Proveedor"); + }); + + modelBuilder.Entity("ProductoCategoria", b => + { + b.HasOne("Entidades.Categoria", null) + .WithMany() + .HasForeignKey("CategoriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entidades.Producto", null) + .WithMany() + .HasForeignKey("ProductoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ProductoProveedor", b => + { + b.HasOne("Entidades.Producto", null) + .WithMany() + .HasForeignKey("ProductoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entidades.Proveedor", null) + .WithMany() + .HasForeignKey("ProveedorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Entidades.Factura", b => + { + b.Navigation("Detalles"); + }); + + modelBuilder.Entity("Entidades.OrdenDeCompra", b => + { + b.Navigation("Detalles"); + }); + + modelBuilder.Entity("Entidades.Presupuesto", b => + { + b.Navigation("detalles"); + }); + + modelBuilder.Entity("Entidades.Remito", b => + { + b.Navigation("Lotes"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Modelo/Migrations/20240907203054_funcatodo.cs b/Modelo/Migrations/20240907203054_funcatodo.cs new file mode 100644 index 0000000..0633ffd --- /dev/null +++ b/Modelo/Migrations/20240907203054_funcatodo.cs @@ -0,0 +1,95 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Modelo.Migrations +{ + /// + public partial class funcatodo : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_DetallesFacturas_Producto_IdProducto", + table: "DetallesFacturas"); + + migrationBuilder.DropColumn( + name: "IdProducto", + table: "Lotes"); + + migrationBuilder.DropColumn( + name: "IdProducto", + table: "DetallePresupuestos"); + + migrationBuilder.DropColumn( + name: "IdProducto", + table: "DetalleOrdenDeCompras"); + + migrationBuilder.RenameColumn( + name: "IdProducto", + table: "DetallesFacturas", + newName: "ProductoId"); + + migrationBuilder.RenameIndex( + name: "IX_DetallesFacturas_IdProducto", + table: "DetallesFacturas", + newName: "IX_DetallesFacturas_ProductoId"); + + migrationBuilder.AddForeignKey( + name: "FK_DetallesFacturas_Producto_ProductoId", + table: "DetallesFacturas", + column: "ProductoId", + principalTable: "Producto", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_DetallesFacturas_Producto_ProductoId", + table: "DetallesFacturas"); + + migrationBuilder.RenameColumn( + name: "ProductoId", + table: "DetallesFacturas", + newName: "IdProducto"); + + migrationBuilder.RenameIndex( + name: "IX_DetallesFacturas_ProductoId", + table: "DetallesFacturas", + newName: "IX_DetallesFacturas_IdProducto"); + + migrationBuilder.AddColumn( + name: "IdProducto", + table: "Lotes", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "IdProducto", + table: "DetallePresupuestos", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "IdProducto", + table: "DetalleOrdenDeCompras", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddForeignKey( + name: "FK_DetallesFacturas_Producto_IdProducto", + table: "DetallesFacturas", + column: "IdProducto", + principalTable: "Producto", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + } +} diff --git a/Modelo/Migrations/ContextModelSnapshot.cs b/Modelo/Migrations/ContextModelSnapshot.cs index 3b25ab6..703d6c3 100644 --- a/Modelo/Migrations/ContextModelSnapshot.cs +++ b/Modelo/Migrations/ContextModelSnapshot.cs @@ -86,14 +86,14 @@ namespace Modelo.Migrations b.Property("Cantidad") .HasColumnType("int"); - b.Property("IdProducto") + b.Property("ProductoId") .HasColumnType("int"); b.HasKey("Id", "IdFactura"); b.HasIndex("IdFactura"); - b.HasIndex("IdProducto"); + b.HasIndex("ProductoId"); b.ToTable("DetallesFacturas", (string)null); }); @@ -112,9 +112,6 @@ namespace Modelo.Migrations b.Property("IdPresupuesto") .HasColumnType("int"); - b.Property("IdProducto") - .HasColumnType("int"); - b.Property("MontoCU") .HasColumnType("float"); @@ -127,7 +124,7 @@ namespace Modelo.Migrations b.HasIndex("ProductoId"); - b.ToTable("DetalleOrdenDeCompras"); + b.ToTable("DetalleOrdenDeCompras", (string)null); }); modelBuilder.Entity("Entidades.DetallePresupuesto", b => @@ -141,9 +138,6 @@ namespace Modelo.Migrations b.Property("Cantidad") .HasColumnType("int"); - b.Property("IdProducto") - .HasColumnType("int"); - b.Property("MontoCUPropuesto") .HasColumnType("float"); @@ -156,7 +150,7 @@ namespace Modelo.Migrations b.HasIndex("ProductoId"); - b.ToTable("DetallePresupuestos"); + b.ToTable("DetallePresupuestos", (string)null); }); modelBuilder.Entity("Entidades.Factura", b => @@ -203,9 +197,6 @@ namespace Modelo.Migrations b.Property("Habilitado") .HasColumnType("bit"); - b.Property("IdProducto") - .HasColumnType("int"); - b.Property("ProductoId") .HasColumnType("int"); @@ -215,7 +206,7 @@ namespace Modelo.Migrations b.HasIndex("ProductoId"); - b.ToTable("Lotes"); + b.ToTable("Lotes", (string)null); }); modelBuilder.Entity("Entidades.OrdenDeCompra", b => @@ -239,7 +230,7 @@ namespace Modelo.Migrations b.HasIndex("ProveedorCuit"); - b.ToTable("OrdenDeCompras"); + b.ToTable("OrdenDeCompras", (string)null); }); modelBuilder.Entity("Entidades.Presupuesto", b => @@ -269,7 +260,7 @@ namespace Modelo.Migrations b.HasIndex("ProveedorCuit"); - b.ToTable("Presupuestos"); + b.ToTable("Presupuestos", (string)null); }); modelBuilder.Entity("Entidades.Producto", b => @@ -303,7 +294,7 @@ namespace Modelo.Migrations b.HasKey("Id"); - b.ToTable("Producto"); + b.ToTable("Producto", (string)null); b.HasDiscriminator().HasValue("Producto"); @@ -337,7 +328,7 @@ namespace Modelo.Migrations b.HasKey("Cuit"); - b.ToTable("Proveedores"); + b.ToTable("Proveedores", (string)null); }); modelBuilder.Entity("Entidades.Remito", b => @@ -358,7 +349,7 @@ namespace Modelo.Migrations b.HasIndex("ProveedorCuit"); - b.ToTable("Remitos"); + b.ToTable("Remitos", (string)null); }); modelBuilder.Entity("ProductoCategoria", b => @@ -373,7 +364,7 @@ namespace Modelo.Migrations b.HasIndex("ProductoId"); - b.ToTable("ProductoCategoria"); + b.ToTable("ProductoCategoria", (string)null); }); modelBuilder.Entity("ProductoProveedor", b => @@ -388,7 +379,7 @@ namespace Modelo.Migrations b.HasIndex("ProductoId"); - b.ToTable("ProductoProveedor"); + b.ToTable("ProductoProveedor", (string)null); }); modelBuilder.Entity("Entidades.ProductoNoPercedero", b => @@ -425,7 +416,7 @@ namespace Modelo.Migrations b.HasOne("Entidades.Producto", "Producto") .WithMany() - .HasForeignKey("IdProducto") + .HasForeignKey("ProductoId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); diff --git a/Modelo/Repositorio.cs b/Modelo/Repositorio.cs index 40ee30e..bea3146 100644 --- a/Modelo/Repositorio.cs +++ b/Modelo/Repositorio.cs @@ -22,7 +22,7 @@ namespace Modelo } catch (DbUpdateException ex) { - Console.Error.WriteLine(ex); + throw; } return ret; diff --git a/Modelo/RepositorioCategoria.cs b/Modelo/RepositorioCategoria.cs index d6fcc2b..3d54bcb 100644 --- a/Modelo/RepositorioCategoria.cs +++ b/Modelo/RepositorioCategoria.cs @@ -14,7 +14,9 @@ namespace Modelo public override List Listar() { - return context.Categorias.ToList(); + return context.Categorias + .AsNoTracking() + .ToList(); } public Categoria ObtenerPorId(int Tid) diff --git a/Modelo/RepositorioClientes.cs b/Modelo/RepositorioClientes.cs index 28865a5..bd71285 100644 --- a/Modelo/RepositorioClientes.cs +++ b/Modelo/RepositorioClientes.cs @@ -1,4 +1,5 @@ using Entidades; +using Microsoft.EntityFrameworkCore; using System.Security.Cryptography; namespace Modelo @@ -13,7 +14,9 @@ namespace Modelo public override List Listar() { - return context.Clientes.ToList(); + return context.Clientes + .AsNoTracking() + .ToList(); } public Cliente ObtenerPorId(Int64 Tid) diff --git a/Modelo/RepositorioFactura.cs b/Modelo/RepositorioFactura.cs index 6f48105..084c41b 100644 --- a/Modelo/RepositorioFactura.cs +++ b/Modelo/RepositorioFactura.cs @@ -1,5 +1,6 @@ using System.Collections.ObjectModel; using Entidades; +using Microsoft.EntityFrameworkCore; namespace Modelo { @@ -12,7 +13,9 @@ namespace Modelo public override List Listar() { - return context.Facturas.ToList(); + return context.Facturas + .AsNoTracking() + .ToList(); } public Factura ObtenerPorId(int Tid) diff --git a/Modelo/RepositorioLote.cs b/Modelo/RepositorioLote.cs index c7ed6bc..09d57d3 100644 --- a/Modelo/RepositorioLote.cs +++ b/Modelo/RepositorioLote.cs @@ -1,4 +1,5 @@ using Entidades; +using Microsoft.EntityFrameworkCore; using System.Runtime.Intrinsics.Arm; namespace Modelo @@ -12,7 +13,10 @@ namespace Modelo public override List Listar() { - return context.Lotes.ToList(); + return context.Lotes + .AsNoTracking() + .Include(x => x.Producto) + .ToList(); } public Lote ObtenerPorId(int Tid) diff --git a/Modelo/RepositorioOrdenDeCompra.cs b/Modelo/RepositorioOrdenDeCompra.cs index 136bf6a..312d7f2 100644 --- a/Modelo/RepositorioOrdenDeCompra.cs +++ b/Modelo/RepositorioOrdenDeCompra.cs @@ -1,5 +1,6 @@ using System.Collections.ObjectModel; using Entidades; +using Microsoft.EntityFrameworkCore; namespace Modelo { @@ -12,7 +13,12 @@ namespace Modelo public override List Listar() { - return context.OrdenDeCompras.ToList(); + return context.OrdenDeCompras + .AsNoTracking() + .Include(x => x.Proveedor) + .Include(x => x.detalles) + .ThenInclude(x => x.Producto) + .ToList(); } public OrdenDeCompra ObtenerPorId(int Tid) @@ -23,6 +29,14 @@ namespace Modelo public override void Add(OrdenDeCompra t) { + t.Proveedor = context.Proveedores.First(x => x.Cuit == t.Proveedor.Cuit); + + foreach (var detalle in t.detalles) + { + detalle.Producto = (detalle.Producto.EsPerecedero) ? + context.ProductoPercederos.First(x => x.Id == detalle.Producto.Id) : + context.ProductoNoPercederos.First(x => x.Id == detalle.Producto.Id); + } context.OrdenDeCompras.Add(t); } diff --git a/Modelo/RepositorioPresupuesto.cs b/Modelo/RepositorioPresupuesto.cs index 312ec6d..65b15e4 100644 --- a/Modelo/RepositorioPresupuesto.cs +++ b/Modelo/RepositorioPresupuesto.cs @@ -1,5 +1,6 @@ using System.Collections.ObjectModel; using Entidades; +using Microsoft.EntityFrameworkCore; namespace Modelo { @@ -12,7 +13,12 @@ namespace Modelo public override List Listar() { - return context.Presupuestos.ToList(); + return context.Presupuestos + .AsNoTracking() + .Include(x => x.detalles) + .ThenInclude(x => x.Producto) + .Include(x => x.Proveedor) + .ToList(); } public Presupuesto ObtenerPorId(int Tid) @@ -23,6 +29,18 @@ namespace Modelo public override void Add(Presupuesto t) { + t.Proveedor = context.Proveedores.First(x => x.Cuit == t.Proveedor.Cuit); + + foreach (var detalle in t.detalles) + { + detalle.IdPresupuesto = t.Id; + + detalle.Producto = detalle.Producto.EsPerecedero ? + context.ProductoPercederos.First(x => x.Id == detalle.Producto.Id) : + context.ProductoNoPercederos.First(x => x.Id == detalle.Producto.Id); + + + } context.Presupuestos.Add(t); } @@ -34,8 +52,10 @@ namespace Modelo } public override void Mod(Presupuesto t) - { - context.Presupuestos.Update(t); + { // más que modificar es un marcar como aceptado + var pre = context.Presupuestos.First(x => x.Id == t.Id); + pre.Aceptado = t.Aceptado; + } } } \ No newline at end of file diff --git a/Modelo/RepositorioProductoNoPercedero.cs b/Modelo/RepositorioProductoNoPercedero.cs index b0f78e6..9aab79e 100644 --- a/Modelo/RepositorioProductoNoPercedero.cs +++ b/Modelo/RepositorioProductoNoPercedero.cs @@ -1,4 +1,5 @@ using Entidades; +using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; @@ -16,7 +17,11 @@ namespace Modelo public override List Listar() { - return context.ProductoNoPercederos.ToList(); + return context.ProductoNoPercederos + .AsNoTracking() + .Include(x => x.proveedores) + .Include(x => x.categorias) + .ToList(); } public ProductoNoPercedero ObtenerPorId(int Tid) @@ -27,6 +32,16 @@ namespace Modelo public override void Add(ProductoNoPercedero t) { + foreach (var prov in t.proveedores) + { + var prove = context.Proveedores.First(x => x.Cuit == prov.Cuit); + t.proveedores.Add(prove); + } + foreach (var categoria in t.categorias) + { + var cat = context.Categorias.First(x => x.Id == categoria.Id); + t.categorias.Add(cat); + } context.ProductoNoPercederos.Add(t); } @@ -39,7 +54,30 @@ namespace Modelo public override void Mod(ProductoNoPercedero t) { - context.ProductoNoPercederos.Update(t); + ProductoNoPercedero pro = context.ProductoNoPercederos + .Include(x => x.proveedores) + .Include(x => x.categorias) + .First(x => x.Id == t.Id); + + pro.Nombre = t.Nombre; + pro.Precio = t.Precio; + pro.Habilitado = t.Habilitado; + pro.TipoDeEnvase = t.TipoDeEnvase; + pro.EsPerecedero = t.EsPerecedero; + pro.proveedores.Clear(); + pro.categorias.Clear(); + + foreach (var prov in t.proveedores) + { + var prove = context.Proveedores.First(x => x.Cuit == prov.Cuit); + pro.proveedores.Add(prove); + } + + foreach (var categoria in t.categorias) + { + var cat = context.Categorias.First(x => x.Id == categoria.Id); + pro.categorias.Add(cat); + } } } } diff --git a/Modelo/RepositorioProductos.cs b/Modelo/RepositorioProductos.cs index e1551b1..79445bf 100644 --- a/Modelo/RepositorioProductos.cs +++ b/Modelo/RepositorioProductos.cs @@ -1,4 +1,5 @@ using Entidades; +using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -20,8 +21,16 @@ namespace Modelo public ReadOnlyCollection Listar() { List prod = new(); - prod.AddRange(_context.ProductoNoPercederos.ToList()); - prod.AddRange(_context.ProductoPercederos.ToList()); + prod.AddRange(_context.ProductoNoPercederos + .AsNoTracking() + .Include(x => x.categorias) + .Include(x => x.proveedores) + .ToList()); + prod.AddRange(_context.ProductoPercederos + .AsNoTracking() + .Include(x => x.categorias) + .Include(x => x.proveedores) + .ToList()); return prod.AsReadOnly(); } diff --git a/Modelo/RepositorioProductosPercedero.cs b/Modelo/RepositorioProductosPercedero.cs index 08472ce..7af57f2 100644 --- a/Modelo/RepositorioProductosPercedero.cs +++ b/Modelo/RepositorioProductosPercedero.cs @@ -1,4 +1,5 @@ using Entidades; +using Microsoft.EntityFrameworkCore; namespace Modelo { @@ -11,7 +12,11 @@ namespace Modelo public override List Listar() { - return context.ProductoPercederos.ToList(); + return context.ProductoPercederos + .AsNoTracking() + .Include(x => x.proveedores) + .Include(x => x.categorias) + .ToList(); } public ProductoPercedero ObtenerPorId(int Tid) @@ -22,6 +27,16 @@ namespace Modelo public override void Add(ProductoPercedero t) { + foreach (var prov in t.proveedores) + { + var prove = context.Proveedores.First(x => x.Cuit == prov.Cuit); + t.proveedores.Add(prove); + } + foreach (var categoria in t.categorias) + { + var cat = context.Categorias.First(x => x.Id == categoria.Id); + t.categorias.Add(cat); + } context.ProductoPercederos.Add(t); } @@ -34,7 +49,40 @@ namespace Modelo public override void Mod(ProductoPercedero t) { - context.ProductoPercederos.Update(t); + ProductoPercedero pro = context.ProductoPercederos + .Include(x => x.proveedores) + .Include(x => x.categorias) + .First(x => x.Id == t.Id); + + pro.Nombre = t.Nombre; + pro.Precio = t.Precio; + pro.Habilitado = t.Habilitado; + pro.MesesHastaConsumoPreferente = t.MesesHastaConsumoPreferente; + pro.MesesHastaVencimiento = t.MesesHastaVencimiento; + pro.EsPerecedero = t.EsPerecedero; + pro.proveedores.Clear(); + pro.categorias.Clear(); + + foreach (var prov in t.proveedores) + { + var prove = context.Proveedores.First(x => x.Cuit == prov.Cuit); + pro.proveedores.Add(prove); + } + + foreach (var categoria in t.categorias) + { + var cate = context.Categorias.First(x => x.Id == categoria.Id); + pro.categorias.Add(cate); // Añade las categorías actualizadas + } + //List proveedores = new List(); + //foreach (var prov in t.proveedores) + //{ + // var prove = context.Proveedores.First(x => x.Cuit == prov.Cuit); + // proveedores.Add(prove); + //} + //t.proveedores = proveedores; + //context.ProductoPercederos.Update(t); + } } } diff --git a/Modelo/RepositorioProveedor.cs b/Modelo/RepositorioProveedor.cs index c68076b..1b212b0 100644 --- a/Modelo/RepositorioProveedor.cs +++ b/Modelo/RepositorioProveedor.cs @@ -1,4 +1,5 @@ using Entidades; +using Microsoft.EntityFrameworkCore; namespace Modelo { @@ -11,7 +12,9 @@ namespace Modelo public override List Listar() { - return context.Proveedores.ToList(); + return context.Proveedores + .AsNoTracking() + .ToList(); } public Proveedor ObtenerPorId(long Tid) diff --git a/Modelo/RepositorioRemito.cs b/Modelo/RepositorioRemito.cs index 53a964d..02c1d24 100644 --- a/Modelo/RepositorioRemito.cs +++ b/Modelo/RepositorioRemito.cs @@ -1,5 +1,6 @@ using System.Collections.ObjectModel; using Entidades; +using Microsoft.EntityFrameworkCore; namespace Modelo { @@ -13,7 +14,12 @@ namespace Modelo public override List Listar() { - return context.Remitos.ToList(); + return context.Remitos + .AsNoTracking() + .Include(x => x.Lotes) + .ThenInclude(x => x.Producto) + .Include(x => x.Proveedor) + .ToList(); } public Remito ObtenerPorId(int Tid) diff --git a/Vista/FrmClientes.Designer.cs b/Vista/FrmClientes.Designer.cs index 45cc3f2..7afeae9 100644 --- a/Vista/FrmClientes.Designer.cs +++ b/Vista/FrmClientes.Designer.cs @@ -65,7 +65,7 @@ groupBox1.Controls.Add(BtnModificar); groupBox1.Location = new Point(12, 2); groupBox1.Name = "groupBox1"; - groupBox1.Size = new Size(776, 351); + groupBox1.Size = new Size(1206, 341); groupBox1.TabIndex = 3; groupBox1.TabStop = false; // @@ -89,16 +89,15 @@ dgvCliente.MultiSelect = false; dgvCliente.Name = "dgvCliente"; dgvCliente.ReadOnly = true; - dgvCliente.RowTemplate.Height = 25; dgvCliente.SelectionMode = DataGridViewSelectionMode.FullRowSelect; - dgvCliente.Size = new Size(737, 235); + dgvCliente.Size = new Size(1194, 235); dgvCliente.TabIndex = 3; // // FrmClientes // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(800, 450); + ClientSize = new Size(1230, 509); Controls.Add(groupBox1); Name = "FrmClientes"; Text = "Clientes"; diff --git a/Vista/FrmClientes.resx b/Vista/FrmClientes.resx index a395bff..8b2ff64 100644 --- a/Vista/FrmClientes.resx +++ b/Vista/FrmClientes.resx @@ -1,7 +1,7 @@