From c4d316b601dc095148d53868f41f4415ef9b51fd Mon Sep 17 00:00:00 2001 From: Desarrollo2019 Date: Fri, 16 Aug 2019 17:57:49 -0700 Subject: [PATCH 01/15] Correcion en convertir a dolares una remision, se estaba haciendo mal la conversion de IEPS --- Ventas/Ventas.aspx.vb | 1 - 1 file changed, 1 deletion(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 1aa78c8f2..fa27d2b61 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -15737,7 +15737,6 @@ Partial Class Ventas Row("Descuento") = Math.Round(Row("Descuento").ToString.ToDecimal / TxtTipoCambioDlls.Text.Trim.ToDecimal, NumeroDecimales) Row("ImporteIEPS") = Math.Round(Row("ImporteIEPS").ToString.ToDecimal / TxtTipoCambioDlls.Text.Trim.ToDecimal, NumeroDecimales) Row("ImporteIVA") = Math.Round(Row("ImporteIVA").ToString.ToDecimal / TxtTipoCambioDlls.Text.Trim.ToDecimal, NumeroDecimales) - Row("ImporteIEPS") = Math.Round(Row("ImporteIEPS").ToString.ToDecimal / TxtTipoCambioDlls.Text.Trim.ToDecimal, NumeroDecimales) Row("ImporteRetIVA") = Math.Round(Row("ImporteRetIVA").ToString.ToDecimal / TxtTipoCambioDlls.Text.Trim.ToDecimal, NumeroDecimales) Row("ImporteRetISR") = Math.Round(Row("ImporteRetISR").ToString.ToDecimal / TxtTipoCambioDlls.Text.Trim.ToDecimal, NumeroDecimales) Next From 54bff5063774e3257cccec397674e6276a8028ac Mon Sep 17 00:00:00 2001 From: Desarrollo2019 Date: Sat, 17 Aug 2019 11:15:13 -0700 Subject: [PATCH 02/15] Se agrego columna porcentaje de iva en el reporte de iva --- Contabilidad/RepIVA.aspx | 1 + 1 file changed, 1 insertion(+) diff --git a/Contabilidad/RepIVA.aspx b/Contabilidad/RepIVA.aspx index 86d3b36c2..cd25184a0 100644 --- a/Contabilidad/RepIVA.aspx +++ b/Contabilidad/RepIVA.aspx @@ -117,6 +117,7 @@ + From f62c3aa9ebb25c75ca2aa32fb0998c17dfb63556 Mon Sep 17 00:00:00 2001 From: Desarrollo2019 Date: Sat, 17 Aug 2019 11:45:03 -0700 Subject: [PATCH 03/15] DropDownLost Cliente Utilidad Padre --- Ventas/RepVentasUtilidadPadre.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/RepVentasUtilidadPadre.aspx.vb b/Ventas/RepVentasUtilidadPadre.aspx.vb index 83458643a..30b4771ed 100644 --- a/Ventas/RepVentasUtilidadPadre.aspx.vb +++ b/Ventas/RepVentasUtilidadPadre.aspx.vb @@ -44,7 +44,7 @@ Partial Class Ventas_RepVentasUtilidadPadre txtFechaF.Text = Now.LastDayOfMonth.ToShortDateString 'Carga Clientes - If UsuarioActual.CveEmpresa = 119 Then + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1" Then DdlClientesWS.setEsWebService(True) Else DdlClientesWS.setEsWebService(False) From d6bf4b03cad931c1e570c1b578e70cd079ea0cf7 Mon Sep 17 00:00:00 2001 From: Desarrollo2019 Date: Sat, 17 Aug 2019 11:49:02 -0700 Subject: [PATCH 04/15] Cambios Utilidad --- Ventas/RepVentasUtilidad.aspx.vb | 1 + Ventas/RepVentasUtilidadPadre.aspx.vb | 1 + 2 files changed, 2 insertions(+) diff --git a/Ventas/RepVentasUtilidad.aspx.vb b/Ventas/RepVentasUtilidad.aspx.vb index 9b9a2dabf..37669002e 100644 --- a/Ventas/RepVentasUtilidad.aspx.vb +++ b/Ventas/RepVentasUtilidad.aspx.vb @@ -41,6 +41,7 @@ Partial Class Ventas_RepVentasUtilidad Dim EsWS = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False) If EsWS Then DdlClientes.setEsWebService(True) + DdlClientes.SelectedValue = "-1" Else DdlClientes.setEsWebService(False) DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) diff --git a/Ventas/RepVentasUtilidadPadre.aspx.vb b/Ventas/RepVentasUtilidadPadre.aspx.vb index 30b4771ed..638d8b5d5 100644 --- a/Ventas/RepVentasUtilidadPadre.aspx.vb +++ b/Ventas/RepVentasUtilidadPadre.aspx.vb @@ -46,6 +46,7 @@ Partial Class Ventas_RepVentasUtilidadPadre 'Carga Clientes If UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1" Then DdlClientesWS.setEsWebService(True) + DdlClientesWS.SelectedValue = "-1" Else DdlClientesWS.setEsWebService(False) DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) From 700abb4ac3014ffd2fa49e09b9a20ba1cfe7a181 Mon Sep 17 00:00:00 2001 From: Desarrollo2019 Date: Sat, 17 Aug 2019 11:50:18 -0700 Subject: [PATCH 05/15] Cambios Utilidad --- Ventas/RepVentasUtilidad.aspx.vb | 1 + Ventas/RepVentasUtilidadPadre.aspx.vb | 1 + 2 files changed, 2 insertions(+) diff --git a/Ventas/RepVentasUtilidad.aspx.vb b/Ventas/RepVentasUtilidad.aspx.vb index 37669002e..6be403b27 100644 --- a/Ventas/RepVentasUtilidad.aspx.vb +++ b/Ventas/RepVentasUtilidad.aspx.vb @@ -42,6 +42,7 @@ Partial Class Ventas_RepVentasUtilidad If EsWS Then DdlClientes.setEsWebService(True) DdlClientes.SelectedValue = "-1" + DdlClientes.SelectedText = "Todos" Else DdlClientes.setEsWebService(False) DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) diff --git a/Ventas/RepVentasUtilidadPadre.aspx.vb b/Ventas/RepVentasUtilidadPadre.aspx.vb index 638d8b5d5..8719b0036 100644 --- a/Ventas/RepVentasUtilidadPadre.aspx.vb +++ b/Ventas/RepVentasUtilidadPadre.aspx.vb @@ -47,6 +47,7 @@ Partial Class Ventas_RepVentasUtilidadPadre If UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1" Then DdlClientesWS.setEsWebService(True) DdlClientesWS.SelectedValue = "-1" + DdlClientesWS.SelectedText = "Todos" Else DdlClientesWS.setEsWebService(False) DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) From a636ac3e53feaf808cc57b3908b578634cfea1bb Mon Sep 17 00:00:00 2001 From: Desarrollo2019 Date: Sat, 17 Aug 2019 12:30:44 -0700 Subject: [PATCH 06/15] Cambios en Utilidad Detalle --- Ventas/RepVentasUtilidadDetalle.aspx | 10 ++++++++++ Ventas/RepVentasUtilidadDetalle.aspx.vb | 2 ++ 2 files changed, 12 insertions(+) diff --git a/Ventas/RepVentasUtilidadDetalle.aspx b/Ventas/RepVentasUtilidadDetalle.aspx index a799a547c..359d5a7be 100644 --- a/Ventas/RepVentasUtilidadDetalle.aspx +++ b/Ventas/RepVentasUtilidadDetalle.aspx @@ -260,6 +260,16 @@ + + Dias Emision:  + + + + Dias Vencimiento:  + + + + diff --git a/Ventas/RepVentasUtilidadDetalle.aspx.vb b/Ventas/RepVentasUtilidadDetalle.aspx.vb index 2542a39d8..d16c9c28b 100644 --- a/Ventas/RepVentasUtilidadDetalle.aspx.vb +++ b/Ventas/RepVentasUtilidadDetalle.aspx.vb @@ -181,6 +181,8 @@ Partial Class Ventas_RepVentasUtilidadDetalle If ObjVentas.DtResultados.Rows.Count > 0 Then CveMovimiento = ObjVentas.DtResultados.Rows(1)("CveMovimiento").ToString.ToEntero + LblDiasVencimiento.Text = ObjVentas.DtResultados.Rows(1)("DiasVencimiento").ToString + LblDiasEmision.Text = ObjVentas.DtResultados.Rows(1)("DiasEmision").ToString LblCostoFecha.Text = "$" + ObjVentas.Costo.ToString("N2") HLCostoFolio.Text = ObjVentas.FolioCosto LblFechaSalid.Text = ObjVentas.FechaSalidaCosto.ToDate.ToShortDateString From 165105f8dd76633f48c898cfd6dbbd711c38818d Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 17 Aug 2019 13:43:48 -0700 Subject: [PATCH 07/15] Validacion de traspasos --- Ashx/SIGGPS.ashx | 14 +- Compras/Compras.aspx.cs | 14 - Compras/Compras.rar | Bin 181926 -> 0 bytes Sistemas/SessionesActivas.aspx.vb | 16 +- Ventas/Ventas.aspx.vb | 1429 ++++++++++++----------------- 5 files changed, 626 insertions(+), 847 deletions(-) delete mode 100644 Compras/Compras.aspx.cs delete mode 100644 Compras/Compras.rar diff --git a/Ashx/SIGGPS.ashx b/Ashx/SIGGPS.ashx index 93b689f28..f9736c0e1 100644 --- a/Ashx/SIGGPS.ashx +++ b/Ashx/SIGGPS.ashx @@ -1,4 +1,4 @@ -<%@ WebHandler Language="VB" Class="SIGGPS" %> +<%@ WebHandler Language="VB" Class="SIGGPS" %> Option Explicit On Option Strict On @@ -16,7 +16,9 @@ Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState If context.Request("metodo") IsNot Nothing Then Select Case context.Request("metodo") Case "getimginstalacion" - GetImgInstalacion(context) + GetImgInstalacion(context) + Case "EjecutarNotificaciones" + EjecutarNotificaciones(context) End Select ElseIf context.Request.InputStream IsNot Nothing Then Using reader As New StreamReader(context.Request.InputStream) @@ -64,6 +66,14 @@ Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState Return URLParametros End Function + Private Sub EjecutarNotificaciones(ByVal context As HttpContext) + Dim Retorno As String = "[]" + Using ObjGPS As New ClsSisNotificaciones + ObjGPS.ObtenerNotificaciones() + End Using + context.Response.Write(Retorno) + End Sub + Private Sub GetImgInstalacion(ByVal context As HttpContext) Dim params As String = Decripta(context.Request("r").ToString) Dim Parametros = Me.Parametros(params) diff --git a/Compras/Compras.aspx.cs b/Compras/Compras.aspx.cs deleted file mode 100644 index 3d3c4cf25..000000000 --- a/Compras/Compras.aspx.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; - -public partial class Compras_Default : ClsPaginas -{ - protected void Page_Load(object sender, EventArgs e) - { - Alert(UsuarioActual.Nombre); - } -} \ No newline at end of file diff --git a/Compras/Compras.rar b/Compras/Compras.rar deleted file mode 100644 index 4725afffdc398c2b09f70f38f7df741421e81e34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181926 zcmV)8K*qmPVR9iF2LR8Ia{vGh000000002y4|IT#GyvKF002Az00072DP(uHfv89w zGYl2m=QOi@O#*xlYlO$Dk2DoB0Cc# zmctVy$mV2#i8+&@s$ zaDU{+bC|-~ig(h+p?pwQ?!RR3tpcjdCnrS&0prnHrU7L6bvA{WsN4VZ~Y zNO}ZLIcOeagvtz|K~nw1b!X7D&%Ct&9}5vx%ohS9mSVlb%VEgoBel}Af@&4YhR7OX zoGFw#wZ|R3e)h7Nt3~sRf?@grPR%u&GaFa)NTqqLSmvYlfb$7-fRHo*Z5;ssv=Ryc z0yu4>wb6>rNF6f|03ZMW07GwWaB^XDE@5+UcrJEg0PuF29S{M~(9F?QP#M*G@*|!P zTRYzFiMuT{lWzVGR-YiUicITkBcM2VqajZI9* z6EjmqCZGS`{(tNKpZjm~}daOJ3Z4i_NLCZza6T`?;_6FK+%GOL{N<`Q8A9yStaLe`R`$F)Z)L(yg;GaiZZbYlIh@q2UfpPxlPm8^gar$~TGRVwA_QZ~hm7ZU{ccaooIm-;TG z>r_q3TssED1Zt)kwUiIw?^Y-Fv+m%vpswL`A%5TY!om8&llF#1`=SkE|Djp`!zBO_ zI*puk;35^ECKTW)lzVLCuj;$~vJ6+V9o1N6KB zEaXd|G8Ql!pZGLEj(-B`VJ(rf5yZevv;EA99>pN1nGhTjl!U05^!(7(Ea=O zXm|lIL*Nh*6O%x|eQsR{-Ju9FFkYB|R9s31fSx_s^Y{QBmwp5ePv1cgN8-KDhaGLM zuQDLLEdCR5C=%-0x5^Jb-2hz&1nFn^i-jyVm9zdD&Y@h>4FLb*1!;%?LBpFz=WsUe zZ{WY}jsdIs?uXyjNsvTJG3}CY3V^nV54FusEFyvH2c$lor1pPgw18<)&7z#v2mtea z6VW?BjmHK20CtXq>I8U<8}Je9LV+R`~A%Nh*DN<&zh<5y<4wj+x&byQ=$8jg-I+B9Bv$yDo z4^2OW+=)~Cc%|H_v!@UUPzIKfs5mAy(r_`D140ali+i|zce%7zpsY2o^Jtf>P6kzh zdUTbTIusO^(L_Bsfb>Axb^?=f=oGkI9`~B|KH9Dc<=8iE;OMt}MBgqPH}3V>f&45& zB7atHUytZroxYJv384=(0VP!-p!a`ba_U$=0!Uf6mb zs{A4>AOcPRRR(6*R%?g=NynfNdf^0RQ3QAE%^&ihZ8HE%xpWBu*v2-^#vlp2!w~_r zl)eZ&%Y@03K=*LkLYX zqG5^Hst2&HVEi?)2K4Bj!t73OPKkK)5HH{ZxodII1EE151RQN}<+XEMrSP^~4qkfP z7N(R75w|FyE$VubPye1+I_10bnk$R~)6`W&R&{c2^SUQBOj=&qIU^SDaK&i}R+UUR_>v*Uu8#F<>V#e7w8iRm< zb}-Qv_6P%dy_DQ)4I)jTvlP)D<{XHW^uhrX1?Dx&s(&G*oGJuvd zetfp^-6GC@99kFoprv3b&%2MYf9*&=Jb3yBYzn}aFSo4u_1!mgSsB49Ip^&d3Kiqf zn7_%FC0dpu?`%~P3)^6|YziQtl?Ni#uNbocZL?tlp>D|{^nx*@=qd>6@r3&q-h*w^ z_lyz|{Io7w*psx_58c0LEse|zp%7S?PH&IJ*2SVf8#t5sa{xTCfjoaY1k*3bL$o97 zM8hDHKq4c#K}XX-&YOW&j+DM|TR1&pm?%K)jTi}5C# zf*B$f_v_=)HV#ow0dE}5MD-vV0`u&b3e9dz3J2&ZFxVKLTO%yxOez0*x9YKV$>b((CfjyWBSrMkE5SPSn^OPp3w&8 z_ET}EgtUr;Dy~sEQhZZDZ^ziAUHC~(Gi{RDpWsk1(BO}v?=bn67 z>c+6v0xqh3)fM5FV4ngP-n;oNASt9FYwCn#XhxQ{XOg02lpT-6RFKvlI!-kU_G|{I zS;3p$)?J*U)ym;U#I<`Ft>ja7VoxW!;HV@ldR->XuACQdi z9o1pE(aLGvhAV>yL_bXThK3Em7ou(I1mN5jsrP$SAO@>zA~vJcBmE0`ikv3 zk1;^Oc7{2=`jEkYnQ{gR_rgZOR*hGA8x&(nQYvZ~GVIuTVlq!1BH2!#*%oM1g&?>T-)KN1bQgt#PCj`(6kZc@Lh{BW75hBiap2fDciy8h|=Jdo-kxB0! zrEGx}T%82_T(}5na90aYU&Lh{x+opHlZmTNr}9=);1sWP2^SNPKl)RL{Pu5p^8ALT zr>gbKp+L^6;U6wc_zB!D-+Kx6HIM9Ydf>=FU;|Wqx&q0E2D8XKu+ZEhFT(gt(?SBl zwLpSl+~g%A`~iGt2>l$eHhdnX;g!t5C?jk?rW zYr+0-`F8;8M`poU^fxN{)yYESKzktMcH$H$VeL=2Dth$-fBWG)4hvyX_px~}-^Ydy zT>^IB?}2u{xQY_zIf0A#q7O;a0bfI&kOfny!?(eL|76L4w*7n-rF8nH(bmg9Un~UL z3$yxIihy-VyABNa=)@$&Uf(w*>ttfECI)oT09$^$0H5P`+A)=kLjH^#zFv%cw)3Kx zmHtA8-v}#g3o6%j7(ml6ZQt3IQJlxQdncIeL($nt{R&I7!pX!cFVq!(A zGe)`hYP}e_MjX3)ru9^#S6t_>*1>YH$are{CfX$rhBMq8-4FZVBrQ;`PE1HAXNdtD z8Jl?NtZ;$44$dwwcUhovNaoRPJ;7I&_jV5us#t@wgBVwLr>j;fn}gQ`L-%jzD8hZw zB~I2UG1uu5e^=rRPe>mh zpeZTvBN)@`!(O)z-Do&0aN6JAt+=0XYEps=v(;xpr9TguHcAXqRFOB{o2rs&fQB6N z1f+_HZ5om-o6*n>FaxB;XHrcEDY0TU6PU9aI%EGYMWhG1Pb^LRBZ*36Qw9tKN5e9B ze?35clv6Q>SEHLo*STr5Yt)I9(SZ_v7(9?_v?^A(H4sFLK(gRZHOvUGwFy?TQUD|z z#KESEIMW#^BH)-=NKlTZB&HLhYO{pMyVCedMyjK*lBAA#ZE)>ZjXUrGNd$&(Q;ZVY zbi%>>oaw%9c1+dgq+t~!G5`$q7`!lw01^Re9F=gwihzCEgrGDM#+-=hZ&zxH-!b#& zrg&Vt>jO-Ngef6^q`=|}W<)z3TDdp}ADp81u3SOUyNyDQ15QGZvLCEU9M5znVG#`I zdYc}EKMHSR70xNjop^oBBsiu4Kg=u+dBG8k089YxVS~G94PBjzErKH!*~np~D+thq zQ<)TQ_BwBrEEF^(Sa8m#4j;%3(!lZ{is}6{!XRNHC>%&D zF|`k?0|vNI0iJgytzOq{;~|C_FI;7L^{CbC1PB5P44$fSQ~)_P1K$MZP*X2?2l?2& z;5TLs{73DxZER)GCVA&4wwSUt0TYj4`3d_)lTp-1^qp(sa6K){XC%l6`~xUGy=Mj< zxESm|Ngz)diyhblzmN6*$k@Ji-%6<$ughF(Q+F6w$Mt|yukzlvQOmXnH+I0Cg1cG> za@tG4ty>N|Xgu8p!IJRTqNLg1Y?T@pE*XRS*n7SSM)U$BY*=s>XpB$-5STlQ6wrYw ztM=f!Qel_C`(bRRS``~Cs%nKQl56-Bq>xE1@~JA6nd*`5ZbYtlXnZS+~HsrXd*cA)a5>eN! zk}U)gdxMHf_jsRL?MQ+;5~PiSDI!Y^fjd!|um|q3HT^L?(r6|jCWdYGWsNG1W?Ehb z)#=Ed+1}QFJzP%_kT=!#yp$bgI+iF`pJ6dfX$0_gi|fL>1p`KP*`iwL=NAYj3bW^| z!4*+}f!vU95yNNzcr|2e&Gn;Nb?SA?yuXZbmdSrjJ56Ju^M7GxR@FhuE{Gla%QqSMyfjt+(2Tyx{?g*B`#Kznes$X8RnQbb6NT#`n72 zjQX&Y zZ~-Z9d#d~Uya3Fzx4pg}=V64VL=zKnXnzxvA~xZ|0TrUE)zHfEiGsX$h;!x`r)Z=q z&dQxfDR0GJG0L_2F+Q>{zXc~v55FiIoyo10DVw=g1FTVu*I7NQPbz^yC_WyuJp@M`L7eJMgN?`l4+O5B*~nF%8x!a|@YzzX3^Azn12Cn37~UC9c0 z;6u%G7wi8uK_}KAPl4+X?-k!zCz;MOp%N4x_^}eFm)ptN-SDN;e~Pz`3mEcS02V_- z=7BIEpS*%t!A zCu=#?+-C)<-O%VX>QFU@4b{Z~<*Q0aWkh2X>fxIjGhX9icKn35PnFQA@br+O3)S&! ziJ|V_3J@4zdJ-@Zu;R)$pCl#s2F=(HFZxa1pwUae$%)(2l6pQLt1NWKwMaewY)+P! zAy7r?peU2pj301*!Z_dgR5=OK+UyJit=++%d zIcu?_Fpu6Ayu=CxwL@F7cHS%31oJRuuXa*sH6j>Dpl*+7e}Q=7Ew^2==R!v65%UM# zgmJS=IBKQL61p8NvgHQe-)dq*rFxrH(7^8k-0J207k@5sw=_{ITo9aDG~?~W>4T7| z5j{31YakagB&@F?L2CD+l*+si^B9%!MpdG{=G3W}6x$Fcrd|^?5atCTJ~GpBiyaIU zaVwt@CjI2-y>Rn<7O@|fuy5Q#{ptz&yJ)w|>d0n4XCWtbFHU6(H+MH+6~c{^jL z?5O5C60Wel{RGmdBRRsA*uLFL-2CAYs@P&|O0=yg@%-$pH6Gbv%rU;Sr723U6V`qc12^PQ8)7jbv2+=BX?O_At z_TRgya1eTS!R-juhX+wzhxsbX8Cy#k+WA`PL1FFeDmVWtPfWAe_PsL+5H5y*meCag zF&Yx20*SNs-3IuvZiS5>uMAdC?Zc^Gd<8RaM=+*lPF(9J2O?zSqoqxj0k8owyznfT zo)Kj+MlwrCB@}LBkz`=;)yB;o3 z$-yK=7bk`oR$VL$og#iVsVwmM??1i9Tu)H6d9-7WN*5%>Bo^j?G`vZ=CYt?Rk7Z^` ztYV*3$(0n$INsUz0YFC*H?M|_o*SgLJ$hyF1g8N*jBUDJgkZFMx=L~84I5lJVnixf z;I*1A*3Tauos@5abedx7#hLBxmYwd3P}CG0*k0ND<769WnAZ?Dx8fwz6fIqRYTD@R z`I~2_gT%zO&6hRHCiJmA*Mex#2qKKavo*FeC`t)_?cKqnI@R~xv%eG z(G^g+BJ-gey?{+FY7U4(&Uj!}K58(z=_XeiZXBd2fY_or7*7i09*HW zz|8MOurQ*T#>#f;8N&(^`(N&E?_lb0Tjn_5RFyymxPGd2QNry2drsCBQp%vuMnWg7AVhW@Fi{FBB+q3AV%$fBF&Gr&szz*f~1{vn*l%Z$?N6&W>b0m7QWashs z`~R1?)W>f<{XNlYb9+1B$?y0nDInmNzCLg`Eb3-sA%pcdZT5I0^f>fAb7Q)x7nz@k zMZV@A$OOSJz;kaJKn56{3kWXz#wrbUh=kf^ajKXhQca^vAt61Zuf=#YJ6SWk-J9N< z#4Cq@pd+ll8gGTTW+n^BIJeQfK7t7i!iq80CvYkIs7@~0Wi?%QmPLDSpOq{%K2tJtxElcf4dO+y1=C)I`KI=-OGULtg0wRc{E9j29^SL z5o)7D1l9%)dAoQT>GTfi^us&koxW&}X!uL#Ibx`Dxr;z-7!`QL3A1=H0Uk>dDl}1c zmxiKIxfBf%mN+E2Xb47&bi+|tzG66e2d*|SYClxlriMtHXdC)TqX;I0ynC7;XU)y- zaA{SY`ZgPe0dyGQb~MUn2PY}m>1&59OI$g9xM0}}53D@bNLc!buo6;|AB?J&0KSYe zOIkh9sz?e|AdxAPGHtw++2rXMc5NpkfSbw1l!Y=GtinQZ3XF+x?TPG!5kbBY5Y#O_ zC7Dp-2sK`ZAYPvjgk%UNRL%&6b4&^3#x)!fE?H$V zg5E7aygGK7W|I-^Y^FaQ>OMRMC%Dyshtj*IZ|^!gwI=xvus6rDAaOJqp^7_Gq1+Ql zS>ZA7#UEhmHBXUg5hz4x2FE!I-6@nif(ldaJc+YC-U@wl2fQqV0`*tJ1-dZ>)Q*48VOR?$4^uoIm zuv2lm7o(B_2~8F305nO-kk5`$PeTu84zS?bB;}}Q$1lyE6RIo-z+Q_|b*2Y7zO~mm zjZI1_Nn+0#QwS`-4vt8ige)v@AkTV*wk}^)?^<>|i!KeHLvQ|i z->3bJ7d>xZ_Wb-Gph8Q|hbM87LtMq8V2{0#(F!B@2ZF8Sa0mj<_+FLn>JAN)j+uwb zjH>mW@RI?wM?11}hIs|0fz^h)OTrW5cBPDP5det4P&YYAl$s5iC%3S21_gvTkQc0u zMtgtm4Rfx1U(fGIf0p{*fS@beB-ZI;Kv5o4-QXc3qVxe#a+rh0UFZX;)JhZL>&4Xz z+?q`FA)L_GR~J&joaTkT;i0hxySya=D4KB*`GT_kBIW^={uFlV$B05VA=xY;wYD{o zOcdng71zeq>}4}*w-%x{7^^Rl$CRlNe3N5ZsXrIJAtRfwP+GF?(mx@`gmuRUMZsSi z3GjVpEY}$Bss2Lqfq)(at!PLN!}VL_y`v$*6z|6%fWZBcfq%D?7k|hZfSwX`Zw@!a zlQ!X5BMYGoMO{J&EYyLtDa-Jpm~a~#V!~&45Kg`#u**NA)<=omeeQ0;0ehphFcSg} zjx=FtS~5{S)YIa&8ekutC%MR6Oa+3-dx>6vnB>0m;*-yroe+-BMCJU2IZ(mZ6f3ww4m|4Ns4$YrD6}K$bwBj3!gHzLO5{0#(V?rx7dY2thY?GkJQfP(8qC+ymKr$+gxsXnS z(55LE^Cga*fLGu~N#uMpTPqm0eH6$G>xN>Y5d(uT5WyfBuL;ds!e)`a``BqzdUT$M zFm4^Z_(m9!d}ryW4$WhvCMtWx=bBB~TW3oJ8aM(SD02s_(?$=#>W(5;C z4~`Y+Br5iY^pe<1Ho;OyrC61-;d{s*d>X1;FPjpZ)KDZ>@|=C`pLK-HFF{zPI`qx6 z&FRY}3^RH4pmlTkbA_(_(E<>DWy%NCZpy1PTgizTqRC<8O52@TU`m2v{2n$Wc+)Z+ zf5X?cYw}VPSwfe)jM`LSzQm!5$LWfEayA(Hem{ z!^lJ(16}-UzYDZAPHo2Fwi-emqg$p*%sFNE4tByhk$gRo~(=jkHy1#5-;Hrd2s_U zIWZG=AEji6O#z{lqlNf`))EjIKr~|+5J4+eNt1w<_p0Bu0{-@s6G69ufpGvxE6P=l z&U7SJ86lyIyg>qp^Z}N_;j$7&P(^qzL^2o1qvn}Dyd#HHuN6N*4OZ_VW{{`oZ4}CE z|InqjPi}!izj_1%#0`&I+!jz0nICG+q(;>R+-J<|cso__`>(6^)(qVB)gj~-SA};q z)nSY1F^n^rV=6$P|4m}ijeJw`@scGBbBRzM|J`(iT^!+>6ZMgipdi3d(IH^%W4a%% zLH@K?>B0M3#UwK&Oei0>cD@oKmhR6#e<44-pS?~SwEs_LriEAW5eAr2jSYy=fEHFpvj}R1~P>=|8kz!*W z5yxAR!pqRUd$J3smYJ-L!bUt_GS+xr4R2|V89|tEaPipk)`6#Vw-@|e-Sb%4pZ(PL zT>j7c#+;91TVG$rt@Vb8Ao0QB`pW1u3S>3Z#f1qv^V$$ux?z@oMWP&{w*DifAcrk2 z5meyFL6~T>Qt{u(*6^NPuQhj2wst;Y;`V>0y7{0?g^Ni1GGNn;V(e2yMX24hiy6Hv z?v0HJT;T}0g7#iS`H=r&%tuLKy@1k`C)c2DGcsOlP~Oj>MR9kC17{VJTAOj6yI*R@ zgX-1#^}IjQ&aPjB+X<1gU@AuY|5d(HO~z-$6Jd63??6ow5xiWulOAysE&bW8z}@1) zs=#?Qhs2Qw`gDv^xMYN<6OrHVKBJyig2e*F@?a4 zv&z<@BJ_Sk90^F&Q+FMRq;=uCrU8hl*kKRqO@5@?qy7B|97IFH;e&g8NT?`yztQcw zNf~2`MrFX{NJrvC!DhFh|3aC1H&7A3W+Go8sHOWUC!OAb$^6Bgp~Qk0a=zIUy$9qz za@8>*J`!c}-}_*Qg&a2maqyfUmzOcY=_X?(RG9-kXjTm7_ggo{?y^~n$93UYKN#rpb6X`1 zMsa(Dw8Ow(+;c}e3(e!Zs51b;;)(zqORhqGK9mfA?5Bakzsh^Ox%kg+vzf+wPN?$) z0|1PmlgX6d;09?^^?T-%HNS#d$unq$+=~5i%cT zD7-IGnXQgQ%MwrlJev#T8Lp`5tiQx2s?u{&d?IP89%(8bXsQlqDH)!f%;jQ2DWSD_ zbD%Ml>3}C|qZe@`7bSF@K7p{_LNpVqFC|*(s(H9RJv1t5kyn~hr}62We{b6?7hTpS zQJDw~a(-&un&=f=#|X`K8YCS%I1^Wqz)8EkHpbvEPSc9;$*5I~!kVvj-=QRoaH52J zNKJL}Ii*Oc{g@LULQn`TeOVRE+`>FLb}zDI!t&jdNo$x(lu+{pZP6$4c51g)W#o(p2tdjDU8SHrL1v+m8P zv$i$74aP9dBii=uUW`Ka+cmnW64ze1#@*PL18m>~>Sbk>gl_nO_BCEyumTFF;!W>& ze)LxNK$9OBQiK-wp$Ew5(f+@v(ZXVqZbH{S6w@oEFmqx%D`#(WkNxWd%dxm;s8w0t zbs=EfDk={uG~Z9tmTEJIfQisVb&)0~iz1b|6hw*C_<4J5BAft}&~~(W&y1GIB4)WX zJsBs{JXL`Nf_$*2XFatfR96NiMJHFPO3*~Y`8D}JqL4dDdO|99zA!1BZwGt4 zYjoUqy*iz=<0aDf7-AX{Q(t?Juj|dm-ra2k>i9Laws!u=9@XmS>b4KcwJ)kb(i8o= zy1++#(+FRHu)&)3?cg@Q8A}!?TN6CC+iLP<@oHU$ELABz-B>00c}is1Ja?T@d*5(V*pw-?hA@^VHB zM4_X_V{<#c<_a2xoGvPNLcDnAvt48iE%f#PcW@-HdQ?2cYkN7bjVMGko!mR#9Ne&k ztZ+;c5{<2L=V#Ls1p?}+T9>`msyM^H)vvGOAF#LS7o?ByddL33jjHa8#uK*eNQ*BM zi*aH$J9PZ9c7-UE+M3%xJsHExW9oJn$iFyR+6HPd8RLi0YW=d%wIo}BpfyI3~Hcb>KOp1-668#qaDl3=aRwMQQ zxU-rCKcDm6{+>81a@*v>T?AMTIcjQqh&;u(C5o_J@=w9r@DypF^aeX?Kc^L#(3pxNsEV{D-YrVngD#<=r%=>2 zvrOF;9Drm=i-Ka;m^@@$gM=KSgqp@E`O7 zP(Z*}VZ7A4kiubS;i}kVJh`eGTdS;9L`jZ^r;2E0?_d@c&oqE_QCNhPk26|%AgaKEmxynB1M)qBk``Bgz4E?OVFh7t3-n(s%aGl;K`W8L zt?_0#wTHRuq!k|#LAyJuEh)Qb@Sr$<0~(a}@h?X_NT#V&cuPDj`n`Vt;S*6h1eniUY)?R>n0dt+VP%{PHJYvBI&Pp$fMJ6 zjKL*ul?IbRQg)X<5}758<~WU6)f5hU(OtRAcKJQ?xy6;1?l-MH)LA2gHhrr)=lEzt zgFW6%tXE99i7ua^jqn3IG`z*WX3+hf+KE3m=ivK)1g=d4Ql`M+r%}8l7aCc@X{+|E zCN8?a&hYuwZ|ZK__Fm@fBVYK~((^6~0H~l^LD+o^2B~|XgG?bNT^y_cWEbWDa?F%= z$}@{f02a7%upK03lb|32GzLq6wzzVrAMR*C|C6DR z@DQg}?gW{sJ%hfVW=~;356?E#O9lm*UMvnh8K>LO?YW{v$$p<~s8bjN1zy5RBO|YN z82(17ZYLEKwNLO=bmzuV*|r2*W{}O%M^yD4)M2gQ!yuyf{@irHV-0XbY+x|VBI|*g zj4^V?uGumN4cs^q$Q;d~V9TK*iKb_O_>07OO4OdGSPr-K_Ml4HTb6&?#1Q|e8*%=y z!N0<70HT*#r7EWD)Tr2^N-I2NhUfXSa`{54;vXah(__1>++8kOxe$&Z!c0P(wzFWI z6hE-XPu*N@$RsZe1B|dchElRf$W9XygtqR?$`okGReHSofo_x@c?K8q`qY?I1(Yvv zJ@#3?RCUdsd=0*aFW3G=kIjt1N)Iq*>_WPE2xG@$8nYT{?il(g8|5J z!0)Eup`cILVIe8wN9a8ya9?!rB%)ZeTI1b%$mj$UqFYL7^hyg)l`X9_MOjoP9T|q@ zxKhnS>Gs&i@k#M&)7DLXZ5+&!cdcd&aNX94X*NT+W3Ryp-(j!5*98;~Rx+SsXvAV@ z#6$tCg!FV@L$PTlQ`pLrNx0yX8bom^T{jtqG9E>;f!T@)0M~6FP}DmTO2c~-L7g78 zA00(gZz5Sks@m%;TL?8%X4oB%7d1nm^= zZ7Q&$K^p4kBt@`uxz$T30GNYzs>SzK1%EFJoX(t*^+>{Jyz|;!JgB>-BnW(jkgm{L5<{R9=X zp>q&Q3@)nbbDsrgNhKXsXW$0Bx}NH=Fb-?7>gzBb@^Epd2Z_SJeE>Z&zHuGRG#r$t z2jdV1jTBP%OSHO|H_#(Ym|=>Vn!VORt5I+o+hN_MjlqrRVZzU3K(_J1-;di9?Jl9gGOdc# zk3oyHo(QNrXt*e`9Y>bEr#K@sy^GEr`*$ZbPY`9X-a;r#;+pURa~hgyvkap5k1 z&2G@?yXtA_&VIfYeqS;`p#29>nsAM&G=dHre3wHscVNM3!3oktI( zemdJdiM`p|_MjjKI0vV_v!QQ2p2zCO{_r=gb{||O4qt>@)JmzO`Dx^S#$C^TWPWt9Ep*Znw zJ{}edIZ`S{%tTvUIeptchWWmrtlb8H2O`b%t2hw^FgGuH(Cx`iINNV)i;DTf*YX>& zJV9=_hNm+Q6f|EHGodDX;!Av+W2uY=-y4{Xim_l8moDIoY2}`|&};*uT}5r5cS7UB zOgrc<)P(~4V{gx~+$k+kwiiIE#6s!9T7B6Wn2S6~nrM`)pbTjOId;ji+{++kcPoTj zS7DqLvAhf$pbby6z||Y^w`w*VS<~qPWcA6I!otRNcg*8~CSBadcQQq?|Btl>iK|6V z5456ScLfCuuLcTq|}tz8w(Z!Z4x zvbvrX^%PMf^SiP^M5iBh0RXK-KV=C^{R?(kbr7l^;L&ogqyc1*6%kGUhZdv8Onmc+ zB@E0Sd$^HF^1Z=9yNL{2Q_?Npl7_4u$BxkJNs-pnMb?wqk1>w6Tny~2FI4zovY{h)X#vxQgbAgOPm2rjrBdr*tBI8$pLj% zM1^y8cP|5Q$-D1?1Z<0uQq(9sohd*F_A6-t57bEV$v{yn2qeQvcAZ57ojBIv4q*RA zA@r9#9&pBW@8u`56Yny&@y(8i|={nTi96s#I+DxHfjbVeRJny!SmBd<-P^Lp)2b)fewFTcI;L zCAxPQeHj-R8Z0`o6yj=|U`rI$l`d$7qOeZ82l4{g@Phk34!3p|vHho@66_DAU}xY# zxGm(6P8x>p@Jm*5ESw?1hY+jq-NiuzilT!;3xR8siud=PLD8=~TlLTc7D&!7 zN?{%dfG1EHy@rMb42kGaSWqj$X_P3xfB;XQfYF!7O@$Z^F$PLW=Faz?#`h5J+j~|$ z?T-HD{}qW$aT8+(MZsROnIEZ{ZprN^49E`Y=QgOd@$KU>Xq4jGs@$_E{K)*2g873r zC%KK5^OkwZeNfp2tyn|AhdLwTv*+Kn2GyVEzSAVZ5Jj9F$#Y@G?g$~<^~A}3g;ko4 zae}Ts0pjpD+A(bF7X#^x^vwj!oYN6%W{7rQKUV3PwQSkcxKl7W$W7ss2D#K|4%fZAo_;%0}uuOUI2yIlG+?TOI zTl;h|v}0w%Oy5iXdRm)j>dMQriC^FvVW^U%^z?g0UAi$?A>OA!Z#nxu7n+i^9AyFz zK?f1#GSvX>lBY(vIp*QJ=wAlYHrO^E0M*n#7pph9h8}8JFrHn;*apjt21t*qS7sMVRY2iTA>iZ&4GmR-6l$B*1 z4go64L1CL{G}utkUjTlVh^f-t$QT&Din)3LOlpz%QHq&&Y#}(m%jknzIk6a%%t5O6 zZ}#y|>tA~p$TYspu(z7sIKs9b<=<{%1AGa8Y`XA8h+i1qW-<$%yUQPj?5UM&hb%F? z{k*ahybL_Fnm`+S4n<+Hb~{c=A`s%bpv{YrP2ZP;mFIWn&*^v-3=41q790TqfT4b6 zVuNYc8;vni#&|2x(e`Xx-3%5Ry{#i$#E;p%k1VLtfG?Q{7Hw4-kJYKs$HOu`&TPcY=GrP7fGl;x}<; z3DKvN%5aUpx4)hKK>o31F$no7O-_?xBVRq8>im0^tJ(d3`rhvDxLdjJaoF?LgJ#cR zSl#mQ*n?kJTg2G45#uj(CyJ5CIElhp`TTu#K%W(^tMFO*+h~Td5;YI_YJCX_ z%0cWv)q3xtLOfA}azx;`btX%$u4|Z)#fl8pOTcXNtMfpY)p{SJn++0$-f*Yhkl>Qz z2D^i?k^j&*c^LgjNL5uue^ltC8ApXi{g-agz~oNpzY<~tVk4;}z-}iNJ?1$me{QEb zPzUzRbMZLCdgLTB!Si?t`53md?_xm@!eW>2V`UGzrGYw4a6j15~R{qd~ zY-bjvBYgWKipLJ^o$C-9E#%0NwN>NZy@x}aVtUdl;%ghpCEBtYgyV>Cm)abXH0&=s z+_W7idWe?m93+(px(#=+j7e@-r*$gmnz_SBI+Y0Bq7x=(nF7q#g61jA*pn(;;v8l8#dlCjL5qW8#e~vB zjW8!B{ioS0M!w za826ZaTP|#0TbH2_!fx+Nre{}6=d4sj^|=0cwIvhl$2n>0D~a$cuHTy{8r;ik%9ek(~L2N+VP6nX^N)jmLhwtex+EwW;XWr5CAwJlvtfv3dXAZXP` zCsqw0M;L9m8WZW~X!xnDi=Lx?po}Ju6q?AvRU2_KUN+RgLaqewz3e@N9th#T-pP9> za4VxFr#0I zy%+KFTClEe8NaVvdcBRvsM{V;GhLcYTg=>j2vLEa0L*I!5?C)7IkQ@8i4^y>+{tNp zm3m9A(Npo;N%d3(K0mT*EVFDi!w%wvx?M3|u)|r79pL|ijqKaS__fV{6vL~XK+Mwy zmq3XNFy82BK0O@WeRd(-vK(`vzwf`|BGPbc1R(WFz_PC)YvR;w05|9N z+w5KCIv{lTV#uT!9|Xzt>}|?53_)t}j7kgawejN~W?dU0Do|r2k+u1*(rC`D(US@J zN5L6LGvhc_ZW3uQ+e~bL`tieDC%3SPte#>hfH?-CQ|m?B9v(tL*Il=$OQ2=~C$!WO zOYLkaxiFr+g;T%n_QEO_@MMtu_rVJ515qk^H;q!{I5KRUlNS~rqLjnR<@zCq(bxOY z1%@9$QnT!=A!=a>GW^*oIk@1<6a)(KpdQ-ejhO^Y(rW%-!D=u;j8SsN+!B++$@p!C zsJF-WS1s8M5}JUbPKj?yhQk`TW`xx$sP(+LVgubVd%T=a>o$q;!#32AU%Drkf6yoQ3_F$JAz$lQ2b>N}| z6mk|?359tk2pL8untV+ri7+;{-@S#FRQ4ochFWIVDuR(*E zTO`bWGUW#3RO_+h;NCt6)FFvw+J+6p_G6K}A5%pb%5bAo7LqXB?7=Xw|8f(iIcn6T zei<0pj4tsf^P74yfTXP}*DsV5nIp#Kxo0jzsj%OOP^|Vu4I)8Jx~EUxh@B~Wz4F7QbvcaBK?J%xJV zrn-Yw;2R3@Gep`ay=-;*DppWj@m$csgm<@$WS9iQBUJ@1M@#fd;wDK(Ri7yQtdbei z8~`kx&~oH8Q7<0H=8OQ34XT?oYNh%&anC2!`^JVfr`C~W%2KDR8S%UpT+@o;N3Zf2 zbs?q1lt|`+BQ;2EsSN2Dl#}CRCi#rFPf_I*wtObx%3TT#$iEXDCiUNv11ACWazK@{ zC$>M>KNR{CEei1ylQGB#zy_2siyjGrM<_gP(k(9P*Y$oVV(05v@yfI&szRbY*I;ax z^66pVw>RK)RfC)b*XQhv!Jt&bR2jo>`{*XnDs|s}(DE&b;nqKnq^*gv*2RDKXP}r9wifCD%=c;QW@9bdp_xaZ z^~M%{RWu~usXI%xLo=4zX}nSX(6;^?CtZqEg@K3PLF&bK&>yI=C+Ottd`7A+n5f{= z@&Ylhx4&#PK;G@tq57(kx3ylQyy0<++KB}P+(JUoc++V}DMUWJb%)jiT2rknZP@Zq zs)QHQugZdW1CB!pQ&G?uoT@hD5Ss-gk<5Z7WRT0O0HljA3bK=-?_KF`(b%#a$g@<@ z)vj3XpM82_^o{ECqXb&+=LuABOR`A_!(G;6p6;aa&)Q~|yTwuOPw^}h>O9&Rg;knl zy7f=)t@nM}y2SsrQrtuXlNB}GT%AU3WrkQxw*|s}M^7^5JEO`fHsVtdCetG1KI$1B z3pEXCP0%=lK^h|8xzWlbG{TeB^m#Lm0fms!XJ!Ej!j_IAk%3LLo$95c?Vd1H>qaUst2ml_tTENF9PDG|FalO3jHUNcd9vd~1YF3LMtbGpNH`$jj0OxWvt% zO&;n?(YJb7`WeZse-hM^&lsC~GhI0O_$@F2_aAN6gPXQ>-CAMBWy)5{tVX9H0eB30**2{`(BNddsB$+c7Mw1gnCv=}4M&LA_LJ$BCiIE{ znxZ#lViXrZrdA=Rb+aVAh&f}FQ7}wa!bGQn1mr}-F(8%t6zva?Zigb=22Ow- zr)x`}*6${#9g+VF$gH6vM|_K+7{?omVL|(maXi;;h^riR!;}@cS^jM7?vsVYk^O23 zkGHv5HLUEfK|dBRF>AlXD-H@fQ9uMG?7gtI?>OV70u2m`B)nE|OT0czIHDd< zV@}-|@8sCM#VY`8@3_ly$H6nL(2Y&t@jDzGiU@udNi2#@hvba%F^1+C>&T%+w z94Ce!y-F?>B7O$x-J;`Cbqst#qb{-;ob?~Fse~49%_0UD_<~*1(orW2q9qmu{3z}jJ3M#HV&3it0y_Dya%1QIRGNW8fXwpbuQKh!bS zkY{n=32g9Q_5qqMS8^7Dgms|Df)Dq*`!t%j zN8=HhX_pjm%pPD7Uaz7wk8?m1GbP6lPxhZAMPrQL|SFTt08LmYjk@bp6mf$ZC?v&U;$y|#!FP-)=ACgdIWoMu7$5OE;&tbeAsyfv$a z%^s23$FDru@id7y+WfFS1KC&pje_9_jSmu>x!ewUVl*8Ju%aMqevr5%1%VtU=H`9-!RfR^?$5P)G2NnKK3dr0aA`zwt$M-VXvKsVE-HR z7lCd)&A`1?1}-CuliTCiQ(bhqupQIm!{D-nvl?IoNjD{{@WHNVn`_9DTAW?Ug};a` zM*azG)_BvseA>3U89~S>lBNY%kxrCHWvsGE+mo`UGm4aVlr0XYbQUlPhZ&3!dVV)a zq#Fl5m*T>{S1QY3Yh-D89wUy*;0$KFtEg~zR%$FL`VV`ImdMu!kme7{4iQ8!cvkRN zv-Q$CP3g*40!|=#TdU%v`cD<5N6c*B*VTI_(9I+5batkvM(-hDhU?#gUA$Ew%feA#FWp=yi8ngm^|Z?oZpRe(M~2yu8`05spAIi)HS+Os z+F(d+Z-xYlOf=rriqIDgH4F)k&i3C8i%avRJnx1Cp9hX{^5F=Mrme21_PqJCknX)H zT8a^IVYFQEqYYLK>Q!-OdxAS%MA6Wry>nFq}SZqrdw&&P~-D z6{47Lw;t^^HYdi3@bX9+A_a-Zy62imR#e~50&_^xaW+SCRd#D(+h(-=$f|0} zoz#h7Ld=*akJl<^f+Q+uB#t4hrzs#4C2nI4X>y)QZ1iEJzbX#HAM_=~y1bUxg!h?$ z#$XXp-L{QXheWMNiTyN$LU$St4Ea-{Mu5jq2>mk$n&1u0rcrJ@BZ)J~RK{PGJ%(*x zkN8bSi13d9t1Rt-FbV4W;XDlDzAz65!peoPH`A%&mZ#KN1YK#h(deJ6@U+v&Y5&64QhpY)pu8WP0uKwJ@Cgs|Det)O5 z=h}N7XQ!^;G~ZnXruW%_O|y_BTd>yJL-C|02<|Sn)V61`TVw4^-@!D>M8szUUK&%w zAYiP_+f4UEWfQw~q2I3}{o~C;%Y})|X&ZXfDNS_=^#`a-r+S2$n2S1Z$!ZYkrlA6! zY7c4tpz4|G4e2~Jm;rhj?EhbAG}hafwNcxP)m7V;<=Z2PbWq!A!TIAv8yMiI636yR z_c&3ZrqP%tn5-h45-huzkkbXx?WP3SMokQgV`Al@X6%#dw{X1RY179~Zmw4Aaplh* zUdic&X#Yzwi>Pr)^+of=rfVWo@y{x-daht19MSHkfQ)pDnjj)+bQJLW@aZvNzv1?& zZMKCY?Ls?PmfI-&v)jk=Wd6f$(AAOKtd&`9)Y`Bx>6QT3_>SE+RzV5v(5k6z&Z?|7 z=CpW*(<&0u+K7GaWEuQOY?fQN*2F_lWuB6>_VbM-m`GAAs~)4Zc7<_aa`lTh0?O)z z&}~sg5?s|Pw%;&dz&ADQL^LPOqVU(>-VBP>1q53@hJ;2paNBwW$4;036uDVhcp1*v zY5}#+e)dAQlWeB>%m)jZ11x}1F!Bu@T&*mj60?1v-oO@XAT<^~%8n&1w1R76Fq!#f zl9-PHeQ7(NXskA~;uE^Uf0MOSR`)0YE~JA^1YM6U)!gSS*0es8y26L#7NZT`i}JKw zM0ofyqL=|@8lDf9OQNt%L@HGlCH4facEm_i4ApQ^L}@DI6LwmlTPh}{wR-_5tU(LH z4El-(RSi1}pc85kPdg@3Ya%d(B&lu6ajDs0VwpPT!g7QCQ?nHbWbeiKQHvhk{U5Bn zaxG+Pitb7Hmp!(cHW<;Gc=}(mi8RYs0S@Rci3E^0a{2r{$E@?uS*HiGM3|^cUo5sr zmGdjXmRx9_*4%T*I@z%9DxFMJp~*iADw9XNGAXM;$w&IVT~x#fXDY3R z)Sg797MmPo?C$c&kHX=hLc1ZJlKt$_Qh%gMzQp=|k{S`+3S`TZ&ZxAosmn!vQX6IE zuZsi%pF(w5ZHkEvu|-Zp!b9>qR#A>8*2fd)O|D@@4d+oF(E>-pPbLz}zQYh=`+~oS zK5?H2oEsM*0F18nX~cw@$r~!TTIrriBdi4*>i~v(i(P{OcH0e1_}{>hYFr>_WfN3_ z&k83&TotofImK4zlgL-Y_vBQJEi-+D@-iCl$h~+H{nVV-H$&B-U}pGDPZ+jZv&Kff(!PVC_2wm2N?o1xs-yB#$Y8e`=CfF!+{R@zZ997W>5 z6g5K}RBlLUUWmE=MB=+JJZTC3bskZB%3miUXUm?L%q=M!=?4dt%Jm7!7g}y$A2l3A zL?c$|2$V}~i<+giRdJ7+us3Q*kfPpd!}xHF)(E%}-Q3JL-VRee%Z=!d6WDi1a{z*@ z_kKRNkiBJeg@Wt&hv~iF>V~J5Q=kPbV?P~cVJ3FmOuxMxg86tgz`iXl z#OoEB32GyYe#elgM~i{Pz>JR`iE69G>+hep!Wmh zlyDy!^fYbGj<1LqrhRtKZ3ztufW+;FnMipmnzp5Iv3O%`8VHK_MsDb**{cMmW_E0X zgaB2l>H`(-pw>{^sM<@wdlkf`T?8K67BYi_j`8(~3{dG+k(lwsOSq|n=a6p_oc5eX zFvhwG{wnLQg><<+xiqVC2WE|ja_q*{2N{ObJ(-&g-Esz6h%G{7cF0;joimvdTXu{t zE)$S==>HZf_=tDp~-nZGpP9a@BFM!451l-yxenKSH##f8<7fUCOhPSyTBQ|~Y355#;W)`V9j4pFnb-hy>qZrOz=E@zEW1&p9$ zQ>4-?V0%brMly=5E%F?)goGZ#tTDCGqE5VTfSuv#9N9khwFhLcQL0OKrr+*s=n@dOHNJJE1Ao41KSENn z8hUI@D)2<~!{8dY}5KK}y3$OAf}uS;)pEPyeaFM;|pob5W^fa zCpmi$1HGYC2$@{xDCeX4BtH`ahaZrHN1yaewCJ1l7cXIFk-5S|TkIU6 zLrKI3uB(o1W5wjwKW#p^hjHv-YqL3QntV%$=GIKaw=^&m-8yS(4nD-$j zD>pD8;Xf`Y2RpU%+r~zTJRTe#Ni+^MgG+EHqUB5{9F8ZX_ku%GQ$rfUB2ebI`_My? zG=_6gd{;~AwsKI%__KtW1le4=lMPEZ3sD&r^l0ttkJfgeT;d-AO<8p|$x4+AWonB}L8)A0WEDK(lMJoIU_}%W5{i?L#8lB6NwGW< zzt0z?H;B277_(PU_$KQ|Id1&f?v8`d8Y5A@Y(5i-b+eoQ>Q*72(GlhZMpAV#d6vC%EYL^(?s^c7;JhV@j+J#Iv;@% zEqid$|Forw{++qw$=P5ZH4u49MDI0f7rmsjRya?To5$w<5G5hreIk6qxc@T#aM%wx z9#dh$i)Plm@eD*gfnkiDQb*~oaBDO?O|-NGB=ZZ<>r1{Hq~?XQBuXbOOJcjuI=kV5 z1SPWl>?C&*Zkdz}pl6M=P9LeS-w}bZZym`Wn&yh&$SJrQ6Z72YzgYKgm za*Z>X!x3(zzf<&^jEA7YVBTKic)Y<2jfJzMmO1+K=#|&YaL*FIq|2}RA(im5V9nlK z(l0gg#%4E6V*kOH&)~~&&lESL%dgUwOc}e&>8s$&8JOLgmxnK(!I^XLHXxCE_l%!_jU1X&m z#eq@?Xbi??u<<`BV82*(Y|NAI)30J}7E?mr@nwvz4Jz2VA+=;Ud@MM7laGUs-f?e+ zT$f;(a#47DJFqPihr>7P)q>IXqz-yVj1I|E{b7V_r){#GLUdbeV`VQsb5d%16pqWk zYI{7*v9Ff5gZA*{iy>>Y5sytOzb4rL$@!MEe-pl5mYYV4fU|(o$8ct1RC-h!4{kKX zZDwwatZ>)M4V#lO9NC$RnrDM7K9@66LZ1m((c#Mt0QAINT6+0d$KuNkXA!>mAy0V7 zWJ?sdV@t!0;moYN50?#%g230J;rF zDI0E=mwAps3zWb4`_eBqz zf2sh=B-+618HJ}{4Sc?D2kqg?=B`(rPdP2L>1Dz%N%|UM`Q*~0Gyjyj&q{0Nbu;`s z_Ly_Ao1L!*7S?1h5r*;x;|4#3w4&7EgzzoDa$iWRz>J5`{wTLoL&abHW zDl+A_8%oJ9I#fF%%rYlJ!}9~dT(h2?Bpnt?Ug0#Hq!IWc9znB82NU-JQ7bG z+_?o@4intaX*~p3Xz>2KC!@i-LV)>ZkFU%W13u{L|3(Ve!nQT4aDe9xUwf^W0nG>t zvYI_*kYx;Q#flX}mn$`@d^T@Zl*j4$_?$Zs$F$0n)e_Wzx9$UjpLsZe680X9lC{Tp@uycTOPe>f`#Z;y08t?m4!!W}KJ>}M|!efuk9KcD6PP-}R5`o8O5 zRS!7W<`Bn2@By<_g`I=m?1c~Tut5cyYY-9=FD-P=-E6^$k@qox<(_k9JZ%L4uv6RHQr8-5(uGTv9pUHW>+5Q z?bSZxK~>KT1$FyQ{5sXE!8-8rY+6MuUo!*w>~N2udEum`Yi@s%;g-?!E!+7Zsc-`} z_WGWJ5;JEuGy-LSMg#c}{#jNx- z>u&jMinzcNhdupi_)N>Xs?8BRl{q!|qvAz1^4f5IXDX*nxUbky6t!}qBZN$&8r^SrXciP(72 zQM|$57qTr^vkidVL#%u!=xavkyo3e6T-*aEah;=Fd=*11wU4uwD~A5e^4C7mwf8SM zV=t!z;a$RG!2#$e$smZl{+C}X&vw>69|l?0U+qBNpnB&^m&Q5U4<`VQ8s zoSK@l*`eg863;7xF2t|T@XjR>s0n&RzfcycD$R8NREmxP+!VC-Ea*|aaZ8xNqH*g2 z+CHnEl-S5TU&^0r38ML@x_#0|5d>6c*hZL#4>qMovGv8!k=e3JVZH3NjR>DlHKw*j z(QLg6-!vI!%wb+!%$FF3W9#mn-|gQdGxCO{lN}mD0xv}Z*hk9f=FodSEgPBJh=PaRkLIhIEFP{lGUuNetb%4sW*n6hyrsUq$>+b=M!Txg9?38s>b8hv8oVXks?TRyv-y3 zOE`JOeydF+GcK63N>HI7W&#QQ(!C^7q~?fOz*eB)dm)b|b2qIh5Su9Cvq(w|H^eAaYUo0Ne6^WMiKq=SK2PHn5C4xJiI(xb5WnKk*z#8tUa0Gw zx>K0ki3%^tHF0FnrKHdKEb|EzsjpcB6Yg4tvJh9A;DFrPj^}^VGIn_+w8v>!Z87g7 zzDT&>1U9-V8fYyIGs4R)z^cAmREAqb#~>getk;~U7-RrOXz+2nWq^+xGDjh4TftGG z@%teXL&eP@NpH@_8*iwWFgdB*4Ib{xA^9`Ii=`ouOsk9_u44LLrhpR4OwKG#lrY0) z-kpQ5BpAtj+x)D7nx80Rfetg`sy`zmoM|L9iG{#zX#6Gta%<`8FFf~dCDa> z5&G1Lrd)Qmr?jb=U?nMBr#<;9GZ39hS`J#ZQ^ByBckyJAPwO+(7@ zmjQvSNwG?HA}O{wFM&2bDr9MMB24wTAh|vWh>9sto$YE(SkQ@m0sCPn$oR)y|Iy=4d}(Jj z&GxVHNdst`9j{<-W#hn*D#&kG3a(|cyA495pCR8z!l2FXXo?PKF(PdlWR%yzkc6nMjyvT_pM@ zg>WLEv;(^hgVel~ACfv#TvB-t7arHGZMrh80 z6$*{Fqp55r!%U(Sn>~c0R+VizL1hOWIX2=7`2rhN$DNTo0wb6>48w9nR;!ZyM(U6} zrch4F3}YogD;Pc|js->V9Br5SX$-)w+jvF2L2q+yeW2xTaH znZUf1j2U`Q>Y;Y9v?ndzB`;y$8fZHIwe~?)kltEl^y|l#CkUQ)++O=Idp~n zC)Lb{_(U+7>_-M`jD3=;c*D|hn;JWA4X0M9F_|EF4my1b4X_pvEq@aM1B--wv3sX^l3}r9sdL*BqF(!(c zO0qpCG&KM>&2JvIx73@s_^jdeRBz}JOk6D?6^Iadzws1j3%6$c!Xgkj_?`YnW~GaF z)KaJHBYFQW+(wOwV@G2zcLF8#@e}k4L`RK7Ql}%Xu%}Q)9zjZubrX7Ft|VcB8155! z3kLTshoBywNFt`ty<&L=7(9jDaG!rktG0YZ-nO$EtJw@LlW=&lql(VWZJg=ek7O+q z3%k#qzB=2GCd3QkTJs8@(v?;oyk)e~cm_D7gvDhwD4XoCivp;d zXuHw~b6qxC+#Qv5uNGaXD`TVVkbI+Vg0u9`5~4Mv+lW?u5s1HOK?eOYdT!o&b2a*s zl2L4?BG68E$uvoL&9HR~CF{N6_CQ8Qiuu_5cOmyOBZ)}fGO*GS9*!$a;6;wkMQ%-K zIKD{PbOqC-x`WL~nWTk8iM;0eqtTue6gh$FDwPVx(YP(}-c@8krf%S!6YMYL1q;zb z$#QWNroNIvscr&(LB&IW_WgO(X!I|oIp|ljA4+q&IimEZ2oTKFUz1f3u~|iH8H2qJ z&5u2e?Yi3`hw1Qjotr-FD31(DM%80_ub9EF6q0u3NR?q!>I!>)w`dqmLvWT(+cZ$+ z<^^K4mD3g>TR2mi$+*Nl9kOrp{8<0a@<;ydqLW3ntV;C*VRBHgwK299LW)9yz1EJ^ zpF-e&x5$}JIDweZGMJu+&&*~6tK+$|dBvc=*b(zEJ-3m#E#3eW34<*5FNp3 zm1$NjXn1T_-{Ilk9}OCCd;Oj|{6X~{rq$=OUdZ)paK(#b@QWOOpVN$|lzqY01I9=H zZUN~~RIVweKJt!fTE>m>Fr zm)*g;V`M)LqJ;3>HncH0Ft^;v?%RYZpxIr3p_Yayd_{>wg^I8->7nIeDR&y6x;})^ zN!OB4v zpoIC!VsAsFb-`+JJlu2+*xZQC*gxJ2TydyCb39K^AB{*}{Z_+Q;iu^U zCZRRdJi#vM7XY2fu{s1xv<26p6_w~xsQ9;Gh1(b>|0}u|>fKcT_O@OLwJ8WhQyL;p z9g&R$wu@H2uD93W>`{eRd?ffpJj0QTF9KtcjTv^a?+4^ZPz@)j9G$#0{9%7bQvV%5 zN0WNj+E?#%**$aCGyjX48vKO5JjuTRSz~i`fO{7rJ{bNy+ze)y9pdo*uQ$8KY~6dd zAMQ^rTpyg{{u*R)p;>`Dq+_oItgrlh$8a6_^NnoKex^@#dDsJl8^h~WZ(77No zZ_aCxwlJDatv@hO&?%V9Dde8C)WSyezB@HhidOm}hFKbonTPH=c-oJx{BcXt^#xWI zL&* zGamn;JN8qE1Q52NJu%03bOvYLHnzvUHhZ`I>kn}~+nQu8+?Gcmb&CM>O|pj)J2wIu zKk>LB>IJ<;Txk$!dnEw-ly|d!0Qq%X6KQY60!0nDmlrTz1rvap(qJfzbLzmrd`%%S z(HHFQRw}~J(b_wZWGa@m1jc2je}|>rm-lS? z9s1#45rypd`3hUDF1kbighBHL(iohYl+-EqNyCK3hABbWprP*D)m_AXN5y!oeJxIE z;H2BZkuM#S#lkz3;|=N)*5?xVQ_k1)+;idb*8UbYa1wY3M2|I>fph0!+S^D4dgSaF zpEZx>@;SgKr?E>P3D7s=fjQ%dPYoR+;BVPCPI?+4Sd-dyQ$V)`Z|QlL5-c$R3Z0=i zk$S(gf%@0oCielgF_vnDcS*4dC!iZ#IebWQR6OJlJb4yuO`D-Ga~vM=%TH$RR7xE7 zp3N&}K`{;>JmifTn~qZ6m^JpY)IW-OrfuVRc!{F^djtBB_Tim8N9A9JX(h_1?^On3 z^CAGsuy|!cM(pXB3tmUv7%a*{qAXrQk}=LrIfu>IG`zI1JaQ3>dbu%n2fs@jO^Zy) zK1jH*S~^!{aXw5-lURLps&sH;USlSDI9);m1RZi_-$*~w-d*F4M*f3(|T z`VXd`gyWHRoN3!tE;T`_!^iie+n#PlWPLc9WAQ&9=$?{7S(~4)jGVUbNS0PHdrcHw z$QaD_@T!GXpLV5G%bKe~+mhnqGB#D?C_1V{zL8O?1jks3=D(g(divlxLZMGVaZ7ux z9*_`td5G}Un4O2L`WbkLjT;KRc&fXwK!qNVk0`$LWAvXRcs2PUSV6kN*Go|2j@;%0 zc-18?WIG3pQEZrSd;sKnaGn-}&@O~7if?YIxj9^w9)!CKQP1z|l-c-&Iur--ug?)h)JYre{C)en^kH zc_~blKu85FE^%iE;dkG7_6CV7-m`vV}11JK&Ob;n6G}}5{vEIqrNW?y&32p*qjtMkk=_&!GR4MkzeoDg${ot5n4NExo9l}v(a=6CN*mRaS%vV;ZVcX-a z!?PE$DI&abUt&_;z*4_qJ=za5=Po~CM&X04y!-6KeIWAwqFHij+bF+b<$94Ko#7vd&8riWD=?D0qMfun7!8jx zm+d89wY_0wDnGs-`Mb$e$s@_Q&0!3NxiB@lPPk-Vow%?Fv^NpQj8hG{5rqkggd&<0wM|r*)EGB5 zAk|85pB}tEf=IL41OHa=B4}Kbx>hJ@sCBk zhZxwo%;t=J$%~(U44xzB-)Y2}(Y5tT7@7FwpQ;okzzv7h(-LbV`0geeq2(70F~V zMr-!Xl+SAG>uYQ3qwu>l`t9@kCAnLJ%si)jJuL?Zt+0TIWE%fu+*z~eM6m-Vj4!k? z1I{giDt(z#Nv2mRE%;3OP_AlOA-V#4e-xNfrBZev1Nn*HVV>qr!@VYqi?$+j16vg^ zxcpDt^Y})o1=+OYbw2QVusp&zrZt87o_EW^=utpu9Zf`lg7@dE`XW#XyiHCEcLP=y zQxkQ=)*lLssG!mhSiyD8dnnZ{j`)30iYk-$*pkReZi%sUO|A%gu1}M`5rK*TMUY>i zo|e?y()`FWw4CJX9-wnezAp4=SDQI`GL+c4nn6Qk=yK`ZF+Md^s6t zFpoOb=HRnGL7|5eMQV7k+oqUw5fRO?!=W1CtMw;?o=a{$_ji{3v*=?0pm|jdPfB_j z{rA~cc^tK%z!Ty}>teSlVdL?0;!2o!fgMN$Uz&mn;YNp zTgL%?MSrcg@AwJsw)bW4SFym4nhNE=3FmB*4nUTO5XFqst#I6krsX$wr8(q*qWQO@ zpb&-I^7}*a&Sa!S=UqAt!~bi#8PsR76~Wk%*m9Cv{;p;xj>_WY%7QMt98+Ju(*F!Y zt^-7)QDX#HigE(MxKcfi1}U#rC{c~L*PHVv<8SCPY{F7Rp$b5=|A|F1BRZ$-#`ogs zFBTLeND^&mx#HN5xhz|dFis~PbL*ZMwtr!Dc1wb~ut%{vHvU;YLk;3_E%;Xrj`3@r z&>%_|4j3=qiw%>|*OgQ(Cuqz^#|VGBHaxZi`V3TIA2-sM(DL%xR0|V$oPFzGbB@ml;!?aeID;=d-_SUD z@{fEQ)`-mPdt6ng4{;)|MiHklWOEnW-~=x}BTHsf%B*S_&It8s%dyVJq_$zpfBrBF z(>OznHdtj?7THv>^v|-7@JQtHS}yj)n<8ueu=fIzeuy_iTu!Y z_46Dg@FCdc6u=ucPpTe^?UU1aX#E;)pb{EnS4DfB>3rueMX}uJkHsg}?`#p;pdh?F zlRc1_*3jYQ5&AEbZ(dC5#jf$n!i#~8Pw2xW{7C{1j)qdnSDO|i)y<@HChe(xtX z3NMtnP*ihb(Gm7CtS*Ihw)^Ufw@l!pO(&p~@>M=cn(YdL&`+u~<_sz}$!-!^M%cgf zv_z>=r36yzkLWKG{jIowHe>RIwBO8$EOL`HY8IB}HHg+BNTH-x(w*&=Ivq!Kdeu*Y z)NKtmEJa+s@K=eSrp04dvwIZP+c&b?%l}TOQC(e6EL|o~h#2^(7hi9Ib-RgLUc zh?s#z1BGx-ox0=bwg-*_dTS5XHUCOa*J#IA<4OW`C6&W#T)7qviB2n|Lm7FWA9Pa( zTlvpRffXFof^k%fFO84eXARR|g;9BwJt*cYHT-Mjm!G9*iKFO|%qUtWXeCNierZ@o zqTvtZ`sosLbZq6%%CmFDnQzckFv=!eik}aYr!1GwP@MmNC(c#;GF#L%<6pSybWg!L zVPC_fF|>NvjauS^k9f}IjY|eYb`r~e8D-09?*>ijgds8nCW~tsnk+e&+B)4~ zEd71B1;H4w(~M!O9W|l##s4{nqM>ZOc_=^1K5=u#Azo2nwucU&8b^-&;GsS%8>MoR z>i-@&uP>g8F-a(!(iT{%kdC&$hg;m`JZsKZPC(yc0=H)1p zsX|@MI+gL;x&~!w>$-+zd@}CAnMb?0R@#!gw9AO%h`Yl$q#8=^1WpuHY&2Co0kFHo z_9%VpJYC-?_sCjDNq2=r%M;zF_N7;S##qawZ{ zr)sm%6t+GntTtI3M&H8ZH_Ltsb+>o;dlUW!>6=o7bbb)06%J!jZm(g>zw^lC7P+UJ-FIK@ z(5I|};mz`XvwE5`ZC8?yrXEw@hQcoo=+UyU8Qy^FF&*Z3TRlP4SQ?tT^lVHsiOCT< zh!6~l5m68A@;pGMk$}x3NCY}gyOcUYvqIi&_PubpD;j?Emr)Lbne+9v{2m_{(uO6H zt^-1Q1Q^J@LQU!Wu*LKrdZbOEn~$s#3BavZ-m@Ba-->9^nM5ct%%BenpCUq5o|M*< zl=T{S+%#FrzsIKbgDz;uQTTl5CtUB-)YwbrUvE8!qMIz_^i+$$7Df7 zRv7*pY~KX))W6cwOrT|@jc3X-AX9)BQh=lqKAGhYL*z3>|PFO~5Ldbf(^&pUNK zBVOijUa+t3jjvlOuR%P%flcem8U9d@(@0_5Q?M_HrF<5+ zOo`KvmAw~)Z;jUmqGT6BnKS%%63EKWz@{N@SE_-Z>HbJEsi7tndVUi$|H*VVP&Hcu zG0lVo&}RO=uibp3bfcNjFjzotTKNvZ{q$83d|0{soo128w z{>Sw6!d4Y7q+q?vcZ-Hyil|QY6((nmwHJrnrlk43!fL+33K-TLy}W&0K#p896dg_H zs7NtP;R=u1qCJytSE?vAsZS_sPAjIkS;)+N@)QVa<-XUQ&~G(s%%oFjaIiYtUErCc zk92*R0488EJm?{`D9w@Dz*9MJlomL*z(s7HEvB}Y5Oa%_$ES?5LzqE881rLn^SmB- z>3AIznbXakRrGYuOHYHk(%p>qaeGZZ=t!iX@pe=`NbQ{`dVaaa*|XAvX)BuiAFo_Kc8L7L1~#ll+@#~VYa3Yw2pJ4@wdU| zQl*nKW^-sn!c7R=>In3o4UkGv*|yb@r4_z(RXBarT>kU706?lKf*nUoku} zqnwaINiBIr&~t~;+VhM7xg4uEyvtlLW`!u>0>R=VmpR+KzdOlCsfS+^MIwSS_Ees=5m@W-Rx*1s zwu#Q?I*}axag=GN^Gm?+W}npw^JZh)hPiI3l9rbRri|0;t;DM!o`iiea34rROk018 zEF;fAbH#8|75XsQJ(>yoXIkc!9;?!o>_;A%Nu?O}RCP2Z4qaid3Br22XO;wyzb@A< zUyYk1&#m)cg{d8-9|o_;a)6WC7ykv6S>$jKQ6HYCh_cN-g7t$R|G-F%UESS*-H_dx zb_m#YVd4k~sb~a1W`sqN6+sm>DrN|(jGEMuRZ>Gp>_tFrsA_{HZ*P%(JPNsfe7KQ2?ms{My-SD*`0;Za z;7)3NCIqGT9vR06IT;7VOM**on!p`{c?xiF@T`ZXwt=#uKb)jR1Z07?F*!R`vF|hm z!#rB~`Zr&*R@sHjh?(hJfCveh}Q!P#gRE;p3rG)f+8aA!6P z5{uJr3eGQIEmaDU2!3p$90@K;>!Hcd`g`$2aW~)D%mO~X? z)d)36#+Cd5-v@VluI$_oa- z9V;&cCZ|<9pim`5t=eQlVx7M5NAFpsII2(&vpk*tQQHCm91w}jg}-;?3xuu1g9GMq zVh;HJ@0ZE3IQo$4^N$_~;I~)Wr;9`k{~bym)ndij3QQnys~eg1D-EAo-=VpP321G4 z(in-@(Bg_>@0GqhB-8BL{5gyQ8M7)UT!wYlm{`PBXPMCWA%X_&eDiH9-8GmGU{D^edgaPZG%TT4T>h`6> zR-s8$Th`qQD;5PXuL?A}*am5!I!u5!+UrcwZr`M3ZLCJ|uEV*$!C$yp&PBuMUd1n? zo9yNO8lDiy=oI8+bLYAmh7gdrSk7c;$srX>ZUoy7KY$vE)(je+655-Fhf|9t%IEi? zXAoMk;Dt0%-5?UFmtU~OG#(NmJPj zF;Xz?{oe5uf#8c#J)o_zz(+fZ;0g%M`;P->?h7czfWWNHa*b73dDuLom30u+VFp|_ z8#h~G@9XdFV(c}cZRGsbU8Jj?P_!~zR{&>Yu%&y|*k4&l`PnhHmdGJhCiw0nP>eg| z(SQb|iCjj&?V-{$a2}HeC(kw&!&@|!w~+V+^WoFEj@I?1$^tUe4H8ybcD(Qgl05{>H{+Qp2J_ z0}?p@_v((LpJOVUUqS4~0coY(LZU#`%@gdjzZWU9W(i?d;`Qk_Dz(tC z1rf#)@+r0bP3wEdxI@MO2_aorW0?3tL9@44?jha4d`J^jJkHhj&X2ZhD9l_(4bolB z4WvHVw9dssH~W4#$#UB~a}j1q?~`&isz(0)^|Jl8_rJYsaP-!*Arz-)e`2JMwwwy) z?1WMFf~*=>)8^}0NHN2ljIxyvYFm;?U9q z24SVb`wuZ*m4hJ_Zx?`?v>8`V9ePz}GZ@y+&#dF0a3qKw^>1~p0)VbRUz#ghTjjpL ze>1Fy5!{hByO*bC&gAcE!*HvPN?p}K6$rh8_Yuq|`e)O`$NzO^H_Zy)@9nFo$9vK!~>n5q%E!+{HVWQoqe?Z zZ@T*Ar*hB`4aho*%h-9{xKX3FEZ12|pVTOsJnz#5GpWid-SgW6vGZrM! zJQD;nxOsrajOn4wxs+#6lkeEP#5l~DaC!5);xfc$?o$|s&efQ-^}AT_4JtJh0LEQO z#%;e!^Q)>Zv^jkC^$$ISB#ow5t{%@E#hK}go;nQ-V);duX-+%9XLnkz2b){K|6h5d z-i*?{QA?IKn)Nn4CpSiD^B=z5Dw_<}oI+u_erzd+YCrRn57`9Oe}cg&FHa}xzp*#L zwWG{N$!lT3ui9rrj4#Z{C@4}5xyE=aFZ>%>$(IQP#XUW5y8gT<|xKP$aSA^0oe%U=CpXbh-Xz90L@4>>ZOGut0xli3+z+^9juNwK5MoYty2*refK z!nc}yf+Pl7U*{E z!T&XyRfTbE*cG@vfZOAGWaG+B+^V-CX-Z@I6x)E@Zotj_zPCNKGW%}BUFH7zk z9KJ+?Jq@EymAV#w^Wv#~QeD;_k}^ED+PO73kC)t#_#;lM3Hr@R5Bq76drbGJJ8@oT zl9#+#efX$7SWOE=CE%2byEdM$`d`!Ek7A^ra}63fg<>K$u1F4F8i(~~Z&!y?2C;PO zSVo56T@|~$^^pAC5h4(BJG_04Q6F}kIj6b^bd$f zREb}@xoOV_GvbmcwMz!Ir2JLtj|0@aCaHHQ!@S5Lw1A2TVSJwMBR7>&mjuDLJ}Cu`Qwy*nk?Lcv~An z3=x@y+F1Yc((re2e@2y@iyG3je^OMlNqWL?ero$T3}LmP59qi>cx6F*8bkj zoLNStV+w=m_R@Eqh#^}#JZm@@JwB!$z^R?>xHnqRK_x7{w`mle3^`*=b7K15qej`~ z_9SNlxJ&=htGa!!pw{8R%G;|g=CA5{VJ8k;S7f-IeK;F*!6NC zDYr1UFj;ZutS~8ifX~e4M@4>*fmhe(MLGHH*m7$DM@zfoZiWks=_f@p_T72j5L$Z^ZIV^8^cc!`3554P6o%0>hh zBVzv!Tv~fu)kPF?i@A}yF6}Nx__~wNaRI){F6R=*ShB!qa5x5Ri3vGufNIlI9}8O` z(^jNEWlJ{C|6D10)O|=qT9^l`a|!w6_BltPw%?>>z@6A;JDE&C3719q3<0^=1Zi{b zQT$WyBqnNCyW|Ifk(LIEYjB`l^y-1p?Wj6$y_qLhpgN0>JS##Vp!EdTtHJGhmtVid z_?D=v*D`5c5Z=H9c30Y z&Et2x6`V!cK?^P*jxk-S#c>Y;BYgDk&b7r-uRZUcnH6Le& zqUrDttz!M1M=h3}M%kID`-JPlO1<9l@RI`<4$-~`ZXSaW%PGjB5`P1HJ9|d<|HY`y z!oqKHUyJuXp~ww;PXZ)AcfBtR?w#et-<^Ih_W99KVz8KTZR*_RCBN&QU|eF+Ts;AU z%lvk#(sRAaz2WC@z^O9z_N2pYKIiJiVr%huddA+Y#tgG&<&l?=_+{kpq3NByOqp!L zG|vL*y3sPht@kR}_rID=UGW))?}uTT{F#dHj<`W|Y{&_Xhh8W;YaKZ+Vc5Qjmwkfv z+Ss#PJo7wne!oWZv~x6W`n#MxM~&0i)xx7~a!6i>5H(1y{~S{^#+=L%raqp=hj@Hr z?%t~w=tbWC3Uz1F9e2Z)yt%xMn-^p0 z85yiq4@t5goxxJws;mx6HPen}_`PbOhmnEIR^&fKRvV#SJ&Kw1JlB#aFi82GwrsE2 zYNA?4Q&;tMww01q_|Y2)Q%A6&255}K*XYZ+nljD=!YSy=C9};yu@jq&m8<%r#ylZ= z4vcPZ`ScuNd@?Yej8(X>z^&7`mGyPoh*IZB<};dWoroV0%u9 zrSLu_T=Ww4wn^Dp%1wO}rQA;*!*Qk8u&MR4)r-okiHowE*h0SHQI0ZNP&gZ$BQ1w} z7u(vw4<;74*eCs7%NWad<)zoFUw1K}j~3GoCiUnNn{b`ab}zf^J^D-NtW)(T5@$>)>9jsNl++r)Y(8cLsQuuhaK@_WQUK5U(+} z7;xSkZDh61qd#}!*n=BHxVZvCHgQqZgl#O-7#9Y$TKfGzOKerR$$645&CROt6Jou` zdpC0f+P!*v7YcgTuJtcpXv%$Cs=i>4H&occpY-VaX`Q10)hvLN-qCR7I!||gGIqN_ z01%stXMbR3-=t?7t2!=*rwLd&c@*HwjuT2|jTHb7_M(ms?|DDRUt+bW5$4bAK;suu z3-vz=xhhN9Z$FuB`#mLjv@nEf%XI$8m>pJ=@MvzJ7T|EU4zi!*2#kTSAsKkTqTZ)6 z;Gt)Kt>bPgGOA0N8U12Ro!x=@#_;8|rQ~y|Yh&`ylN5BD|KHs1G&(iVMo(zCCOqRo zWy{?t$j~ARD6n%e;i~svW4-lruWxJK%cK!kEqq=)UQUqlY!m;JD7??)3e&#qoA9miHFwz=m%Gi35ellqZZp`wXO?A0IwIJyP^F7Pm_OXvq2EJcrs@#?>`xOW{br#Jc|r#KYa zbBK!#N>z=6Y0hYv=WnQ*f8EuWobhx5H#9MBWtq$aYsG=J7y)_zeR_W9!Rx(Qsu3GT zn4@F4Y+v%U<__(=09xX6wY}FgRx(saDY%(~QC|V|F9KDScZ07t z>49aJL%1*cf9sW29h`rwX3b7S$2cozTr)47!C^(Q*0A+lca!&R&8OZ=BaXZsU3n)s zyo*Ni3^(q2kn#s#oX^E**PbrJ6>A39-zu4+lQ%#to64+-_A9PZTf9rzcrkfNFK4iD zOM)h9qc8E_=;QbFx?I&s;V1ndCAyc~qd9Z7>4{~mCOz1Li?=IBaWM@9iRFD@{T7Db zwUlV6OnL3cp3{QDwB}ynh(B(YHn$%rlEDYbsh?6^1msa$IF^npY~pl@?gG_h%FLCdcwArB1SwVCMvmzqCSRvz;DDv(T7i6a$vG#Ft`irJc4A4|K zJ>JA|9%B1q_aToiD6LIesogINaSlw(a$HnBerASXW}__F&+Qxyl*xx`9^)xh>3pWT zxy>hgRKxK%mwdrZsA#rKoqlNlJ*e;RTI$O+!>w+A*5-WY-MA*5-8nvls+7YNv+z+;m6h5?;XK-)$O%9GbA&INF# z0~*kN9=}33x+eFw&pfsQOaV5hVM5aAO0PhjqX5aI)hyE-0ih5i{vFV$p1(9WW{Dj~ z`oCQ>8KWEf*5I&7Lktn3;z{^jDRs?a=l!%d_pRAZ%xAZN<2$nw3oroQ4ggtvQM#Y& z^DpgmHKH1wL1s)8ViPpn9TvX7Gj`qiCEB*jGU1W6Y`_{!;z1pxDkNwVMseR&8otd- zFU(U(bLrb5@f(P$=KWVa8BX;QLu~ZGZZhwik}S4cg79iNzjW{1UxV++nJLaULsWf& z8eg$Vrxo}<`A}s@Jqf@q!MTdWin1X+l_`3g@5RfaR#r<1K#clncdr)>h}R}&j^^Dq zu02J5H?va*xml}sDzl6ct6Zm$Zc@xy{^c#M+@r55RpqKU9m(eMBPGeRp!VbJ^%_N+ zf|1xeSXC?Lv&f>+RFY zYg6rcSv5adk$`nbz&Yam{09~Z(p>Kd-=_j-zR~W3f^oN8+vdZ5-!`A8E~hs2(}3_6 zJR3~byXso%cdk=!k;7jQE1488I>k=PPN!^W88wD>$En+bfMCH(#eDUkl{;>} z)b6vzDiZ{$-&JaOS(c}bnCf|5eW~YLlwkEeCSN4bd7~@_r@fh~d|iF1^Jv>o&ZPZu zY8CRQ?U`zSU45zlX!}ri_pRP<<}Lb!g@N6Ecj^Vj8D^n^AM?JNW95I_>(MYFERDn4 zB~WZN3tp&7Y6pcQ*wgF`D#2t+*~Ip&&ctb0x4dyE1a?HoP9e0|yt&jjO;ks?=mI1xS)RU?Nrb}g1+j9T@ z(LoHxf}1O5WT$-D5-SY~mFzM9NsM${&*B1ysu$JrlC zf$~@$?2MwX+=vuRO6eQ}#MJ|qhMt8$o1Bn-WfNYcA?6B3QYr^FC}c051oQ-iU3w_J ztZ-eW;w>8#3D9O!9*hd0u@!;D7;#gqGaf&YMBqF6X=-VDKdw4+$w?ve<)4-@|2)sf zkOD!J>1rE!0`j7}XX-XX=i?ad>{4n)qUMH(Wt(2^7rZ7r2nm?J4L6USKUOv(QK#m2 z-yOTe*78#W7Dx8~+J{trt7E#Ey}O$oQ{A&Ux0r8|vQ&ynw3NW*X_MQm%yw zCz?Xp0zn7hFd=`JsvGyVwgr+mxEx^ zY)Tq#hya3|jhA{^G#!@*o@m$rb&O_3QYB-72Ycyenq1ya0m>V(qtFektiCH|2`8OR zBAb3LdXKg>cUztY24j)Fy)AZNk-Jv%EJuNvIg~UGI$j&!p!?gz2Am0~#Avl;4jg$+ z4#8y>3N>x5#L>%hlQXxbXKqCMXVZoI!-0KhC;`vcH>)ft1aS%~S3KI;71CcXs zRB!hG_}i5o^A`UZuTH-w_W#$QlgZq5jFVP<^(AqIm^zgo3<~ufLy*#3Eksw#OLJ&w zhf>soe|q1yrwg=(oi)PLnUkxdNJu#>V!#wxpmo3Vn^fI+-BH8vZT~~mZwhhmq8&$Z zty|A$ivv)gpTi=Mr!}+a;*?WQble~Xs^JDXep}!Q0GLV_wECtDtYh`k557kPl0TN4e6z6^e6#RWld*s^ zyx7g)sZG0sC(w+gFH_x4wo*>zzLLkcY{T2Nr*|04HZ$N3(cis8v~z$a8^lV8shr#G z9AwSNfkPcI?)Fs@H1u~Fj*#lb^t*%_f`!EGu#EnBqhsZwIOgO*)yilca?n4{HSiaZ zUyebce+HEj7^%z$z7)F{yC&$2eP?3G;0W?(LRK4X5K0ZwUStmc{Mm&i(R^Aqw=Ptz zo(jj^(hjya%MK4k>L+D6D>I_>)l16FLaQkrXT!GSiNqaTgRv*Y$=UVs`U|XAJ(3L) z`3aCdU)Imbr=>1DS~^(NTl9L%LGmETUZjOTX#-PL!GKZvf{3Xq)3FYOr#|4uzm5^~nt^oP>t zdUrhB2{O|Ldpkzz!d!b%VJ?!}8u8LX0jS2jiyHufDVAv0+t!w+8us@L4$C+8$;AM3 zg9GN~$Cr0s^IX9X3A4D2Ae2vqSU^X3ph@jPgas@%gyEfRQa`~{@ywKEwRkDWgvW)+ z7+?rB`}=+!yW2@vvy$p8U9dQ|4YY_h%Y(W+70Pxsg10J;E`67ZRW+A}gu8jdBl!%g zcfKr)WmRL>p!B~MP`PXR6IiA1;VW*TfKJ`u-T}gRyh#eh)P^?Zmk1FDP1REx4SngA z^D@^6jhn#yuI*j%@1Pu^p*xX9=5_4G|H)G}o{Y%l7)DIQo04C?OQPYj=q)rmj9HE6 zhtJUSHYXhrV@pS0COsx(t)8jvfP2{v|pQxWGxKn!EZ0doUO zk(?I8r@|j_Dd4`I3woV#L2d@eMG5JQc%tV}yhb-lE|abzSJ4aTbqHlt7T;p?!*bi~ z)_7h}8zvZ>Mc6GJGvmKE4QPfGidT6}zg#@C1O4S3J-d=T8vn$zAM~RTsL=3_Bw^L4 zLb?U1ZZeiZ8C*66=I3wH;s7oRMkR2FoJix_YddBrea9vAe4MIx-M5Ti<_hqW z-O?+4$IsWYZdAqg8hXqKhN>F4Q9ZF&^VNgaPo~)@L_p#C1cmWL z2uVa3qVWZ&;iZl!fP1=dA%@Q_S_T|sKb3^g$rwQuM`(s1ic(4rN^sl>7*TZrie99= z)%FfpOBQKCL=L>{0%e+chDEpOI5YEbv{kn>ZLscJXxnR`HkMVh&$d)1$(^x;5})r| z3<3$V(OVw@u>l48n*rNb zK4_G2+y*s`^3oe*T}m-85r%4+3Bop}(W=fCZM4w3BtD*jrj|=t&VjA=9sn!LF>Uzv z_BPF4fjC^HHbEn89krs?+Lyi~wteq-t&|b5MfG=Y6_Ld@KGWp$wBh;-!oCP?U&!}ac$=KB@x>L52ykUm!FVqX&> z*hlbC1u}b(fm!8*iFqyR+6&wCyph=f0<8DnYA zX!ETADWD1lu>No&oWn#BFQBZ%n4V=m=Y6nQ(~O|pEJ1(*NyV2zpcb0SX5%4aH1;wQ zQj&s%65|{NT0#m+oCt!@6Algh&hk5}>k<~R7lZ1PXe0%v^7x}DZ@btqrFtFbAxbTa z?G8}0zvbW9*C?THc*x~x6Z4_mxN}UO?E%x4tg1`dK2;=eX~vr{3jm+fF(U=2OTIlV6yZ&qkUHcVH^Py8>;4&g|XzFLLo89w~D}@K>10p@7kAC6e{E|zX z@%C~2Z;#@){iH}Z%JpIB1!E!Ckh-}+|AZl7(0V{QIh7zGOY>#VY=|Aw3qHYSG83^c*Rn4uU`R9i=#z%?kR z+wLPmN-_|L=NtLCp`LDcub4kB$gpIk$S0t*>~m^{QQiHXK!*>GwMQ~s#Br$H9I27}zzt6GB;q;dQUSnh2 zd)hFp##v^Q?rM9!ax-;7eba~e1!~uqU8U2hu_8$!^Jdg^MNxT zAr(-K?=t)QO*D9r%n2;1Vltnve`Gc_ix%+;ztBZ0=0Ol7!4yS$S$xbl%(E!g)PvRC0Agj^)PRq{>$!<$9y%5TV%&I-6fAoeEtM|2Y!N zQUS;=w4J0(M$8U_-zqZ5GL_T$LVd8m#AZ~%eW`Lw?lQkCL>KdmFtYgjGVm5?l<9q% zb8o~RM|g@TAIx_~5^DBXW&mXNT2`m_B-!liO%z_2X~-=-QH?y*BKiQylxkQFPdR}R zs*&JNv+meX&M06J>z$PGWdWf%CiTYEE~t9;tqjEc^XE7Cw$KzSXqvzXHbGJexOlvt zE!OzcHhIN3ap(;pTCP%!6a6iPC>)q0`(@=Qc|XzE@R}3O{?fnOe5CL&dFG{Bd%fi= zqe&slo-hHeNu9Lkb_W`ux7cSb*V3sz8h1C;4j~0BEhsW;l&$LdiL-I?qrAL&iR8r! zS^8-JSj4%5E=Wr2h2W()4nEOxd!Bqs`VWABI;tgo?<07M#v(_D!M9P-DCLtX!0h_+ z`+T1?fIRRvU%Gi+6{D>^fD+&8$7vHN$|V-X+E3%1k{^#m+-$`BA`L3J4o=UHgYuLb zQ>ihbrsSU#?MoCXy8uCyWNumo#OWw6y756w$w5vttq+mp1X{v+Y*VPlA0-N~`6@Db zRENoAHymUIH)WLcDGYJ)h;+it1LY$&dC8BI(Df!nblOdeqXo{JOO?xjxF%!mW$snb zte8r2H~SH=O93g8Bb(1t89P%|wzFUzc9|?w(TZc(r3k~<+vVM59DwrM_xHRyv+)fI zhXMbJkvf4^X4bawg<@fe!!#xte=oQIL$GIX zzZYKoI|zA1YdIHZk?mR#kR4=RfkA#;b(1a??+=Q_S7pMOK}1v~Rr-gr4N=Y4wTkz$#Jzpz+0$jLswJUZ{#-iOy9v++EGn>- zX%qB%rO?Sgo|HI{8{~wt{wc{GR(0bA;V$Qv z66j`bY9#xQ7Pr1*04w>dVN%e9kw9ZQ8RbyFaPaU(vV80aKN3@DSUp*>QY3MBZ}fsS&xYsaf1Y%S;(mf}d=e51mnP&2HCz)K->|z=S39{w|4odHw0lXY-1n zw+Pq>K`Jgb3JIiBlo1Ti(+W&6f0I{pk(tGx7ll@J!U#kgSknl;Ih>l|0?*NA<-F2B zyk0eST8F_B&yznxyE8yTwBQA~p-O6j@j$cZHZAf+GY0jvnlcj9E-C>FH+%fPSwx!XEQ+$R=(T{V;vG-ytvY<3Ub#350?IJk>>^%)!K_s$f zSf%A@mdgsjAs|rR6#cUzKtaC97q~oFoWA&t2Oe-tUfMmm8gR5(qW}du2q^7@k(FmX zhY7nbL6)J2DQp6#eb{hycz1 z(Y@LdEfCrs>{h^7blk5qItMe{$#0B*2-zUm&1I>F;xwp!$POSIfs_FNXhBJXfHJ>K zeaw)`lVA%Eo&XiD`T(ixV~4ihcS;fVa9iJj03~&Qcz)yW4*b@<=)Vk#lXz!CcTNWI zvZcMdhT{hgo~+%|D9NEIb`;dL*HQK_Mb}ybl&LPf`0Gw87G(E^V8pn!9D>OVjS+BAXcAs@s&HB!G@1-YCsbs*{gd> z%l=-svDP_$r@f0{uOqG8mor$`We9Ho%bIl!xu#b0PW$*Ryah?vm{W1m52!sWn8}Ym zDqeEkCOj)*6Eq8Xh@!s5dcb%}-p>Lv0^yhgS$@AV{@u#6wL{s3m+H`T6b2Cg&^S&Q-@SYI_I&^zOm&-*yikU4U1a2sP1rGXu>^8v!v<6`eR9#p^>gn4NIOWX!zev(q)Id-^ z<}GmSrYqU`M{e5QrYuCVW@XD_mQlFt1nrqeeC9nfKC7I^Ik;%KjL9a( znjTlDTu2%wvUYtHSsb+h z2Bmq^VvMy0cVkkSpWFXMWafe7)KxdQ3st}+5Xo!)-l5B^%i_7vj~B^F#Z2@VsJu>6 z>s%qvxEn&n%rD?a7{7KVP1@7%6ZfWs)9IyyRp=qli{44cq7%yTFCpdu-#Kbi%b0zv z({QtC$He5$@RK-=(jCjmo3pJPjP&~)nii6TnvHI(R;gSdvJ5ciGad{|1l$3CHXV#j z3+KxjJ{^lyT>WMhFgiRB#wu?v?(0vEOmb!MzT=Hvu6*Wjk@=v;~=%H=rZ8{_+C0AOriMneU-(fgtcFifKzpi#>t z(R7S9^|J;w3UP6ss3@lsE?f#UC>IED`PjG<1r|qCi_`#AznUwn4WNEM99%k0f_zd) zi@0}k0Vb1RW@Jtn0!N@@nAw*#gSuDQ^kYPEX$8KcQ{CG$Tmm>#il!IAymIa!Ls_n< zDf|ZDnMT96`2}t)jnr0io)8pN0ajvVZGld~wt0Wv~m<2G!th6rH6^JZdP{uxs zN;9c47h0o36s#;E5x97G$1OYPF0zG}U+xAVmiJX2GxF%_6}~+vEQ3NBZ<#5lUY1?N zF=ZH*GaSU9^2LdPV$~^0U9Wl)mGK-`&4uW1fDT{Pg?cr!O&N3a5vf`jQa@HlfGf(W zdFkZL7)RQ}73MZt?8VcyLVsknZmqN)ktVRxO2ywdWMhS6-M26!9n003M)gO_U9S z;|hxS6)9Rx1dkIT$+_9VPnm^jE|HFA)DrXWuV#jWNcTN1ky`USkzu#%zI#PY->lFF9>$gc+@)nUQY>_xX#x`PI3yafYq&Zh49A z6Qmx+))VO2X9R<=XR6AgS!Mb4V!WAqqIialD|6 zx%`m1HFONvqoFrn?~#q#7M$6DD9(8;X_-VkY9NPsV$Wh7kxD4SE-VH+u4)2{^OD@V zGYT&Y@p7x0lNnyECr+SRm1eS_D3^3$)+JgL2^llIK|p(sU8)KLE^HJ8+Mazp&jNru zp~8O2MW1eI1pLx$;mjg_16UL8nh`q+sEOB>5GPwv&)gtS@^9jQW6ggP`I?ZQz}AHQ zr|1zsQGh4sF^gv?#EKz4C+Rc-n6)4$?7A>1kkW7t3ZlC^n6-PKX1CcTpz#RZpb}80 zxIJd?$D&4bLxEh>N#&3;D1zj2%6Z{Dq()pIAA6JLGOpclE=_FD;c`W0U<;7=siU

G@J|a8?z@cr07^qU&d=iPZEZ69dc45 z))pw}V~ROktSWoJql@1K8~*Yr-1EYXpLrB(d<;>i>!OVhd=zH<+$hTRfkr>j5k@Dd z3NU^RY)vQCL{V|l%FnKOjM?B(WpDu!Ac82Yx_Y?2w6{AR61swlDeSq0n8g&I3KUTK zh@yMf1rvUKbFV^)U(^vqm%#-Q{&sN&^`dggU9O~xApU(6Kz#Nnefiu__3$x6zYtsn zrKoB>Runj%sfrtqRs{`a^6MQ~K%DUH11P?xdNjv}!~*ItiDOU-6IW9O2}`QNgmu(L zkIy&nIl@CP`J4p>@Y0EjVP`Xx7Fn}0^&WHe{k#B(_5qt2R|O8Q-)-mQ{nlC z)@;>ed8xm7rlL?=;`dq%jYO3u+DN%(bVK2Ek9cURGz*sys!Oo?)fo|)vaM`VQSZW%Uq+Fs1tb2TDIEF~DH-{evpJcCB7X#|-*q@r8~%wD zg?$DTgZejlt5W_5bJsJYo9Z>8Ml^2i)I}ZseM&1rj-Nv*kA4(!`8j^vI8njzXb78! zMxt=0MKB*9UFqP9Pzkui>YL_)Hw(|=jairl8c#Y2w=RLtAy1ZYO?@|%a~np)+q(!8 zZZDz4+ghT}%iBOYrv^i)lp}Z!5>B}0lxg&Q_jYU)ADlYJ4#F>3xmj!QY-ns#6YIvD zRxLfzcSln@LV+e{)WqhBjo)11LlnYnlnG`N(uv2HP^iLvOcRVO{=rD(SniBUq*&)& zgzJ{(yoI7&A4W*+t}r5WJjL$F+j#;4aFziPurdrG`bViLsuD39$SGT*@ng9CY1-4a`Y&56T&$ zyo}o2w$6$gY>=As;9_dWhKZ=0aWw;kCYEc-;#cuBcS74Ns~3Ubai0FBb7oD=SvK5l z`c!|TN4ziEY{8hs#?rbbC7(};h~)DdFLCNBBzYOKc(MDH39IxIi}GEqPnHbuOR784 z>e12JetN-$r5)^K#B{r^R6_HJwWZcds8Fh8IG>dZe!*rK@lPywCIE7%bX?xPm%zFe zMnln(8!V5yK{KWV9UMzaHo^39F|;D;|3|%k;NIk`N8{=tI2u8ob-EVzxerKcmPGIq z44V4exlY)7KsKEq^&0#yscEWh>69U|b|RP7G>iUqd<&gS<@BTiV@KxaQn)#eL3%~( zpLsW1fLsz`9^}kj)4;2fU<^A_t2I^38zQ@>&rn=ze$NE7PKn3H^*?K57eIoF4ug5g z1tv~v3Q1WYq+!DXj&CU$@N}i=d7_Yyc$y@1gI>!*7yOW-$AbdSmDO0Kv^z8AlywSSXT*f@@osc$fP=?j(LF(|j*4eUa+Ou~*~4j;NR$ zbOy&`aTu!T@M8_MEQK+SI1m-|*sheU5uylSRwUhU5JmsP0vB$&5VZG@Me?EuQ~kaF zAD6@7(;a5D2~C<%BIm50!oH-2P(-2I^!WYWzh0SA6ggIdNjpAIVAnwoY!QDV0f~>2 z)j8}TMnwotT9mycz9@{LK(euPv}_?Hb8tc~zV!5}8_z)p>dOPM)f6gXMA|%xwgw3o zx1dOcj_18p5+r0@VjVM4fOd(c}nMN?wB)vWH%0DQ0IUQ~`roigKT^lBGFG9$XYDp!Zv3 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 0 Then - ' retorno = DTFacNC.FiltroPrimero(String.Format("CveVenta={0}", DdlNCFactura.SelectedValue))("SubTotal").ToString.ToDecimal - ' End If - ' Catch ex As Exception - - ' End Try - ' Else - ' For Each gvrow As GridViewRow In GvInvNC.Rows - ' Dim txt As TextBox = gvrow.FCTextBox("Txtcantidad") - ' If txt.Visible Then - ' retorno += txt.Text.ToDecimal * gvrow.DataKey("PU").ToString.ToDecimal - ' End If - ' Next - ' End If - - ' Return retorno - 'End Function - + End Sub + + 'Private Function SubTotalFacturaVinNC() As Decimal *** ESTABA TRONANDO EN COMPU 11/01/17 *** + ' Dim retorno As Decimal = 0 + ' If GvInvNC.Rows.Count = 0 Then + ' Try + ' If Not IsNothing(DTFacNC) AndAlso DTFacNC.FiltraParametros(String.Format("CveVenta={0}", DdlNCFactura.SelectedValue)).Rows.Count > 0 Then + ' retorno = DTFacNC.FiltroPrimero(String.Format("CveVenta={0}", DdlNCFactura.SelectedValue))("SubTotal").ToString.ToDecimal + ' End If + ' Catch ex As Exception + + ' End Try + ' Else + ' For Each gvrow As GridViewRow In GvInvNC.Rows + ' Dim txt As TextBox = gvrow.FCTextBox("Txtcantidad") + ' If txt.Visible Then + ' retorno += txt.Text.ToDecimal * gvrow.DataKey("PU").ToString.ToDecimal + ' End If + ' Next + ' End If + + ' Return retorno + 'End Function + #End Region - - - + + + #Region "GvConceptos" Protected Sub GvConceptos_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvConceptos.RowDeleting DTmpC.Rows.RemoveAt(e.RowIndex) @@ -5804,9 +5804,9 @@ Partial Class Ventas GvConceptos.DataSource = DTmpC GvConceptos.DataBind() - End Sub + End Sub #End Region - + #Region "GvFirma" Protected Sub GvFirmas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvFirmas.RowDataBound If e.Row.RowType = DataControlRowType.DataRow And Not e.Row.RowState = DataControlRowState.Edit Then @@ -5849,21 +5849,21 @@ Partial Class Ventas GvFirmas.DataSource = DTmpF GvFirmas.DataBind() - End Sub + End Sub #End Region - + #Region "GvIEPS" - 'Protected Sub GvIEPS_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvIEPS.RowDataBound - ' If e.Row.RowType = DataControlRowType.DataRow Then - ' e.Row.FCLiteral("LtlIEPS").Text = String.Format("IEPS ({0}):", If(e.Row.DBCampo("PorcentajeIEPS").ToDecimal = 0.03, "3%", If(e.Row.DBCampo("PorcentajeIEPS").ToDecimal = 0.06, "6%", If(e.Row.DBCampo("PorcentajeIEPS").ToDecimal = 0.07, "7%", "9%")))) - ' End If - 'End Sub + 'Protected Sub GvIEPS_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvIEPS.RowDataBound + ' If e.Row.RowType = DataControlRowType.DataRow Then + ' e.Row.FCLiteral("LtlIEPS").Text = String.Format("IEPS ({0}):", If(e.Row.DBCampo("PorcentajeIEPS").ToDecimal = 0.03, "3%", If(e.Row.DBCampo("PorcentajeIEPS").ToDecimal = 0.06, "6%", If(e.Row.DBCampo("PorcentajeIEPS").ToDecimal = 0.07, "7%", "9%")))) + ' End If + 'End Sub #End Region - + #End Region - + #Region " EMITIR IMPRIMIR - GUARDAR " - + Protected Sub BtnEmitirImprimir_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnEmitirImprimir.Click EmitirImprimir() End Sub @@ -6150,11 +6150,15 @@ Partial Class Ventas End If End If + If GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 AndAlso ddlAlmacen.SelectedValue.ToEntero() <= 0 Then + Alert("Tiene que seleccionar un almacen", TipoMensaje.MsgAdvertencia) + Exit Sub + End If EmitirImprimirNew() - End Sub + End Sub #End Region - + #Region " NNNNEEEEEEEWWWWWW " Private Sub InicializaImprimirNew() Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.rdlc", UsuarioActual.Empresa.Ruta)) @@ -6661,7 +6665,7 @@ Partial Class Ventas If RefacturacionGeneroNC Then If Not IsNothing(ObjNC) AndAlso ObjNC.Count > 0 Then Dim ofa As Modelos.Factura = CType(ObjNC(0), Modelos.Factura) - SeTimbroNC = ObjTimbrado.TimbrarFactura(UsuarioActual, ofa) + SeTimbroNC = ObjTimbrado.TimbrarFactura(UsuarioActual, ofa) End If End If @@ -8461,9 +8465,9 @@ Partial Class Ventas TmpDTComplementosTimbrado.Rows.Add(Row2) - End Sub + End Sub #End Region - + #Region "Ordenes de Compra Sin Facurar" Private Sub CargaOCs() Dim ObjVentas As New ClsVentas @@ -8692,13 +8696,13 @@ Partial Class Ventas End Sub Private Sub BtnConsultarOC_Click(sender As Object, e As EventArgs) Handles BtnConsultarOC.Click CargaOCSinFacturar() - End Sub + End Sub #End Region - - - - - + + + + + #Region " GUARDAR - VENTA, PREPOLIZAS, INV, ESTIMACIONES, AC, NOTA DE CRÉDITO " Private Sub GuardarVenta(ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjInventario As ClsInventarios, ByRef ObjContr As ClsContratos, factura As Modelos.Factura, TmpDTDetalle As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, Optional ByRef ObjOS As ClsOS = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, ByRef Optional ObjCGame As ClsCGame = Nothing, ByRef Optional ObjCliente As ClsClientes = Nothing) @@ -8981,25 +8985,6 @@ Partial Class Ventas End If Next End If - - ElseIf AplicarVentaFacturada Then - '25/11/2017 SE VA A ELIMINAR, DIJO EL IPP - - 'If Not ObjVentas.UpdateVentaRemision(CveVenta, ObjFactura.CveVenta) Then - ' ErrorList.Add("Ocurrió un error al actualizar la remisión") - 'End If - - 'If Not ObjConta.TraspasarSaldosPrePolizas(CveVenta, ObjFactura.CveVenta, -1, ObjFactura.CvePrePoliza, 2) Then - ' ErrorList.Add("Ocurrió un error al traspasar los saldos de la remisión") - 'End If - - ''If Not ObjConta.CancelarPrePolizas(-1, CveVenta) Then - '' ErrorList.Add("Ocurrió un error al cancelar los saldos de la remisión") - ''End If - - 'If Not TraspasoAlmacen(ObjInventario, CveVenta, ObjConta, True, 9) Then - ' ErrorList.Add("Ocurrió un error al traspasar el almacen") - 'End If End If End If @@ -10251,147 +10236,152 @@ Partial Class Ventas End Function Private Function GuardarVentaInventarios(ObjInventario As ClsInventarios, ObjConta As ClsContabilidad, factura As Modelos.Factura) As Boolean Dim OcurrioError As Boolean = False - - If UsuarioActual.Empresa.UsaInventarios AndAlso factura.TipoDocto.Contiene("Ing", "Egs", "Rem") Then - - If GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then - - Dim CveAlmacen = ddlAlmacen.SelectedValue.ToEntero - Dim CveMovimientoInventario As Integer = ObjInventario.AddMovimiento(CveAlmacen, 3, factura.CveMoneda, factura.Fecha, -1, factura.CveUsuario, factura.CveEmpresa, -1, factura.CveVenta, -1, -1) - - If CveMovimientoInventario <= 0 Then - OcurrioError = True - ErrorList.Add("Ocurrió un error al agregar los Movimientos de salida al Inventario.
Revise su factura y cualquier detalle comuníquese a Soporte Técnico") - Else - Dim Mensaje As String = "" - Dim i As Integer = 0 - Dim Cantidad As Double - Dim CveUnidad As Integer - Dim CveProducto As Integer - Dim Existencia As Double - 'Dim Pu As Double - 'DtInv.Clone() - - Dim DtEquivalencias As DataTable - - For Each Dr As DataRow In DtInv.Rows - If GvInv.Rows(i).FCCheckBox("cbInv").Checked Then - - CveProducto = Dr("CvePS").ToString.ToEntero - CveUnidad = Dr("CveUM").ToString.ToEntero - Cantidad = Dr("Cantidad").ToString.ToDouble - - If Dr("CveTipoInvPS").ToString.ToEntero = 5 And Dr("SerieLote").ToString = "" Then - OcurrioError = True - ErrorList.Add("Se deben especificar las Series de los productos de almacén") - Exit For - End If - - If UsuarioActual.CveEmpresa.Contiene({72, 80, 119}) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing") Then - Existencia = ObjInventario.GetExistenciasPS(CveProducto, CveUnidad, UsuarioActual.CveEmpresa, CveAlmacen, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, RestringirAlmacenes:=1, ExcluyeApartados:=1) - If Existencia < Cantidad Then - OcurrioError = True - ErrorList.Add($"No cuenta con la cantidad suficiente en inventario del producto {Dr("CodigoPS")} .Cuenta con {Existencia.FormatoNumero(2)}.") - Exit For - End If - End If - - If UsuarioActual.CveEmpresa = 1 Then - DtEquivalencias = New DataTable - DtEquivalencias = GlobalDTProductosServiciosEquivalencias(CveProducto, -1) - Dim CveUnidadBase As Integer = DtEquivalencias.FiltroPrimeroValor("CveUM", "UnidadBase = 'True'").ToEntero - Dim drUMBase As DataRow = DtEquivalencias.FiltroPrimero("UnidadBase = 'True'") - - 'SI LA UNIDAD ACTUAL NO ES LA BASE SACA PROPORCION (EQUIVALENTE) - If CveUnidadBase <> CveUnidad Then - ' LO QUE PUSE LO QUE VALE UNIDAD BASE LO QUE VALE UNIDAD SELECCIONADA - Cantidad = Dr("Cantidad").ToString.ToDouble * drUMBase("Cantidad").ToString.ToDouble / DtEquivalencias.FiltraParametros(String.Format("CveUM = {0}", CveUnidad)).Rows(0)("Cantidad").ToString.ToDouble - CveUnidad = CveUnidadBase - End If - End If - - If CveProducto > 0 Then - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, Cantidad, CveUnidad, CveProducto, 0, -1, SerieLote:=Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then - OcurrioError = True - ErrorList.Add("Ocurrió un error al agregar los Movimientos de salida al Inventario.
") - Exit For - End If - Else - OcurrioError = True - ErrorList.Add("Ocurrió un error al agregar los Movimientos de salida al Inventario.
") - Exit For - End If - - End If - i = i + 1 - Next - - 'REGISTRO LA PREPOLIZA DE COSTO VS ALMACEN - If Not OcurrioError Then - Dim DtCostos As DataTable = Nothing - Dim ValorInventario As Decimal = 0 - Dim TotalCosto As Decimal = 0 - If ObjInventario.GetMovimientosDetalle(CveMovimientoInventario, UsuarioActual.CveEmpresa) Then - DtCostos = ObjInventario.DtResultados - TotalCosto = DtCostos.SUMD("Total").RoundSQL - Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"}) - Dim IdCtaContable As Integer = 0 - Dim CveCuenta As Integer = 0 - If tmpCostos.Rows.Count > 0 Then - Dim TotalCostoAcumulado As Decimal = 0 - Dim cont As Integer = 1 - 'Se agrega movimiento separado por la cuenta de ventas (ER) - For Each RowInv As DataRow In tmpCostos.Rows - ValorInventario = DtCostos.SUMD("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").RoundSQL - TotalCostoAcumulado += ValorInventario - - 'cuando es el último movimiento y hay diferencias en los importes - If cont = tmpCostos.Rows.Count AndAlso TotalCosto <> TotalCostoAcumulado Then - ValorInventario = ValorInventario + (TotalCosto - TotalCostoAcumulado) - End If - - 'Concepto = String.Format("{0} - {1}", Row2("Clasificacion").ToString, Row2("SubProyecto").ToString) - IdCtaContable = GlobalDTClasificaciones(factura.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero - CveCuenta = GlobalDTClasificaciones(factura.CveEmpresa).FiltroPrimeroValor("IdCuentaGastoSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero - If ValorInventario <> 0 Then - - If Not ObjConta.AddPrePolizasDetalle(factura.CvePrePoliza, False, ValorInventario, factura.SerieFolio, 69, factura.SerieFolio, factura.Fecha, IdCtaContable, -1, CveVenta:=factura.CveVenta, CveCliente:=factura.CveCliente, CveSubProyecto:=factura.CveSubProyecto, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoInventario, ImporteMX:=ValorInventario, CveCuenta:=CveCuenta) Then - OcurrioError = True - End If - End If - cont += 1 - Next - End If - IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", CveAlmacen)).ToEntero - - If TotalCosto <> 0 Then - If Not ObjConta.AddPrePolizasDetalle(factura.CvePrePoliza, True, TotalCosto, factura.SerieFolio, 68, factura.SerieFolio, factura.Fecha, IdCtaContable, -1, CveVenta:=factura.CveVenta, CveCliente:=factura.CveCliente, CveMovimientoAlmacen:=CveMovimientoInventario, ImporteMX:=TotalCosto, CveCuenta:=CveCuenta, CveSubProyecto:=factura.CveSubProyecto) Then - OcurrioError = True - End If - End If - - factura.Inv_CveMovimiento = CveMovimientoInventario - factura.Inv_ValorInventario = ValorInventario - - End If - End If - - - End If - - End If - - If RemisionesLista.Count > 0 Then - For Each CveRemision As Integer In RemisionesLista - 'El almacen general es el Primer Almacen de Material en la Sucursal - If Not TraspasoAlmacen(ObjInventario, CveRemision, ObjConta, True, 9) Then - OcurrioError = True - Exit For - End If - Next - End If - - End If + Try + + If UsuarioActual.Empresa.UsaInventarios AndAlso factura.TipoDocto.Contiene("Ing", "Egs", "Rem") Then + + If RemisionesLista.Count > 0 Then + For Each CveRemision As Integer In RemisionesLista + 'El almacen general es el Primer Almacen de Material en la Sucursal + If Not TraspasoAlmacen(ObjInventario, CveRemision, ObjConta, True, 9) Then + OcurrioError = True + Exit For + End If + Next + End If + + If GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then + + Dim CveAlmacen = ddlAlmacen.SelectedValue.ToEntero + Dim CveMovimientoInventario As Integer = ObjInventario.AddMovimiento(CveAlmacen, 3, factura.CveMoneda, factura.Fecha, -1, factura.CveUsuario, factura.CveEmpresa, -1, factura.CveVenta, -1, -1) + + If CveMovimientoInventario <= 0 Then + OcurrioError = True + ErrorList.Add("Ocurrió un error al agregar los Movimientos de salida al Inventario.
Revise su factura y cualquier detalle comuníquese a Soporte Técnico") + Else + Dim Mensaje As String = "" + Dim i As Integer = 0 + Dim Cantidad As Double + Dim CveUnidad As Integer + Dim CveProducto As Integer + Dim Existencia As Double + 'Dim Pu As Double + 'DtInv.Clone() + + Dim DtEquivalencias As DataTable + + For Each Dr As DataRow In DtInv.Rows + If GvInv.Rows(i).FCCheckBox("cbInv").Checked Then + + CveProducto = Dr("CvePS").ToString.ToEntero + CveUnidad = Dr("CveUM").ToString.ToEntero + Cantidad = Dr("Cantidad").ToString.ToDouble + + If Dr("CveTipoInvPS").ToString.ToEntero = 5 And Dr("SerieLote").ToString = "" Then + OcurrioError = True + ErrorList.Add("Se deben especificar las Series de los productos de almacén") + Exit For + End If + + If UsuarioActual.CveEmpresa.Contiene({72, 80, 119}) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing") Then + Existencia = ObjInventario.GetExistenciasPS(CveProducto, CveUnidad, UsuarioActual.CveEmpresa, CveAlmacen, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, RestringirAlmacenes:=1, ExcluyeApartados:=1) + If Existencia < Cantidad Then + OcurrioError = True + ErrorList.Add($"No cuenta con la cantidad suficiente en inventario del producto {Dr("CodigoPS")} .Cuenta con {Existencia.FormatoNumero(2)}.") + Exit For + End If + End If + + If UsuarioActual.CveEmpresa = 1 Then + DtEquivalencias = New DataTable + DtEquivalencias = GlobalDTProductosServiciosEquivalencias(CveProducto, -1) + Dim CveUnidadBase As Integer = DtEquivalencias.FiltroPrimeroValor("CveUM", "UnidadBase = 'True'").ToEntero + Dim drUMBase As DataRow = DtEquivalencias.FiltroPrimero("UnidadBase = 'True'") + + 'SI LA UNIDAD ACTUAL NO ES LA BASE SACA PROPORCION (EQUIVALENTE) + If CveUnidadBase <> CveUnidad Then + ' LO QUE PUSE LO QUE VALE UNIDAD BASE LO QUE VALE UNIDAD SELECCIONADA + Cantidad = Dr("Cantidad").ToString.ToDouble * drUMBase("Cantidad").ToString.ToDouble / DtEquivalencias.FiltraParametros(String.Format("CveUM = {0}", CveUnidad)).Rows(0)("Cantidad").ToString.ToDouble + CveUnidad = CveUnidadBase + End If + End If + + If CveProducto > 0 Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, Cantidad, CveUnidad, CveProducto, 0, -1, SerieLote:=Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then + OcurrioError = True + ErrorList.Add("Ocurrió un error al agregar los Movimientos de salida al Inventario.
") + Exit For + End If + Else + OcurrioError = True + ErrorList.Add("Ocurrió un error al agregar los Movimientos de salida al Inventario.
") + Exit For + End If + + End If + i = i + 1 + Next + + 'REGISTRO LA PREPOLIZA DE COSTO VS ALMACEN + If Not OcurrioError Then + Dim DtCostos As DataTable = Nothing + Dim ValorInventario As Decimal = 0 + Dim TotalCosto As Decimal = 0 + If ObjInventario.GetMovimientosDetalle(CveMovimientoInventario, UsuarioActual.CveEmpresa) Then + DtCostos = ObjInventario.DtResultados + TotalCosto = DtCostos.SUMD("Total").RoundSQL + Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"}) + Dim IdCtaContable As Integer = 0 + Dim CveCuenta As Integer = 0 + If tmpCostos.Rows.Count > 0 Then + Dim TotalCostoAcumulado As Decimal = 0 + Dim cont As Integer = 1 + 'Se agrega movimiento separado por la cuenta de ventas (ER) + For Each RowInv As DataRow In tmpCostos.Rows + ValorInventario = DtCostos.SUMD("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").RoundSQL + TotalCostoAcumulado += ValorInventario + + 'cuando es el último movimiento y hay diferencias en los importes + If cont = tmpCostos.Rows.Count AndAlso TotalCosto <> TotalCostoAcumulado Then + ValorInventario = ValorInventario + (TotalCosto - TotalCostoAcumulado) + End If + + 'Concepto = String.Format("{0} - {1}", Row2("Clasificacion").ToString, Row2("SubProyecto").ToString) + IdCtaContable = GlobalDTClasificaciones(factura.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero + CveCuenta = GlobalDTClasificaciones(factura.CveEmpresa).FiltroPrimeroValor("IdCuentaGastoSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero + If ValorInventario <> 0 Then + + If Not ObjConta.AddPrePolizasDetalle(factura.CvePrePoliza, False, ValorInventario, factura.SerieFolio, 69, factura.SerieFolio, factura.Fecha, IdCtaContable, -1, CveVenta:=factura.CveVenta, CveCliente:=factura.CveCliente, CveSubProyecto:=factura.CveSubProyecto, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoInventario, ImporteMX:=ValorInventario, CveCuenta:=CveCuenta) Then + OcurrioError = True + End If + End If + cont += 1 + Next + End If + IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", CveAlmacen)).ToEntero + + If TotalCosto <> 0 Then + If Not ObjConta.AddPrePolizasDetalle(factura.CvePrePoliza, True, TotalCosto, factura.SerieFolio, 68, factura.SerieFolio, factura.Fecha, IdCtaContable, -1, CveVenta:=factura.CveVenta, CveCliente:=factura.CveCliente, CveMovimientoAlmacen:=CveMovimientoInventario, ImporteMX:=TotalCosto, CveCuenta:=CveCuenta, CveSubProyecto:=factura.CveSubProyecto) Then + OcurrioError = True + End If + End If + + factura.Inv_CveMovimiento = CveMovimientoInventario + factura.Inv_ValorInventario = ValorInventario + + End If + End If + + End If + + End If + + End If + + Catch ex As Exception + OcurrioError = True + OnError("Ocurrió un error al guardar el inventario", ex) + End Try Return OcurrioError End Function @@ -10675,9 +10665,9 @@ Partial Class Ventas End If Return ProcesoCorrecto - End Function + End Function #End Region - + #Region " VISTA PREVIA NEW " Private Sub VistaPreviaNew() @@ -10787,10 +10777,10 @@ Partial Class Ventas 'PdfFacturaPyME(ObjFactura, TmpDT) End If - End Sub - + End Sub + #End Region - + #Region "¡ P D F R E P O R T V I E W E R !" Private Sub GeneraPDFFactura(EnviaCorreo As Boolean) @@ -10937,10 +10927,10 @@ Partial Class Ventas ObjVentas.Dispose() End Try End If - End Sub - + End Sub + #End Region - + #Region " ANTICIPOS " Private Sub CargaAnticipos(CveCliente As Integer) @@ -11933,9 +11923,9 @@ Partial Class Ventas Return PrePolizaCorrecta - End Function + End Function #End Region - + #Region " BTN ELIMINAR " Protected Sub BtnEmitir_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnEmitir.Click @@ -12051,9 +12041,9 @@ Partial Class Ventas ElseIf UsuarioActual.Empresa.TipoFacturacion = "CBB" Then End If - End Sub + End Sub #End Region - + #Region " DESCUENTOS " Protected Sub BtnAplicarDescG_Click(sender As Object, e As System.EventArgs) Handles BtnAplicarDescG.Click If HdnTipoDescuento.Value = "2" Then @@ -12165,18 +12155,18 @@ Partial Class Ventas ObjBanco.Dispose() - End Sub + End Sub #End Region - - - + + + #Region " VISTA PREVIA " Protected Sub BtnVistaPrevia_Click(sender As Object, e As System.EventArgs) Handles BtnVistaPrevia.Click VistaPreviaNew() - End Sub - + End Sub + #End Region - + #Region "I M A G E - B U T T O N S" Protected Function CancelarMovimientoInventario(ByRef ObjInventario As ClsInventarios, ByRef ObjConta As ClsContabilidad, CveVentaNueva As Integer, CveVentaVieja As Integer) As Boolean @@ -12498,221 +12488,7 @@ Partial Class Ventas Return Not ErrorCancelar End Function - 'Protected Sub ImgGuardaEstatus_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles ImgGuardaEstatus.Click - ' 'La validacion de saldos cuando es refacturacion se hace antes asi que si es refacturacion ignoramos esta condicion, si es Anticipo verifica que no esté aplicado - ' If DdlTipoComprobante.SelectedValue = "Ant" AndAlso (HdnPagado.Value.ToDecimal > 0 Or GvAntNC.Rows.Count > 0) Then - ' Alert("La factura no se puede cancelar debido a que tiene pagos vinculados.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - - ' 'La validacion de saldos cuando es refacturacion se hace antes asi que si es refacturacion ignoramos esta condicion - ' If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem") AndAlso HdnPagado.Value.ToDecimal > 0 Then - ' Alert("La factura no se puede cancelar debido a que tiene pagos vinculados.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - - ' ' si tiene movimientos en almacen, y sigue sin ser marcado como devuelto - ' If (GvInv.Rows.Count > 0 AndAlso DevolucionAlmacen.Contiene(0, 1)) AndAlso DdlTipoComprobante.SelectedValue <> "Rem" Then - ' Alert("La factura no se puede cancelar debido a que tiene movimientos de inventario.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - - ' 'Si la remision esta facturada no se puede cancelar - ' If DdlTipoComprobante.SelectedValue = "Rem" Then - ' Dim ObjV As New ClsVentas - ' If ObjV.VerificarRemisionFacturada(CveVenta) Then - ' If ObjV.DtResultados.Rows.Count > 0 Then - ' Alert("La remisión no se puede cancelar debido a que ya esta vinculada a una factura.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - ' End If - ' ObjV.Dispose() - ' End If - - - ' Dim ObjVentas As New ClsVentas() : ObjVentas.IniciaTransacSQL() - ' Dim ObjAC As ClsContPAQi = Nothing - ' Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL()) - ' Dim ObjBancos As New ClsBancos(ObjVentas.IniciaTransacSQL()) - ' Dim ObjInventario As New ClsInventarios(ObjVentas.IniciaTransacSQL()) - ' Dim ObjContratos As New ClsContratos(ObjVentas.IniciaTransacSQL()) - - ' Dim IDPoliza As Integer = -1 - ' Dim CvePrePoliza As Integer - ' Dim CvePlantillaPoliza As Integer - - ' Dim ErrorCancelar As Boolean = False - ' Dim Mensaje As String = "" - - ' CreaObjetosVenta() - ' If UsuarioActual.Empresa.UsaAC Then - ' ObjAC = New ClsContPAQi(UsuarioActual.Empresa) : ObjAC.IniciaTransacSQL() - ' End If - - ' If GvInv.Rows.Count > 0 AndAlso DdlTipoComprobante.SelectedValue = "Rem" Then - ' If CveAlmacenTransitorio > 0 Then - ' ErrorCancelar = Not TraspasoAlmacen(ObjInventario, CveVenta, ObjConta, False, 9) - ' Else - ' ErrorCancelar = Not SalidaEntradaAlmacen(ObjInventario, CveVenta, ObjConta) - ' End If - ' End If - - ' If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then - ' CvePlantillaPoliza = 7 - ' ElseIf ObjFactura.TipoDocto.Contiene("Ing", "Rem", "Ant") Then - ' CvePlantillaPoliza = 4 - ' Else - ' CvePlantillaPoliza = 4 - ' End If - - ' ObjFactura.CveVenta = CveVenta - - ' If HplSaldoAuxiliar.Text.ToDecimal > 0 Then - ' CvePrePoliza = ObjConta.AddPrePolizas("Ventas/GuardaEstatus", CvePlantillaPoliza, TxtTotal.Text.ToDouble, TxtTotal.Text.Replace(",", "").ToDouble, DdlMoneda.SelectedValue.ToEntero, Now, NombreCliente, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - ' ObjFactura.CvePrePoliza = CvePrePoliza - - ' If Not ErrorCancelar Then - ' ErrorCancelar = ProcesoPrepolizas(ObjConta, ObjFactura, -1, TmpDT, ObjAC, -1, ObjBancos, ObjVentas) - ' End If - - ' If Not ErrorCancelar Then - ' ErrorCancelar = GuardarVentaImpuestosLocales(ObjVentas, ObjConta, ObjFactura, -1) - ' Else - ' Exit Sub - ' End If - ' End If - - ' 'Desvincular Remisiones - ' '[IPP] COMENTADO PORQUE UNA REMISION USADA SE QUEMA - DETALLES CON INV - 30/ENERO/2018 - ' 'If DdlTipoComprobante.SelectedValue = "Ing" Then - ' ' If Not ObjVentas.LiberarRemisionesFacturadas(CveVenta) Then - ' ' ErrorCancelar = True - ' ' Mensaje = "Ocurrió un error al desvincular las remisiones" - ' ' End If - ' 'End If - - ' 'Contratos - ' ErrorList = New List(Of String) - ' If ObjFactura.CveContrato > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant") Then - ' GuardarContratoAvanceEstimaciones(ObjContratos, ObjFactura, ErrorList, -1, True) - ' If ErrorList.Count > 0 Then : ErrorCancelar = True : End If - ' ElseIf ObjFactura.CveContrato > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Egs", "Dev") Then - ' GuardarContratoAvanceEstimaciones(ObjContratos, ObjFactura, ErrorList, 1, True) - ' If ErrorList.Count > 0 Then : ErrorCancelar = True : End If - ' End If - - ' If DdlEstatus.SelectedValue = "4" Then - - ' If ObjVentas.UpdateEstatusFactura(DdlEstatus.SelectedValue.ToEntero, FolioFiscal, "", Now, CveVenta, IDPoliza) Then - ' Mensaje = "El nuevo estatus se guardó correctamente" - ' Else - ' ErrorCancelar = True - ' End If - - ' 'Si se está mandando a Cancelada SAT - ' ElseIf DdlEstatus.SelectedValue = "5" Then - ' Try - ' Dim DT As DataTable = Nothing - - ' If FolioFiscal = "" Then - ' Dim XmlDoc As New XmlDocument - ' XmlDoc.Load(Ruta & "XML\" & DdlTipoComprobante.SelectedValue & "\" & VentaFolio & ".xml") - ' ViewState("FolioFiscal") = XmlDoc.DocumentElement("cfdi:Complemento").FirstChild.Attributes("UUID").InnerText - ' End If - - ' 'Si es cancelar en el SAT: - - ' 'Dim xmlDoc As New System.Xml.XmlDocument() - ' 'xmlDoc.LoadXml(Encoding.UTF8.GetString(Convert.FromBase64String("PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8QWN1c2UgRmVjaGE9IjIwMTYtMTItMzBUMTg6Mjk6MjAuNTExOTg1NSIgUmZjRW1pc29yPSJNT1FKODUxMjE0SEs0IiB4bWxuczpuczI9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIHhtbG5zOm5zMz0iaHR0cDovL2NhbmNlbGFjZmQuc2F0LmdvYi5teCI+CiAgICA8bnMzOkZvbGlvcz4KICAgICAgICA8bnMzOlVVSUQ+NjNBOEQxN0UtRDMxQi00QjVFLTkzMEEtMzdDNDJDRTFBM0M4PC9uczM6VVVJRD4KICAgICAgICA8bnMzOkVzdGF0dXNVVUlEPjIwMTwvbnMzOkVzdGF0dXNVVUlEPgogICAgPC9uczM6Rm9saW9zPgogICAgPG5zMjpTaWduYXR1cmUgSWQ9IlNlbGxvU0FUIj4KICAgICAgICA8bnMyOlNpZ25lZEluZm8+CiAgICAgICAgICAgIDxuczI6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1Ii8+CiAgICAgICAgICAgIDxuczI6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjaG1hYy1zaGE1MTIiLz4KICAgICAgICAgICAgPG5zMjpSZWZlcmVuY2UgVVJJPSIiPgogICAgICAgICAgICAgICAgPG5zMjpUcmFuc2Zvcm1zPgogICAgICAgICAgICAgICAgICAgIDxuczI6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteHBhdGgtMTk5OTExMTYiPgogICAgICAgICAgICAgICAgICAgICAgICA8bnMyOlhQYXRoPm5vdChhbmNlc3Rvci1vci1zZWxmOjoqW2xvY2FsLW5hbWUoKT0nU2lnbmF0dXJlJ10pPC9uczI6WFBhdGg+CiAgICAgICAgICAgICAgICAgICAgPC9uczI6VHJhbnNmb3JtPgogICAgICAgICAgICAgICAgPC9uczI6VHJhbnNmb3Jtcz4KICAgICAgICAgICAgICAgIDxuczI6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhNTEyIi8+CiAgICAgICAgICAgICAgICA8bnMyOkRpZ2VzdFZhbHVlPk8zNzJtbWlEMFZWWUdkcGE4WjJ5K3VPQXVVcTdZb3JURldicER3K2xnVG9CUng3c2RrREtlNDZKRjRaM01hZHZ2djh6bG9vZTYwRGtZUGZyRGNZMUZ3PT08L25zMjpEaWdlc3RWYWx1ZT4KICAgICAgICAgICAgPC9uczI6UmVmZXJlbmNlPgogICAgICAgIDwvbnMyOlNpZ25lZEluZm8+CiAgICAgICAgPG5zMjpTaWduYXR1cmVWYWx1ZT5IbEJVbHplZlZFKzFXNS9QKzRuVk9YbEFuOVZLQUladm0vK2tuSldSb2plTVI4Ung5bHBpTUdIOXBVZG5iVWtObTloOTZQSXQ4QzBFd0Z2UVptRjlCZz09PC9uczI6U2lnbmF0dXJlVmFsdWU+CiAgICAgICAgPG5zMjpLZXlJbmZvPgogICAgICAgICAgICA8bnMyOktleU5hbWU+MDAwMDEwODg4ODg4MDAwMDAwMTY8L25zMjpLZXlOYW1lPgogICAgICAgICAgICA8bnMyOktleVZhbHVlPgogICAgICAgICAgICAgICAgPG5zMjpSU0FLZXlWYWx1ZT4KICAgICAgICAgICAgICAgICAgICA8bnMyOk1vZHVsdXM+eG5MMnpEUHRINWpEc0FaRFRJZk1xYktHcnZlK0F0OEt5eDJFWnZiZlhicEs5dVZFeFdTODc0b01lbEZ6TnE2OS9ZcVNSZVQzSTdJOHdyK2pveTVPN291WkgrNEtXZElHcDRTaTZsSGUwa250eHpObXV1S3lPUGtKOXRNY250bkZtUTRiZnhGeGxnL1VkMmhDdHVveTNqMnhZa0lYdTVPNHBHTTk4Tno4cEFNPTwvbnMyOk1vZHVsdXM+CiAgICAgICAgICAgICAgICAgICAgPG5zMjpFeHBvbmVudD5BUUFCPC9uczI6RXhwb25lbnQ+CiAgICAgICAgICAgICAgICA8L25zMjpSU0FLZXlWYWx1ZT4KICAgICAgICAgICAgPC9uczI6S2V5VmFsdWU+CiAgICAgICAgPC9uczI6S2V5SW5mbz4KICAgIDwvbnMyOlNpZ25hdHVyZT4KPC9BY3VzZT4K"))) - - ' Dim ObjCancelacion As New Timbrado - ' Dim TotalT As Decimal = TxtTotal.Text.ToDecimal - ' Dim RFCReceptor As String = LblRFC.Text.Trim - ' Dim CvePACCancelacion As Integer = UsuarioActual.Empresa.CvePAC - ' ImprimeCancelacion(CveVenta) - - ' If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion) Then - ' 'Generamos el acuse y mandamos mail de con el acuse de cancelación - DF 13/01/2017 - ' ' ImprimeCancelacion(CveVenta) - - ' If UsuarioActual.Empresa.UsaAC Then - ' IDPoliza = GenerarPolizaAC(ObjAC, True) - ' If IDPoliza <= 0 Then - ' Mensaje = "No se pudo generar la poliza" - ' ErrorCancelar = True - ' End If - ' End If - - ' If Not ErrorCancelar Then - ' If ObjVentas.UpdateEstatusFactura(DdlEstatus.SelectedValue.ToEntero, FolioFiscal, ObjCancelacion.CancelacionAcuse, ObjCancelacion.CancelacionFecha, CveVenta, IDPoliza, CvePAC:=CvePACCancelacion) Then - ' Mensaje = "El nuevo estatus se guardó correctamente" - - ' Else - ' ErrorCancelar = True - ' End If - ' End If - ' End If - - ' Catch ex As Exception - ' Mensaje = "Ocurrio un error al Cancelar la factura" - ' GuardaLog($"{ex.Message}") - ' End Try - - ' ElseIf DdlEstatus.SelectedValue = "9" Then - - ' If UsuarioActual.Empresa.UsaAC Then - ' IDPoliza = GenerarPolizaAC(ObjAC, True) - - ' If IDPoliza > 0 Then - ' Mensaje = "Se canceló exitosamente el compromiso." - ' Else - ' Mensaje = "No se pudo generar la poliza de cancelación" - ' ErrorCancelar = True - ' End If - - ' End If - - ' If Not ErrorCancelar Then - ' If Not ObjVentas.UpdateEstatusFactura(DdlEstatus.SelectedValue.ToEntero, "", "", TxtFecha.Text.ToDate, CveVenta, IDPoliza) Then - ' ErrorCancelar = True - ' End If - ' End If - - ' ElseIf DdlEstatus.SelectedValue = "12" Then - ' If ObjVentas.UpdateEstatusFactura(DdlEstatus.SelectedValue.ToEntero, FolioFiscal, "", Now, CveVenta, IDPoliza) Then - ' Mensaje = "Se canceló exitosamente la Remisión" - ' Else - ' ErrorCancelar = True - ' End If - ' Else - ' If ObjVentas.UpdateEstatusFactura(DdlEstatus.SelectedValue.ToEntero, FolioFiscal, "", Now, CveVenta, IDPoliza) Then - ' 'Alert("El nuevo estatus se guardó correctamente", TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/Ventas.aspx?CveVenta=" & CveVenta & """;") - ' Mensaje = "El nuevo estatus se guardó correctamente" - ' Else - ' ErrorCancelar = True - ' End If - ' End If - - - ' If Not ErrorCancelar Then - ' Alert(Mensaje, TipoMensaje.MsgInformacion, "document.location.href=""/Ventas/Ventas.aspx?CveVenta=" & CveVenta & """;") - ' ObjVentas.Commit() - ' If ObjAC IsNot Nothing Then ObjAC.Commit() - ' Else - ' Alert(Mensaje, TipoMensaje.MsgError) - ' ObjVentas.RollBack() - ' If ObjAC IsNot Nothing Then ObjAC.RollBack() - ' End If - - ' ObjVentas.Dispose() - ' ObjContratos.Dispose() - ' ObjConta.Dispose() - ' ObjBancos.Dispose() - ' ObjInventario.Dispose() - ' If ObjAC IsNot Nothing Then ObjAC.Dispose() - - 'End Sub Protected Sub ImgBtnAddC_Click(sender As Object, e As ImageClickEventArgs) Handles ImgBtnAddC.Click Dim Row As DataRow = Nothing Row = DTmpC.NewRow @@ -12745,9 +12521,9 @@ Partial Class Ventas GvFirmas.DataBind() UPFirmas.Update() tbTituloF.Focus() - End Sub + End Sub #End Region - + #Region "D R O P - D O W N - L I S T" Private Sub DdlPSIndexChange(CvePSParametro As Integer, Ddl As ADServerControl.Dropdownlost) @@ -13146,9 +12922,9 @@ Partial Class Ventas End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged CargaSubProyecto() - End Sub + End Sub #End Region - + #Region " SUCURSAL FACTURACION " Private Sub DdlSubProyectoDatos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyectoDatos.SelectedIndexChanged CambiaSucursalGeneral() @@ -13315,9 +13091,9 @@ Partial Class Ventas If Not DdlVendedor.SelectedValue.ToEntero > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString) End If - End Sub + End Sub #End Region - + #Region " AGREGAR PS " Protected Sub LbAgregar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LbAgregar.Click AgregarPS() @@ -13901,10 +13677,10 @@ Partial Class Ventas Retorno = True Return Retorno - End Function - + End Function + #End Region - + #Region "D A T A - T A B L E S" Private Sub CreaDTVentas() TmpDT = New DataTable @@ -14030,44 +13806,44 @@ Partial Class Ventas TmpDTDocumentosRelacionados.Columns.Add("Fecha", GetType(String)) TmpDTDocumentosRelacionados.Columns.Add("Importe", GetType(Decimal)) TmpDTDocumentosRelacionados.Columns.Add("FolioFiscal", GetType(Integer)) - End Sub + End Sub #End Region - + #Region "P D F" - - + + #End Region - + #Region "A C T U A L I Z A " - + #Region "New" - 'Private Function ActualizaTimbrado(Timbro As Boolean, CveVenta As Integer) As Boolean - ' Dim Retorno = False - ' Dim ObjVentas As New ClsVentas() - - ' Retorno = ObjVentas.UpdateVentaTimbre(CBool(Timbro), CveVenta) - ' ObjVentas.Dispose() - - ' Return Retorno - 'End Function - 'Private Sub ActualizaCadenaOriginal(CadenaOriginal As String, CveVenta As Integer) - ' Dim ObjVentas As New ClsVentas() - ' ObjVentas.UpdateVentaCadenaOriginal(CadenaOriginal.ToString, CveVenta) - ' ObjVentas.Dispose() - 'End Sub - 'Private Sub ActualizaEstatus(CveEstatus As Integer, FolioFiscal As String, CveVenta As Integer) - ' Dim ObjVentas As New ClsVentas() - ' ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, "", Now, CveVenta) - ' ObjVentas.Dispose() - 'End Sub - 'Private Sub ActualizaCliente(NumCtaPago As String, MetodoDePago As Integer, CveCliente As Integer) - ' Dim ObjCliente As New ClsClientes - ' ObjCliente.UpdateClienteFactura(NumCtaPago, MetodoDePago, CveCliente, UsuarioActual.CveUsuario) - ' ObjCliente.Dispose() - 'End Sub + 'Private Function ActualizaTimbrado(Timbro As Boolean, CveVenta As Integer) As Boolean + ' Dim Retorno = False + ' Dim ObjVentas As New ClsVentas() + + ' Retorno = ObjVentas.UpdateVentaTimbre(CBool(Timbro), CveVenta) + ' ObjVentas.Dispose() + + ' Return Retorno + 'End Function + 'Private Sub ActualizaCadenaOriginal(CadenaOriginal As String, CveVenta As Integer) + ' Dim ObjVentas As New ClsVentas() + ' ObjVentas.UpdateVentaCadenaOriginal(CadenaOriginal.ToString, CveVenta) + ' ObjVentas.Dispose() + 'End Sub + 'Private Sub ActualizaEstatus(CveEstatus As Integer, FolioFiscal As String, CveVenta As Integer) + ' Dim ObjVentas As New ClsVentas() + ' ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, "", Now, CveVenta) + ' ObjVentas.Dispose() + 'End Sub + 'Private Sub ActualizaCliente(NumCtaPago As String, MetodoDePago As Integer, CveCliente As Integer) + ' Dim ObjCliente As New ClsClientes + ' ObjCliente.UpdateClienteFactura(NumCtaPago, MetodoDePago, CveCliente, UsuarioActual.CveUsuario) + ' ObjCliente.Dispose() + 'End Sub #End Region #End Region - + #Region "M E T O D O S" Private Sub CargaOtrosConceptos() Dim ObjVentas As New ClsVentas @@ -14840,107 +14616,121 @@ Partial Class Ventas End Sub Private Function TraspasoAlmacen(ByRef ObjInventario As ClsInventarios, CveRemision As Integer, ByRef ObjConta As ClsContabilidad, ConSalida As Boolean, ConceptoMovimiento As Integer) As Boolean - Dim OcurrioError As Boolean = False - Dim DtMovimientos As DataTable - Dim DtMovimientosDetalles As DataTable - DtRemConceptosSurtidos = Nothing - - 'Obtenemos los movimientos detalle - If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then - - If ObjInventario.DtResultados.Rows.Count > 0 Then - - DtMovimientos = ObjInventario.DtResultados.FiltraParametros("", DistinctColumns:={"CveMovimiento"}) - - 'Si estamos facturando remisiones ajustamos por ventadetalle - If RemisionesLista.Count > 0 Then - Dim resultados = From DtRemisiones In DtRemisionesTmpDT - Join DtMovDet In ObjInventario.DtResultados.FiltraParametros("CvePS > 0") On DtRemisiones("CveVentaDetalleRemision").ToString.ToEntero Equals DtMovDet("CveVentaDetalle").ToString.ToEntero - Select DtMovDet - Try - DtMovimientosDetalles = resultados.CopyToDataTable - Catch ex As Exception - GuardaLog($"LOG IPP: Ventas LN: 10033. - DtRemisionesTmpDT.Rows.Count: {DtRemisionesTmpDT.Rows.Count} - ObjInventario.DtResultados.FiltraParametros('CvePS > 0').Rows.Count: {ObjInventario.DtResultados.FiltraParametros("CvePS > 0").Rows.Count}") - DtMovimientosDetalles = New DataTable - End Try - Else - DtMovimientosDetalles = ObjInventario.DtResultados.FiltraParametros("CvePS > 0") - End If - - For Each dr As DataRow In DtMovimientos.Rows - - 'Obtenemos los Movimientos de salida - If ObjInventario.GetMovimientos(dr("CveMovimiento").ToString.ToEntero, ConceptoMovimiento, -1, UsuarioActual.CveEmpresa) Then - - If ObjInventario.DtResultados.Rows.Count > 0 AndAlso DtMovimientosDetalles.Rows.Count > 0 Then - - Dim CveAlmacenSalida As Integer = ObjInventario.DtResultados(0)("CveAlmacen").ToString.ToEntero - Dim CveAlmacenEntrada As Integer = ObjInventario.DtResultados(0)("CveAlmacenRelacionado").ToString.ToEntero - Dim CveMoneda As Integer = ObjInventario.DtResultados(0)("CveMoneda").ToString.ToEntero - Dim CveTipoAlmacen As Integer = ObjInventario.DtResultados(0)("CveTipoAlmacen").ToString.ToEntero - - If (CveAlmacenEntrada > 0 AndAlso CveTipoAlmacen <> 1) Or RemisionesLista.Count = 0 Then 'Con remisiones parciales ignoramos las surtidas ya realizadas - - Dim MovDetalle As New DataTable - If RemisionesLista.Count > 0 Then - MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")} AND TieneSalidaxFactura IS NULL")) - Else - MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}") - End If - - If ErrorList.Count = 0 Then - If MovDetalle.Rows.Count > 0 Then - Dim CveMovimientoSalidaPorTraspaso = -1 - - 'Le damos salida de apartado por traspaso - CveMovimientoSalidaPorTraspaso = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenSalida, 8, CveMoneda, CveRemision) - If Not CveMovimientoSalidaPorTraspaso > 0 Then - OcurrioError = True - Exit For - End If - - 'Le damos entrada al general por traspaso - If Not OcurrioError Then - If Not GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenEntrada, 9, CveMoneda, CveRemision, CveMovimientoRelacionado:=CveMovimientoSalidaPorTraspaso) > 0 Then - OcurrioError = True - Exit For - End If - End If - - If Not OcurrioError Then - If ConSalida Then - 'Le damos salida normal - If Not GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenEntrada, 3, CveMoneda, ObjFactura.CveVenta, MovimientoPrePoliza:=True, ObjConta:=ObjConta) > 0 Then - OcurrioError = True - Exit For - End If - End If - End If - End If - Else - OcurrioError = True - End If - - MovDetalle.Dispose() - End If - - End If - - ElseIf ObjInventario.GetMovimientos(dr("CveMovimiento").ToString.ToEntero, 3, -1, UsuarioActual.CveEmpresa) Then - - 'Esquema viejo, evitamos que aparezca por surtir - If Not ObjInventario.ActualizarEsDevolucionVenta(ObjFactura.CveVenta, 2) Then - OcurrioError = True - Exit For - End If - - End If - Next - - End If - - End If - + Dim OcurrioError As Boolean = False + Try + Dim DtMovimientos As DataTable + Dim DtMovimientosDetalles As DataTable + DtRemConceptosSurtidos = Nothing + + 'Obtenemos los movimientos detalle + If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then + + If ObjInventario.DtResultados.Rows.Count > 0 Then + + DtMovimientos = ObjInventario.DtResultados.FiltraParametros("", DistinctColumns:={"CveMovimiento"}) + + 'Si estamos facturando remisiones ajustamos por ventadetalle + If RemisionesLista.Count > 0 Then + Dim resultados = From DtRemisiones In DtRemisionesTmpDT + Join DtMovDet In ObjInventario.DtResultados.FiltraParametros("CvePS > 0") On DtRemisiones("CveVentaDetalleRemision").ToString.ToEntero Equals DtMovDet("CveVentaDetalle").ToString.ToEntero + Select DtMovDet + Try + DtMovimientosDetalles = resultados.CopyToDataTable + Catch ex As Exception + GuardaLog($"LOG IPP: Ventas LN: 10033. - DtRemisionesTmpDT.Rows.Count: {DtRemisionesTmpDT.Rows.Count} - ObjInventario.DtResultados.FiltraParametros('CvePS > 0').Rows.Count: {ObjInventario.DtResultados.FiltraParametros("CvePS > 0").Rows.Count}") + DtMovimientosDetalles = New DataTable + End Try + Else + DtMovimientosDetalles = ObjInventario.DtResultados.FiltraParametros("CvePS > 0") + End If + + If DtMovimientos.Rows.Count > 0 Then + Dim GeneroMovimientoAlmacen As Boolean = False + + For Each dr As DataRow In DtMovimientos.Rows + + 'Obtenemos los Movimientos de salida + If ObjInventario.GetMovimientos(dr("CveMovimiento").ToString.ToEntero, ConceptoMovimiento, -1, UsuarioActual.CveEmpresa) Then + + If ObjInventario.DtResultados.Rows.Count > 0 AndAlso DtMovimientosDetalles.Rows.Count > 0 Then + Dim RowMovimiento As DataRow = ObjInventario.DtResultados(0) + + Dim CveAlmacenSalida As Integer = RowMovimiento("CveAlmacen").ToString.ToEntero() + Dim CveAlmacenEntrada As Integer = RowMovimiento("CveAlmacenRelacionado").ToString.ToEntero() + Dim CveMoneda As Integer = RowMovimiento("CveMoneda").ToString.ToEntero() + Dim CveTipoAlmacen As Integer = RowMovimiento("CveTipoAlmacen").ToString.ToEntero() + + If (CveAlmacenEntrada > 0 AndAlso CveTipoAlmacen <> 1) Or RemisionesLista.Count = 0 Then 'Con remisiones parciales ignoramos las surtidas ya realizadas + + Dim MovDetalle As New DataTable + + If RemisionesLista.Count > 0 Then + MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")} AND TieneSalidaxFactura IS NULL")) + Else + MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}") + End If + + If ErrorList.Count = 0 AndAlso MovDetalle.Rows.Count > 0 Then + Dim CveMovimientoSalidaPorTraspaso As Integer = -1 + + 'Le damos salida de apartado por traspaso + CveMovimientoSalidaPorTraspaso = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenSalida, 8, CveMoneda, CveRemision) + + If Not CveMovimientoSalidaPorTraspaso > 0 Then + OcurrioError = True + Exit For + End If + + 'Le damos entrada al general por traspaso + If Not OcurrioError Then + GeneroMovimientoAlmacen = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenEntrada, 9, CveMoneda, CveRemision, CveMovimientoRelacionado:=CveMovimientoSalidaPorTraspaso) > 0 + + If Not GeneroMovimientoAlmacen Then + OcurrioError = True + Exit For + End If + End If + + 'Le damos salida normal + If ConSalida AndAlso Not OcurrioError Then + GeneroMovimientoAlmacen = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenEntrada, 3, CveMoneda, ObjFactura.CveVenta, MovimientoPrePoliza:=True, ObjConta:=ObjConta) > 0 + + If Not GeneroMovimientoAlmacen Then + OcurrioError = True + Exit For + End If + End If + + Else + OcurrioError = True + End If + + MovDetalle.Dispose() + End If + + End If + + ElseIf ObjInventario.GetMovimientos(dr("CveMovimiento").ToString.ToEntero, 3, -1, UsuarioActual.CveEmpresa) Then + 'Esquema viejo, evitamos que aparezca por surtir + If Not ObjInventario.ActualizarEsDevolucionVenta(ObjFactura.CveVenta, 2) Then + OcurrioError = True + Exit For + End If + End If + Next + + OcurrioError = Not GeneroMovimientoAlmacen + End If + + End If + Else + OcurrioError = True + End If + + Catch ex As Exception + OcurrioError = True + OnError("Ocurrió un error al realizar el traspaso", ex) + End Try Return Not OcurrioError End Function Private Function CuadrarFacturaMovimientos(MovDetalle As DataTable) As DataTable @@ -15254,12 +15044,12 @@ Partial Class Ventas End If Return TieneError - End Function - 'Protected Sub LbVerInventario_Click(sender As Object, e As EventArgs) Handles LbVerInventario.Click - ' RegistraScript(String.Format("AbrirVentana('/Inventarios/PopUpExistenciasAlmacen.aspx?CvePS={0}',800,547,'N');", DdlPS.SelectedValue)) - 'End Sub + End Function + 'Protected Sub LbVerInventario_Click(sender As Object, e As EventArgs) Handles LbVerInventario.Click + ' RegistraScript(String.Format("AbrirVentana('/Inventarios/PopUpExistenciasAlmacen.aspx?CvePS={0}',800,547,'N');", DdlPS.SelectedValue)) + 'End Sub #End Region - + #Region " MANDA CORREO " Private Sub MandaMails(CveVenta As Integer, EnviarFactura As Boolean, XML As String, PDF As String) @@ -15339,11 +15129,11 @@ Partial Class Ventas ObjVentas.Dispose() End Try - End Sub + End Sub #End Region - + #Region " ESTIMACIONES " - + Protected Sub DdlContrato_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlContrato.SelectedIndexChanged Dim valueselect = DdlContrato.SelectedValue CargaDatosEstimaciones(CveCliente) @@ -15427,9 +15217,9 @@ Partial Class Ventas Catch ex As Exception Alert("No se pudo verificar la fecha del certificado", TipoMensaje.MsgError) End Try - End Sub + End Sub #End Region - + #Region "E V E N T O - B I T A C O R A" Protected Sub GvEB_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then @@ -15499,10 +15289,10 @@ Partial Class Ventas HttpContext.Current.Response.End() Archivo = Nothing - End Sub - + End Sub + #End Region - + #Region "BTN 'S" Protected Sub LnkActualizarOrdenProduccion_Click(sender As Object, e As EventArgs) If DdlOrdenProduccion.SelectedValue.ToEntero > 0 Then @@ -15912,9 +15702,9 @@ Partial Class Ventas Alert("Se asignó correctamente la cuenta terminal", JSBtnAceptar:="BtnRefrescarPagina();") End If ObjVentas.Dispose() - End Sub + End Sub #End Region - + #Region "CODIGO DE BARRAS" Protected Sub ChkClasificacion_CheckedChanged(sender As Object, e As EventArgs) If ChkClasificacion.Checked Then @@ -16126,10 +15916,10 @@ Partial Class Ventas GVBuscarPrecio.DataBind() UpBuscarPrecio.Update() - End Sub - + End Sub + #End Region - + #Region " CONDICIONES DE PAGO " Private Sub InicializaCondicionesPago() DtPagos = New DataTable @@ -16365,11 +16155,11 @@ Partial Class Ventas End If Return Retorno - End Function + End Function #End Region - + #Region " SERIE ALMACEN " - + Protected Sub BtnSerie_Click(sender As Object, e As EventArgs) Dim Row = CType(CType(sender, Button).NamingContainer, GridViewRow) @@ -16430,11 +16220,11 @@ Partial Class Ventas Next Return Retorno - End Function - - + End Function + + #End Region - + #Region " BUSCAR CLIENTE " Protected Sub BtnBuscarCliente_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnBuscarCliente.Click ViewState("CveCliente") = HdnCveCliente.Value.ToEntero @@ -16451,11 +16241,11 @@ Partial Class Ventas 'CARGA CONTRATOS VerificarContrato() - End Sub - - + End Sub + + #End Region - + #Region " INVENTARIO POR ENTREGA" Private Sub InventarioMov(Optional CveVentaPadre As Integer = -1) If CveVentaPadre > 0 Then @@ -16503,9 +16293,9 @@ Partial Class Ventas GvInv.DataSource = DtTemporal GvInv.DataBind() UpINV.Update() - End Sub + End Sub #End Region - + #Region "IMPUESTOS LOCALES" Private Sub GvImpuestosLocales2_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvImpuestosLocales2.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then @@ -16547,10 +16337,10 @@ Partial Class Ventas If Not ErrorCancelar Then ErrorCancelar = GuardarVentaImpuestosLocales(ObjVentas, ObjConta, ObjFactura, 1) Return ErrorCancelar - End Function - + End Function + #End Region - + #Region " DEVOLUCION ALMACEN " Private Sub InicializaDevolucionAlmacen() If Not GvInv.Rows.Count > 0 Then @@ -16594,10 +16384,10 @@ Partial Class Ventas UpnTools.Update() ObjVentas.Dispose() - End Sub - + End Sub + #End Region - + #Region "D I R E C C I O N E N V I O" Private Sub CargaDireccionesEnvio() Dim ObjClientes As New ClsClientes @@ -16668,9 +16458,9 @@ Partial Class Ventas TxtCP.Text = LblCP.Text.Trim UpBodyDireccion.Update() RegistraScript("$('#divAddDireccionEnvio').modal();") - End Sub + End Sub #End Region - + #Region " CARGA FACTURA OC " Private Sub CargaFacturaOC() @@ -16740,10 +16530,10 @@ Partial Class Ventas End If - End Sub - + End Sub + #End Region - + #Region "CargaFactura" Private Function CargaFactura(CveFactura As Integer) As String Dim RFC As String = "" @@ -17166,9 +16956,9 @@ Partial Class Ventas Else Return o.Value End If - End Function + End Function #End Region - + #Region "Metodos Viejos" Private Sub GeneraPDF(FechaFactura As DateTime, FolioFiscal As String, NoSerieCertificado As String, FechaCertificacion As DateTime, NoSerieCertificadoContribuyente As String, DTConceptos As DataTable, SelloCFDi As String, SelloSAT As String, CBB As String, Folio As String, RutaXML As String, EsVistaPrevia As Boolean, MuestraAlert As Boolean, Optional MR As ReportViewer = Nothing) @@ -17261,9 +17051,9 @@ Partial Class Ventas EsSupervisor = True GeneraPDFCotizacion(True) Alert("La cotización ha sido enviada al correo de nuestro cliente:" & Mail) - End Sub + End Sub #End Region - + #Region "Cancelar, Generar y mandar por correo el acuse de cancelación." Private Sub BtnEnviarMailCancelacion_Click(sender As Object, e As EventArgs) Handles BtnEnviarMailCancelacion.Click ImprimeCancelacion(CveVenta) @@ -18395,11 +18185,11 @@ Partial Class Ventas UpEstatus.Update() - End Sub - - + End Sub + + #End Region - + #Region "CiclosComerciales" Private Sub CargaCicloComercialURL() Dim ObjContratos As New ClsContratos @@ -18472,9 +18262,9 @@ Partial Class Ventas huboerror = True End If ObjContratos.Dispose() - End Sub + End Sub #End Region - + #Region "DESCARGAR E IMPRIMIR LISTADO" Public Sub DescargarFormato() Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\Formatos\FormatoVentas.xlsx" @@ -18691,9 +18481,9 @@ Partial Class Ventas StrReturn = "False|    - No se encontró " & Valor & " en la fila " & NumRow & ", columna " & Opt End If Return StrReturn - End Function + End Function #End Region - + #Region "P E D I D O S" Private Sub CargaNotificacionContrato() Dim ObjContratos As New ClsContratos @@ -18812,9 +18602,9 @@ Partial Class Ventas Return strBody.ToString - End Function + End Function #End Region - + #Region " CANCELAR PEDIDO " Protected Sub LBCancelarPedido_Click(sender As Object, e As EventArgs) Dim ObjVentas As New ClsVentas @@ -18832,12 +18622,10 @@ Partial Class Ventas End If ObjVentas.Dispose() - End Sub - + End Sub + #End Region - - - + #Region "D E V O L U C I O N D E P E D I D O " Private Sub CargaFacturaDevolucionPedido() Dim CveVenta As Integer = Me.CveVenta @@ -18974,11 +18762,11 @@ Partial Class Ventas UpPS.Update() UpCliente.Update() UpEstatus.Update() - End Sub + End Sub #End Region - + #Region " FLETES " - + Private Sub CargaFletes() If UsuarioActual.CveEmpresa <> 125 Or CveVenta > 0 Then @@ -18997,12 +18785,12 @@ Partial Class Ventas UpFletes.Update() ObjVentas.Dispose() - End Sub - - - + End Sub + + + #End Region - + #Region "A G R E G A R P S M O D A L" Private Sub CargaMetodosPSModal() CargaTipoProductos() @@ -19175,9 +18963,9 @@ Partial Class Ventas End If ObjPS.Dispose() - End Sub + End Sub #End Region - + #Region "P Y M E" Private Sub LnkAddVenta_Click(sender As Object, e As EventArgs) Handles LnkAddVenta.Click Modalidad = "A" @@ -19361,12 +19149,12 @@ Partial Class Ventas Private Sub DdlClasificacionPyME_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacionPyME.SelectedIndexChanged CargaPSPyME(DdlClasificacionPyME.SelectedValue.ToEntero, DdlPSPyME) UpClasificacionPyME.Update() - End Sub - - - + End Sub + + + #End Region - + #Region "REORDENAR" Protected Sub BtnReordenar_Click(sender As Object, e As EventArgs) Handles BtnReordenar.Click Dim sArray As String() @@ -19389,10 +19177,10 @@ Partial Class Ventas GvPS.DataBind() CalculaTotalesVenta() DTClon.Dispose() - End Sub - + End Sub + #End Region - + #Region " CONTRATO DE CONSIGNACION DE VENTA - SURTIDO DE ALMACÉN " Function RegistraAlmacenConsignacionVenta(ByRef ObjInventario As ClsInventarios, factura As Modelos.Factura) As Boolean If Not (UsuarioActual.Empresa.UsaInventarios AndAlso CveAlmacenExistenciasContrato > 0) Then @@ -19477,8 +19265,8 @@ Partial Class Ventas Return True - End Function - + End Function + #Region " AGREGA POR SERIE/LOTE " Private Sub CreaConsignacionSerieDetalle() If DtContratosSerieDetalle Is Nothing Then @@ -19656,12 +19444,12 @@ Partial Class Ventas Exit For End If Next - End Sub - + End Sub + #End Region - + #End Region - + #Region " ENVIAR SMS - CONFIRMACION DE TIMBRADO " Private Function EnviarSMSTimbrado(ByRef ObjEventos As ClsOIEventos) As Integer 'NOTA: @@ -19693,9 +19481,9 @@ Partial Class Ventas Else Return 2 End If - End Function + End Function #End Region - + #Region " COMPLEMENTOS PAGO " Private Sub CargaComplementosPago() @@ -19800,30 +19588,30 @@ Partial Class Ventas OnError("Ocurrió error al mandar MAIL", ex) End Try - End Sub + End Sub #End Region - + #Region "RELACIONAR FACTURAS A NC " - 'Private Sub CargaFacturasRelacionar() - - ' Dim ObjVentas As New ClsVentas - ' Dim dtt As DataTable = Nothing - ' If ObjVentas.GetVentas(UsuarioActual.CveEmpresa, "-1", "-1", -1, "-1", CveCliente, -1, 3, -1, - ' Now.AddYears(-1).ToShortDateString, Now.ToShortDateString, "-1", -1, -1, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then - ' If ObjVentas.DtResultados.Rows.Count > 0 Then - ' dtt = ObjVentas.DtResultados.FiltraParametros("TipoDocto IN ('Ing','Ant')") - ' End If - ' End If - ' ObjVentas.Dispose() - ' Alert(dtt.Rows.Count.ToString) - - ' GvRelacionarNC.DataSource = dtt - ' GvRelacionarNC.DataBind() - ' If dtt IsNot Nothing Then dtt.Dispose() - ' UPRelacionarNC.Update() - 'End Sub + 'Private Sub CargaFacturasRelacionar() + + ' Dim ObjVentas As New ClsVentas + ' Dim dtt As DataTable = Nothing + ' If ObjVentas.GetVentas(UsuarioActual.CveEmpresa, "-1", "-1", -1, "-1", CveCliente, -1, 3, -1, + ' Now.AddYears(-1).ToShortDateString, Now.ToShortDateString, "-1", -1, -1, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then + ' If ObjVentas.DtResultados.Rows.Count > 0 Then + ' dtt = ObjVentas.DtResultados.FiltraParametros("TipoDocto IN ('Ing','Ant')") + ' End If + ' End If + ' ObjVentas.Dispose() + ' Alert(dtt.Rows.Count.ToString) + + ' GvRelacionarNC.DataSource = dtt + ' GvRelacionarNC.DataBind() + ' If dtt IsNot Nothing Then dtt.Dispose() + ' UPRelacionarNC.Update() + 'End Sub #End Region - + #Region " DOCUMENTACION VENTAS" Property DtDocumentacionCliente As DataTable Get @@ -20096,9 +19884,9 @@ Partial Class Ventas UpModalTitleUploadDocumentoCliente.Update() UpModalButtonUploadDocumentoCliente.Update() RegistraScript("$('#DivDocsClienteUpload').modal({ backdrop: 'static', keyboard: false});", "modalOC") - End Sub + End Sub #End Region - + #Region " SALDAR VENTA " Protected Sub BtnSaldarVenta_Click(sender As Object, e As EventArgs) SaldarVenta() @@ -20290,11 +20078,11 @@ Partial Class Ventas ObjConta.Dispose() - End Sub + End Sub #End Region - + #Region "PAQUETERIA GUIAS" - + Protected Sub LnkAgregarGuia_Click(sender As Object, e As EventArgs) ''DivModalGuias 'DdlPaqueteria.Items.Clear() @@ -20726,9 +20514,9 @@ Partial Class Ventas End Try ObjEventos.Dispose() - End Sub + End Sub #End Region - + #Region " APLICAR NOTA DE CREDITO " Private Sub InicializaAplicarNC() 'If Not UsuarioActual.CveUsuario = 100 Then @@ -21209,10 +20997,10 @@ Partial Class Ventas DtVentasNC.Rows.Add(Dr) End If - End Sub - + End Sub + #End Region - + #Region " APLICA DEVOLUCION " Private Sub InicializaAplicaDevolucion() If Not UsuarioActual.CveUsuario = 100 Then @@ -21430,17 +21218,17 @@ Partial Class Ventas UpnTools.Update() UPObservaciones.Update() UpAntNC.Update() - End Sub + End Sub #End Region - + #Region "COMERCIO EXTERIOR" - - 'Public Sub InicializaComercioExterior() - ' 'CargoComercioExterior = True - ' 'CargaCombos() - ' CargaGvComercioExterior() - 'End Sub - + + 'Public Sub InicializaComercioExterior() + ' 'CargoComercioExterior = True + ' 'CargaCombos() + ' CargaGvComercioExterior() + 'End Sub + Public Sub CargaGvComercioExterior() GvComercioExterior.DataSource = TmpDT GvComercioExterior.DataBind() @@ -21520,10 +21308,10 @@ Partial Class Ventas Next Return True - End Function - + End Function + #End Region - + #Region "NOTIFICACIONES AVACE" Private Sub EnviarNotificacionAvance(NumeroContrato As String, DescripcionContrato As String, ContratoTipo As String, Cliente As String, CorreoVendedor As String, Optional MontoMaximo As Double = 0) @@ -21543,9 +21331,9 @@ Partial Class Ventas ObjMail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Cuerpo) - End Sub + End Sub #End Region - + #Region "Comercio Exterior" Private Sub CargaPais() DdlComExtPais.Items.Clear() @@ -21632,9 +21420,9 @@ Partial Class Ventas gvr.FCTextBox("TxtCantidad").Text = (gvr.FCTextBox("TxtCantidad").Text.ToDecimal * TxtComExtConvertir.Text.ToDecimal).ToString gvr.FCTextBox("TxtValorUnitario").Text = (gvr.FCTextBox("TxtValorUnitario").Text.ToDecimal / TxtComExtConvertir.Text.ToDecimal).ToString Next - End Sub + End Sub #End Region - + Private Sub BtnFolioFiscalAsignar_Click(sender As Object, e As EventArgs) Handles BtnFolioFiscalAsignar.Click Dim ObjVentas As New ClsVentas() If ObjVentas.UpdateVentaFolioFiscal(TxtModalFolioFiscal.Text.Trim, CveVenta, UsuarioActual.CveEmpresa) Then @@ -21642,8 +21430,8 @@ Partial Class Ventas RegistraScript("$('#ModalFolioFiscal').modal('hide')") End If ObjVentas.Dispose() - End Sub - + End Sub + #Region "FORMATO CICOVISA" Protected Sub LnkImprimirFormatoCicovisa_Click(sender As Object, e As EventArgs) Dim ObjVentas As New ClsVentas @@ -21684,9 +21472,9 @@ Partial Class Ventas params.Add(New ReportParameter("Guia", Guia)) ImprimirPDF("Empresas/Grales/Formatos/Cicovisa.rdlc", Dt, params, String.Format("Formato Cicovisa -{0}", Now.ToDateTime.ToShortDateString)) End If - End Sub + End Sub #End Region - + #Region "REQUIERE OC" Protected Sub btnBuscarOCRegistrada_Click(sender As Object, e As EventArgs) Dim ObjVentas As New ClsVentas @@ -21699,9 +21487,9 @@ Partial Class Ventas End If End If ObjVentas.Dispose() - End Sub + End Sub #End Region - + #Region "CLASIFICACIONES DETALLES" Protected Sub DdlClasificacionPS_SelectedIndexChanged(sender As Object, e As EventArgs) CargaClasificacionesDetalles() @@ -21754,13 +21542,13 @@ Partial Class Ventas Private Sub CambiaMetodoPago33() CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero) - End Sub - + End Sub + #End Region - - - - + + + + #Region " COTIZACIONES - EDITAR " Private Sub BtnPermisoEditarCotizacion_Click(sender As Object, e As EventArgs) Handles BtnPermisoEditarCotizacion.Click ModalidadEdicion = True @@ -21929,10 +21717,10 @@ Partial Class Ventas End If ObjVentas.Dispose() - End Sub - + End Sub + #End Region - + #Region " COTIZACIONES - SIN FACTURAR " Private Sub LnkCotizaciones_Click(sender As Object, e As EventArgs) Handles LnkCotizaciones.Click If ChkCotProductos.Checked Then @@ -22149,10 +21937,10 @@ Partial Class Ventas Else Return False End If - End Function - + End Function + #End Region - + #Region " COTIZACIONES - FACTURAR " Private Function PreparaFacturarCotizacion() As Boolean 'LIMPIAMOS @@ -22190,10 +21978,10 @@ Partial Class Ventas End If Return True - End Function + End Function #End Region - - + + #Region " REMISIONES - SIN FACTURAR " Protected Sub ChkCanRem_CheckedChanged(sender As Object, e As EventArgs) If ChkCanRem.Checked Then @@ -22537,10 +22325,10 @@ Partial Class Ventas End If Next Return Nothing - End Function - + End Function + #End Region - + #Region " REMISIONES - FACTURAR " Private Sub ActivaFacturarRemision() 'If UsuarioActual.CveUsuario <> 100 Then @@ -22635,10 +22423,10 @@ Partial Class Ventas End If Return True - End Function + End Function #End Region - - + + #Region " PEDIDOS2 - SIN FACTURAR " Protected Sub LnkPedido2SinFacturar_Click(sender As Object, e As EventArgs) @@ -22857,10 +22645,10 @@ Partial Class Ventas Else Return False End If - End Function - + End Function + #End Region - + #Region " PEDIDOS2 - FACTURAR " Private Function PreparaFacturarPedido() As Boolean 'LIMPIAMOS @@ -22894,12 +22682,12 @@ Partial Class Ventas TxtObsFact.Text = String.Format("Pedido: {0}-{1} {2}", LblSerie.Text, TxtFolio.Text, If(TxtObsFact.Text.Length > 0, $"({TxtObsFact.Text})", "")) Return True - End Function + End Function #End Region - - + + #Region " BOTONERA - ACCIONES DE ABAJO " - + #Region " CREAR APARTIR DE " Protected Sub BtnCrearApartirDe_Click(sender As Object, e As System.EventArgs) Handles BtnCrearApartirDe.Click ''[IPP-2Novimebre2018] COMENTADO POR SER UNA FUNCIONALIDAD SUPER RARA! LA REEMPLAZA EL EDITAR COTIZACION @@ -23126,9 +22914,9 @@ Partial Class Ventas CargaRestriccionesCreditoCliente() UpParametros.Update() - End Sub + End Sub #End Region - + #Region " GENERAR FACTURA " Protected Sub LBFacturarIngreso_Click(sender As Object, e As EventArgs) EraCotizacion = If(DdlTipoComprobante.SelectedValue = "Cot", 1, 0) @@ -23139,9 +22927,9 @@ Partial Class Ventas EraCotizacion = If(DdlTipoComprobante.SelectedValue = "Cot", 1, 0) 'DdlTipoComprobante.SelectedValue = "Ant" EmitirDocumentoNuevo("Ant") - End Sub + End Sub #End Region - + #Region " GENERAR REMISION " Private Sub BtnGenerarRemision_Click(sender As Object, e As EventArgs) Handles BtnGenerarRemision.Click If DdlTipoComprobante.SelectedValue.Contiene("Cot", "PA", "Pd2") Then 'CUANDO ES COTIZACION O PEDIDOA O PEDIDO2 SE HARA REMISION @@ -23149,20 +22937,20 @@ Partial Class Ventas 'DdlTipoComprobante.SelectedValue = "Rem" EmitirDocumentoNuevo("Rem") End If - End Sub + End Sub #End Region - + #Region "GENERAR AUTORIZACIÓN" - + Protected Sub BtnGeneraAutorizacion_Click(sender As Object, e As EventArgs) If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then EmitirDocumentoNuevo("PA") End If - End Sub - + End Sub + #End Region - + #Region " EMITIR DOCUMENTO NUEVO " Private Sub EmitirDocumentoNuevo(TipoDoctoNuevo As String) Dim FolioFijo As Integer = 0 @@ -23209,13 +22997,13 @@ Partial Class Ventas If FolioFijo = 0 Then CargaFolios() 'RECARGA FOLIOS CON EL NUEVO TIPO DOCTO EmitirImprimir() 'MANDA A EMITIR - PROCESO VIEJO - End Sub + End Sub #End Region - + #End Region - + #Region "ACTUALIZAR FECHA DE VENCIMIENTO" - + Protected Sub LnkUpdateFechaVencimiento_Click(sender As Object, e As EventArgs) Dim ObjVentas As New ClsVentas Dim ObjEventos As New ClsOIEventos(ObjVentas.IniciaTransacSQL()) @@ -23257,14 +23045,14 @@ Partial Class Ventas End Sub Private Sub BtnRefrescarPagina_Click(sender As Object, e As EventArgs) Handles BtnRefrescarPagina.Click Response.Redirect($"~/Ventas/Ventas.aspx?CveVenta={Me.CveVenta}") - End Sub - + End Sub + #End Region - - + + #Region "U S A D O S" - - + + Private Sub CalculaUsados() @@ -23444,11 +23232,11 @@ Partial Class Ventas Return Resultado - End Function - - + End Function + + #End Region - + #Region "PORCENTAJE IVA" Protected Sub DdlIVA_SelectedIndexChanged(sender As Object, e As EventArgs) If Not CveVenta > 0 Or EsCreaApartirDe Or CveDevolucion > 0 Then RecalculaIVA() @@ -23476,13 +23264,8 @@ Partial Class Ventas End If Next CalculaTotalesVenta() - End Sub - + End Sub + #End Region - - - - - - + End Class \ No newline at end of file From 836f0fe7df96fe103644caecf117b02ee7013131 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Sat, 17 Aug 2019 13:52:36 -0700 Subject: [PATCH 08/15] --- .gitignore | 3 ++- App_Code/ClsPaginas.vb | 14 ++++++++++++-- Ventas/RepConciliacionEmitidosSat.aspx | 5 +++-- Ventas/RepConciliacionEmitidosSat.aspx.cs | 8 ++++---- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 87735880e..fc8032bc3 100644 --- a/.gitignore +++ b/.gitignore @@ -265,4 +265,5 @@ paket-files/ # Python Tools for Visual Studio (PTVS) __pycache__/ -*.pyc \ No newline at end of file +*.pyc +/Utilerias diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 0b2f51307..6315f2c4b 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -389,7 +389,17 @@ Public Class ClsPaginas Property GlobalDTPSATUM() As DataTable Get - GlobalDTPSATUM = DirectCast(Application("GlobalDTPSATUM"), DataTable) + + 'System.Data.EnumerableRowCollection + If Not IsNothing(Application("GlobalDTPSATUM")) Then + If Application("GlobalDTPSATUM").GetType().IsSubclassOf(GetType(EnumerableRowCollection)) Then + Return DirectCast(Application("GlobalDTPSATUM"), EnumerableRowCollection(Of DataRow)).CopyToDataTable() + Else + Return DirectCast(Application("GlobalDTPSATUM"), DataTable) + End If + Else + Return Nothing + End If End Get Set(value As DataTable) Application("GlobalDTPSATUM") = value @@ -3320,7 +3330,7 @@ Public Class ClsPaginas PaginaDict = New System.Collections.Hashtable PaginaDict.Add("/Inicio.aspx".ToUpper(), -1) - + PaginaDict.Add("/Ventas/RepConciliacionEmitidosSat.aspx".ToUpper(), -1) PaginaDict.Add("/Nomina/CatConceptos2.aspx".ToUpper(), -1) PaginaDict.Add("/Nomina/Aguinaldo.aspx".ToUpper(), -1) diff --git a/Ventas/RepConciliacionEmitidosSat.aspx b/Ventas/RepConciliacionEmitidosSat.aspx index 2e7772fdc..9be90a3db 100644 --- a/Ventas/RepConciliacionEmitidosSat.aspx +++ b/Ventas/RepConciliacionEmitidosSat.aspx @@ -98,10 +98,11 @@ <%-- --%> - + - + r + diff --git a/Ventas/RepConciliacionEmitidosSat.aspx.cs b/Ventas/RepConciliacionEmitidosSat.aspx.cs index 94dc209c0..1f4e28eae 100644 --- a/Ventas/RepConciliacionEmitidosSat.aspx.cs +++ b/Ventas/RepConciliacionEmitidosSat.aspx.cs @@ -388,7 +388,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas Row["CveTipoPS"] = DrPS["CveTipoPS"]; Row["CveTipoInvPS"] = DrPS["Inv_CveMetodoInventario"]; Row["CveTamaño"] = DrPS["CveTamaño"]; - ADSistemaLibrary.SatXml.CFDIConceptoImpuesto impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Impuesto == "Traslado"); + ADSistemaLibrary.SatXml.CFDIConceptoImpuesto impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Traslado"); if (impuesto != null) { Row["PorcentajeIVA"] = impuesto.TasaOCuota; @@ -400,7 +400,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas Row["ImporteIVA"] = 0; } Row["IVA"] = Row["PorcentajeIVA"]; - impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "003" && x.Impuesto == "Traslado"); + impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "003" && x.Tipo == "Traslado"); if (impuesto != null) { Row["PorcentajeIEPS"] = impuesto.TasaOCuota; @@ -413,7 +413,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas Row["ImporteIEPS"] = 0; Row["IEPS"] = 0; } - impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "001" && x.Impuesto == "Retencion"); + impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "001" && x.Tipo == "Retencion"); if (impuesto != null) { Row["ImporteRetISR"] = impuesto.Importe; @@ -424,7 +424,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas Row["ImporteRetISR"] = 0; Row["PorcentajeRetISR"] = 0; } - impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Impuesto == "Retencion"); + impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Retencion"); if (impuesto != null) { Row["ImporteRetIVA"] = impuesto.Importe; From 8ecef007424f735ac58483122db0ad31fef708f5 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 17 Aug 2019 13:59:43 -0700 Subject: [PATCH 09/15] Seleccionar forma de pago de la sucursal del cliente --- Ventas/Ventas.aspx.vb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 82e039357..8f60dce37 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -5103,10 +5103,12 @@ Partial Class Ventas End If If CveVenta <= 0 Then - CveMetodoPagoCliente = ObjCliente.DtResultados.Rows(0)("CveMetodoPago").ToString.ToEntero + CveMetodoPagoCliente = ObjCliente.DtResultados.Rows(0)("CveMetodoPago").ToString.ToEntero + + DdlMetodoPago33.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveMetodoPago33").ToString) + DdlMetodoPago33_SelectedIndexChanged(DdlMetodoPago33, EventArgs.Empty) DdlFormaPago33.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveFormaPago33").ToString) - DdlMetodoPago33.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveMetodoPago33").ToString) DdlUsoCFDI.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveUsoCFDI").ToString) End If @@ -5131,10 +5133,12 @@ Partial Class Ventas PlazoCobranza = ObjCliente.PlazoCobranza If CveVenta <= 0 Then - CveMetodoPagoCliente = ObjCliente.CveMetodoPago + CveMetodoPagoCliente = ObjCliente.CveMetodoPago + + DdlMetodoPago33.SelectedValueExist(ObjCliente.CveMetodoPago33) + DdlMetodoPago33_SelectedIndexChanged(DdlMetodoPago33, EventArgs.Empty) DdlFormaPago33.SelectedValueExist(ObjCliente.CveFormaPago33) - DdlMetodoPago33.SelectedValueExist(ObjCliente.CveMetodoPago33) DdlUsoCFDI.SelectedValueExist(ObjCliente.CveUsoCFDI) End If From 821ccd5d31adc8807de8436208672db1140607f2 Mon Sep 17 00:00:00 2001 From: Rene Molina Date: Sun, 18 Aug 2019 19:50:54 -0700 Subject: [PATCH 10/15] TipoComprobante. como filtro --- App_Code/ClsCompras.vb | 3 ++- Compras/eFacturas.aspx.vb | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index 4ac7964f3..d51086b15 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -1618,7 +1618,7 @@ Public Class ClsCompras #Region "F A C T U R A S " - Public Function GetFacturas(CveFactura As Integer, Folio As String, FechaFacturaI As Date, FechaFacturaF As Date, RFC As String, Proveedor As String, FueValidado As Integer, CveResponsable As Integer, CveProveedorClasificacion As Integer, CveTipoProveedor As Integer, CveEmpresa As Integer) As Boolean + Public Function GetFacturas(CveFactura As Integer, Folio As String, FechaFacturaI As Date, FechaFacturaF As Date, RFC As String, Proveedor As String, FueValidado As Integer, CveResponsable As Integer, CveProveedorClasificacion As Integer, CveTipoProveedor As Integer, TipoComprobante As String, CveEmpresa As Integer) As Boolean Dim OnError As Boolean = False 'StrSQL.Clear() @@ -1653,6 +1653,7 @@ Public Class ClsCompras .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveProveedorClasificacion", SqlDbType.Int).Value = CveProveedorClasificacion .Add("@CveTipoProveedor", SqlDbType.Int).Value = CveTipoProveedor + .Add("@TipoComprobante", SqlDbType.VarChar).Value = TipoComprobante End With Try diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index 9ded18cff..74d215691 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -658,6 +658,7 @@ Partial Class Compras_eFacturas Folio = If(TxtFolio.Text.Trim.Length > 0, String.Format("%{0}%", TxtFolio.Text.Trim.ToUpper), "-1") RFC = "-1" 'If(TxtRFC.Text.Trim.Length > 0, TxtRFC.Text.Trim, "-1") Proveedor = If(TxtProveedor.Text.Trim.Length > 0, String.Format("%{0}%", TxtProveedor.Text.Trim.ToUpper.Replace(" ", "%")), "-1") + Dim TipoComprobante As String = "-1" UsuarioActual.Sesion("eFact-Proveedor") = TxtProveedor.Text.Trim If Folio = "" Then UsuarioActual.Sesion("eFact-FI") = txtFechaI.Text @@ -673,7 +674,7 @@ Partial Class Compras_eFacturas End If Dim DtPagos As DataTable = Nothing Dim ObjDatos As New ClsCompras - If ObjDatos.GetFacturas(-1, Folio, FechaI, FechaF, RFC, Proveedor, DdlValidado.SelectedValue.ToEntero, DdlResponsable.SelectedValue.ToEntero, DdlClasificacionProv.SelectedValue.ToEntero, DdlCveTipoProveedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + If ObjDatos.GetFacturas(-1, Folio, FechaI, FechaF, RFC, Proveedor, DdlValidado.SelectedValue.ToEntero, DdlResponsable.SelectedValue.ToEntero, DdlClasificacionProv.SelectedValue.ToEntero, DdlCveTipoProveedor.SelectedValue.ToEntero, TipoComprobante, UsuarioActual.CveEmpresa) Then If ObjDatos.DtResultados.Rows.Count > 0 Then GvD.DataSource = ObjDatos.DtResultados.FiltraParametros("TipoComprobante <> 'P'") '.AsEnumerable().Take(100).CopyToDataTable() DtPagos = ObjDatos.DtResultados.FiltraParametros("TipoComprobante = 'P'") @@ -1246,7 +1247,7 @@ Partial Class Compras_eFacturas Dim Folio = If(TxtFolio.Text.Trim.Length > 0, String.Format("%{0}%", TxtFolio.Text.Trim.ToUpper), "-1") Dim Proveedor = If(TxtProveedor.Text.Trim.Length > 0, String.Format("%{0}%", TxtProveedor.Text.Trim.ToUpper.Replace(" ", "%")), "-1") - If ObjDatos.GetFacturas(-1, Folio, txtFechaI.Text.Trim.ToDate, txtFechaF.Text.Trim.ToDate, "-1", Proveedor, DdlValidado.SelectedValue.ToEntero, DdlResponsable.SelectedValue.ToEntero, DdlClasificacionProv.SelectedValue.ToEntero, DdlCveTipoProveedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + If ObjDatos.GetFacturas(-1, Folio, txtFechaI.Text.Trim.ToDate, txtFechaF.Text.Trim.ToDate, "-1", Proveedor, DdlValidado.SelectedValue.ToEntero, DdlResponsable.SelectedValue.ToEntero, DdlClasificacionProv.SelectedValue.ToEntero, DdlCveTipoProveedor.SelectedValue.ToEntero, "-1", UsuarioActual.CveEmpresa) Then Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) From cd8d8efcab2587baf44699cd2d9bc6ef02d3ec91 Mon Sep 17 00:00:00 2001 From: Rene Molina Date: Sun, 18 Aug 2019 19:56:09 -0700 Subject: [PATCH 11/15] TipoComprobante como filtro --- Compras/Proveedores.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Compras/Proveedores.aspx.vb b/Compras/Proveedores.aspx.vb index 01d316185..06cf44aa7 100644 --- a/Compras/Proveedores.aspx.vb +++ b/Compras/Proveedores.aspx.vb @@ -484,7 +484,7 @@ Partial Class Compras_Proveedores Private Function CargadeFactura(CveFactura As Integer) As Integer Dim ObjeFacturas As New ClsCompras - If ObjeFacturas.GetFacturas(CveFactura, "-1", Now.AddYears(-2), Now, "-1", "-1", -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then + If ObjeFacturas.GetFacturas(CveFactura, "-1", Now.AddYears(-2), Now, "-1", "-1", -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa) Then Dim XMLDoc As New XmlDocument Try From 8832ae07cf5f026d30c9660e86553278429e0609 Mon Sep 17 00:00:00 2001 From: Rene Molina Date: Sun, 18 Aug 2019 20:00:40 -0700 Subject: [PATCH 12/15] Filtro de tipo de comprobante --- Compras/Compras.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 2edcec263..105ca798c 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1618,7 +1618,7 @@ Partial Class Compras_Compras Private Function CargaFactura(CveFactura As Integer) As String Dim ObjeFacturas As New ClsCompras Dim RFC As String = "" - If ObjeFacturas.GetFacturas(CveFactura, "-1", Now.AddYears(-3), Now, "-1", "-1", -1, -1, -1, -1, UsuarioActual.CveEmpresa) AndAlso ObjeFacturas.DtResultados.Rows.Count > 0 Then + If ObjeFacturas.GetFacturas(CveFactura, "-1", Now.AddYears(-3), Now, "-1", "-1", -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa) AndAlso ObjeFacturas.DtResultados.Rows.Count > 0 Then Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0) ' no toma la cero, porque es el totalizador Dim XMLDoc As New XmlDocument From a64a9c65a8d20512b176108f6a2995e694a9161c Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Mon, 19 Aug 2019 10:06:27 -0500 Subject: [PATCH 13/15] actualizando /Compras/eFacturas --- Compras/eFacturas.aspx | 7 +++++++ Compras/eFacturas.aspx.vb | 5 ++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Compras/eFacturas.aspx b/Compras/eFacturas.aspx index 5e3123081..a3b6472f7 100644 --- a/Compras/eFacturas.aspx +++ b/Compras/eFacturas.aspx @@ -154,6 +154,13 @@ +

  • Tipo Comprobante + + + + + +
  • diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index 74d215691..683c2a728 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -658,7 +658,6 @@ Partial Class Compras_eFacturas Folio = If(TxtFolio.Text.Trim.Length > 0, String.Format("%{0}%", TxtFolio.Text.Trim.ToUpper), "-1") RFC = "-1" 'If(TxtRFC.Text.Trim.Length > 0, TxtRFC.Text.Trim, "-1") Proveedor = If(TxtProveedor.Text.Trim.Length > 0, String.Format("%{0}%", TxtProveedor.Text.Trim.ToUpper.Replace(" ", "%")), "-1") - Dim TipoComprobante As String = "-1" UsuarioActual.Sesion("eFact-Proveedor") = TxtProveedor.Text.Trim If Folio = "" Then UsuarioActual.Sesion("eFact-FI") = txtFechaI.Text @@ -674,7 +673,7 @@ Partial Class Compras_eFacturas End If Dim DtPagos As DataTable = Nothing Dim ObjDatos As New ClsCompras - If ObjDatos.GetFacturas(-1, Folio, FechaI, FechaF, RFC, Proveedor, DdlValidado.SelectedValue.ToEntero, DdlResponsable.SelectedValue.ToEntero, DdlClasificacionProv.SelectedValue.ToEntero, DdlCveTipoProveedor.SelectedValue.ToEntero, TipoComprobante, UsuarioActual.CveEmpresa) Then + If ObjDatos.GetFacturas(-1, Folio, FechaI, FechaF, RFC, Proveedor, DdlValidado.SelectedValue.ToEntero, DdlResponsable.SelectedValue.ToEntero, DdlClasificacionProv.SelectedValue.ToEntero, DdlCveTipoProveedor.SelectedValue.ToEntero, DdlTipoComprobante.SelectedValue.ToString, UsuarioActual.CveEmpresa) Then If ObjDatos.DtResultados.Rows.Count > 0 Then GvD.DataSource = ObjDatos.DtResultados.FiltraParametros("TipoComprobante <> 'P'") '.AsEnumerable().Take(100).CopyToDataTable() DtPagos = ObjDatos.DtResultados.FiltraParametros("TipoComprobante = 'P'") @@ -1247,7 +1246,7 @@ Partial Class Compras_eFacturas Dim Folio = If(TxtFolio.Text.Trim.Length > 0, String.Format("%{0}%", TxtFolio.Text.Trim.ToUpper), "-1") Dim Proveedor = If(TxtProveedor.Text.Trim.Length > 0, String.Format("%{0}%", TxtProveedor.Text.Trim.ToUpper.Replace(" ", "%")), "-1") - If ObjDatos.GetFacturas(-1, Folio, txtFechaI.Text.Trim.ToDate, txtFechaF.Text.Trim.ToDate, "-1", Proveedor, DdlValidado.SelectedValue.ToEntero, DdlResponsable.SelectedValue.ToEntero, DdlClasificacionProv.SelectedValue.ToEntero, DdlCveTipoProveedor.SelectedValue.ToEntero, "-1", UsuarioActual.CveEmpresa) Then + If ObjDatos.GetFacturas(-1, Folio, txtFechaI.Text.Trim.ToDate, txtFechaF.Text.Trim.ToDate, "-1", Proveedor, DdlValidado.SelectedValue.ToEntero, DdlResponsable.SelectedValue.ToEntero, DdlClasificacionProv.SelectedValue.ToEntero, DdlCveTipoProveedor.SelectedValue.ToEntero, DdlTipoComprobante.SelectedValue.ToString, UsuarioActual.CveEmpresa) Then Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) From 0dbbf1601230b49f2f309fe995b89586cfbe5655 Mon Sep 17 00:00:00 2001 From: Rene Molina Date: Mon, 19 Aug 2019 09:08:37 -0700 Subject: [PATCH 14/15] row comisiones, siempre visible, sin importar la empresa --- Bancos/ProveedoresAbonar.aspx.vb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index 672ec98f1..37a12c668 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -310,9 +310,9 @@ Partial Class Bancos_ProveedoresAbonar ViewState("CveCuentaRetISR") = 0 End If - If UsuarioActual.CveEmpresa.Contiene(1, 4, 5, 7, 11, 12, 72, 80, 126, 119, 122,145) Then - rowComisiones.Visible = True - End If + 'If UsuarioActual.CveEmpresa.Contiene(1, 4, 5, 7, 11, 12, 72, 80, 126, 119, 122,145) Then + ' rowComisiones.Visible = True + 'End If IdCuenta = 0 CveCuentaB = 0 From 83f52ddd40403841db10f78f7804d633e4de506e Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Mon, 19 Aug 2019 09:56:32 -0700 Subject: [PATCH 15/15] --- App_Code/ClsPaginas.vb | 8 +- Sistemas/SessionesActivas.aspx.vb | 14 +- Ventas/RepConciliacionEmitidosSat.aspx.cs | 268 +++++++++++++++------- 3 files changed, 199 insertions(+), 91 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 6315f2c4b..04ad93303 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3318,9 +3318,6 @@ Public Class ClsPaginas - 'Protected Overridable Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender - - 'End Sub Private Function Obt_ClavePagina(Pagina As String) As Integer Dim Retorno As Integer @@ -4671,11 +4668,14 @@ Public Class ClsPaginas Mensaje.Alert(Mensaje, pOpcion, JSBtnAceptar, TimeoutToast:=timeout) End If End Sub - Protected Overrides Sub SavePageStateToPersistenceMedium(pviewState As Object) + Protected Overridable Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender If Not IsNothing(ViewState("strToastMsglargonoreplace")) AndAlso ViewState("strToastMsglargonoreplace").ToString.Length > 0 Then RegistraScript(ViewState("strToastMsglargonoreplace").ToString(), "esteseraunticklargoparaquenosesobrescribaconotro") ViewState("strToastMsglargonoreplace") = Nothing End If + + End Sub + Protected Overrides Sub SavePageStateToPersistenceMedium(pviewState As Object) 'If Request.Form("__VIEWSTATE_KEY") IsNot Nothing Then Cache.Remove(Request.Form("__VIEWSTATE_KEY")) 'elimino la cachado anteriormente Dim VSKey As String = String.Format("VIEWSTATE_{0}_{1}_{2}", Session.SessionID, Request.Path, Date.Now.Ticks) 'Cache.Add(VSKey, pviewState, Nothing, Date.Now.AddMinutes(60), Cache.NoSlidingExpiration, CacheItemPriority.Default, Nothing) 'Store the ViewState on Cache diff --git a/Sistemas/SessionesActivas.aspx.vb b/Sistemas/SessionesActivas.aspx.vb index 169069e5d..d75f57267 100644 --- a/Sistemas/SessionesActivas.aspx.vb +++ b/Sistemas/SessionesActivas.aspx.vb @@ -16,13 +16,13 @@ Partial Class SessionesActivas End Property Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then - - Dim listacve As New List(Of String) - listacve.Add("1815") - Notificaciones.AlertaVentana("notificacion", listacve, timeoutseconds:=0) - - RCveUsuario = "0" - ClsSisNotificaciones.SendNotificacionERP(100, "Titulo", "Hola Mundo", 1) + + ' Dim listacve As New List(Of String) + ' listacve.Add("1815") + ' Notificaciones.AlertaVentana("notificacion", listacve, timeoutseconds:=0) + + ' RCveUsuario = "0" + 'ClsSisNotificaciones.SendNotificacionERP(100, "Titulo", "Hola Mundo", 1) CargaDatos("") End If End Sub diff --git a/Ventas/RepConciliacionEmitidosSat.aspx.cs b/Ventas/RepConciliacionEmitidosSat.aspx.cs index 1f4e28eae..649c309c0 100644 --- a/Ventas/RepConciliacionEmitidosSat.aspx.cs +++ b/Ventas/RepConciliacionEmitidosSat.aspx.cs @@ -24,6 +24,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas DdlSubProyectoDatos.DataSource = get_GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1).FiltraParametros("EsSucursal = True "); DdlSubProyectoDatos.DataBind(); DdlClasificacion.DataSource = get_GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion: 1).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby: "Clasificacion"); + DdlClasificacion.DataBind(); @@ -43,98 +44,184 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas DdlPS.setEsWebService(false); DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion: CveClasificacion, Estatus: 1, AplicaParaVenta: 1); DdlPS.ddl.DataBind(); - } + } } } protected void CargaConciliacionemitidasSATGet() { ClsVentas ObjV = new ClsVentas(); ObjV.ConciliacionemitidasSATGet(UsuarioActual.CveEmpresa); - GVConciliacionemitidasSAT.DataSource = ObjV.DtResultados; + GVConciliacionemitidasSAT.DataSource = ObjV.DtResultados.FiltraParametros("", "CveVenta"); ObjV.Dispose(); GVConciliacionemitidasSAT.DataBind(); UpDatosReporte.Update(); + + } + private void registrarventa(GridViewRow gvrow) + { + + { + + string ruta = gvrow.DataKey("RutaXml"); + strErrores = new StringBuilder(); + XmlSatCFDI objxml = null; + Modelos.Factura objfact = null; + bool continuar = true; + objxml = XmlSatCFDI.readXML(ruta); + continuar = continuar && (objxml != null); + if (continuar) + { + + objfact = GetFacturaFromXML(objxml); + } + continuar = continuar && (objfact != null); + if (continuar) + { + + // Dim As New (ObjVentas.IniciaTransacSQL()) + // Dim As = Nothing + // Dim MensajeAlert = New StringBuilder + ClsVentas ObjVentas = new ClsVentas(); + ClsInventarios ObjInventario = new ClsInventarios(ObjVentas.IniciaTransacSQL()); + ClsContabilidad ObjConta = new ClsContabilidad(ObjVentas.IniciaTransacSQL()); + ClsContratos ObjContr = new ClsContratos(ObjVentas.IniciaTransacSQL()); + ClsOS ObjOS = new ClsOS(ObjVentas.IniciaTransacSQL()); + ClsBancos ObjBancos = new ClsBancos(ObjVentas.IniciaTransacSQL()); + ClsClientes ObjClientes = new ClsClientes(ObjVentas.IniciaTransacSQL()); + ClsOIEventos ObjEventos = new ClsOIEventos(ObjVentas.IniciaTransacSQL()); + ClsCGame ObjCGame = new ClsCGame(ObjVentas.IniciaTransacSQL()); + ClsEdocumentacion ObjDocCliente = new ClsEdocumentacion(ObjVentas.IniciaTransacSQL()); + ClsAcumuladores ObjAcum = new ClsAcumuladores(ObjVentas.IniciaTransacSQL()); + ClsContPAQi ObjContPaq = null; + //StringBuilder MensajeAlert = new StringBuilder() ; + try + { + objfact.GuardarVenta(ref objfact, ref ObjVentas, ref ObjConta, ref ObjInventario, ref ObjContr, ref objfact.DtDetalle, objfact.CveNCaVincular, ref ObjContPaq, ref ObjBancos, ref ObjOS, ref ObjEventos, ref ObjCGame, ref ObjClientes, ObjAcum: ObjAcum); + + } + catch (Exception) + { + objfact.CveVenta = -1; + } + if (ObjVentas.UpdateEstatusFactura(3, objxml.complemento.UUID, "", DateTime.ParseExact(objxml.comprobante.Fecha.Replace("T", " "), "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), ObjVentas.CveVenta, CvePAC: 4)) + if (objfact.CveVenta > 0 && objfact.ErrorList.Count == 0) + { + ObjVentas.Commit(); + } + else + { + foreach (string item in objfact.ErrorList) + { + strErrores.AppendLine("
    "); + strErrores.AppendLine(item); + } + objfact.CveVenta = -1; + ObjVentas.RollBack(); + } + ObjVentas.Dispose(); + ObjConta.Dispose(); + ObjInventario.Dispose(); + ObjCGame.Dispose(); + ObjContr.Dispose(); + ObjDocCliente.Dispose(); + ObjClientes.Dispose(); + ObjAcum.Dispose(); + + } + if (objfact != null && objfact.CveVenta > 0) + { + CargaConciliacionemitidasSATGet(); + Alert($"se ha agregado la factura correctamente.
    Ver Factura ", ModExtensiones.TipoMensaje.ToastInformacion, timeout: 25); + } + else { continuar = false; } + if (!continuar) + { + Alert($"no se pudo agregar la factura {strErrores.ToString()}", ModExtensiones.TipoMensaje.MsgAdvertencia); + } + } + } protected void LnkRegistrar_Click(object sender, EventArgs e) { GridViewRow gvrow = (GridViewRow)(((LinkButton)sender).NamingContainer); - string ruta = gvrow.DataKey("RutaXml"); - strErrores = new StringBuilder(); - XmlSatCFDI objxml = null; - Modelos.Factura objfact = null; - bool continuar = true; - objxml = XmlSatCFDI.readXML(ruta); - continuar = continuar && (objxml != null); - if (continuar) - { + registrarventa(gvrow); + //string ruta = gvrow.DataKey("RutaXml"); + //strErrores = new StringBuilder(); + //XmlSatCFDI objxml = null; + //Modelos.Factura objfact = null; + //bool continuar = true; + //objxml = XmlSatCFDI.readXML(ruta); + //continuar = continuar && (objxml != null); + //if (continuar) + //{ - objfact = GetFacturaFromXML(objxml); - } - continuar = continuar && (objfact != null); - if (continuar) - { + // objfact = GetFacturaFromXML(objxml); + //} + //continuar = continuar && (objfact != null); + //if (continuar) + //{ - // Dim As New (ObjVentas.IniciaTransacSQL()) - // Dim As = Nothing - // Dim MensajeAlert = New StringBuilder - ClsVentas ObjVentas = new ClsVentas(); - ClsInventarios ObjInventario = new ClsInventarios(ObjVentas.IniciaTransacSQL()); - ClsContabilidad ObjConta = new ClsContabilidad(ObjVentas.IniciaTransacSQL()); - ClsContratos ObjContr = new ClsContratos(ObjVentas.IniciaTransacSQL()); - ClsOS ObjOS = new ClsOS(ObjVentas.IniciaTransacSQL()); - ClsBancos ObjBancos = new ClsBancos(ObjVentas.IniciaTransacSQL()); - ClsClientes ObjClientes = new ClsClientes(ObjVentas.IniciaTransacSQL()); - ClsOIEventos ObjEventos = new ClsOIEventos(ObjVentas.IniciaTransacSQL()); - ClsCGame ObjCGame = new ClsCGame(ObjVentas.IniciaTransacSQL()); - ClsEdocumentacion ObjDocCliente = new ClsEdocumentacion(ObjVentas.IniciaTransacSQL()); - ClsAcumuladores ObjAcum = new ClsAcumuladores(ObjVentas.IniciaTransacSQL()); - ClsContPAQi ObjContPaq = null; - //StringBuilder MensajeAlert = new StringBuilder() ; - try - { - objfact.GuardarVenta(ref objfact, ref ObjVentas, ref ObjConta, ref ObjInventario, ref ObjContr, ref objfact.DtDetalle, objfact.CveNCaVincular, ref ObjContPaq, ref ObjBancos, ref ObjOS, ref ObjEventos, ref ObjCGame, ref ObjClientes, ObjAcum: ObjAcum); + // // Dim As New (ObjVentas.IniciaTransacSQL()) + // // Dim As = Nothing + // // Dim MensajeAlert = New StringBuilder + // ClsVentas ObjVentas = new ClsVentas(); + // ClsInventarios ObjInventario = new ClsInventarios(ObjVentas.IniciaTransacSQL()); + // ClsContabilidad ObjConta = new ClsContabilidad(ObjVentas.IniciaTransacSQL()); + // ClsContratos ObjContr = new ClsContratos(ObjVentas.IniciaTransacSQL()); + // ClsOS ObjOS = new ClsOS(ObjVentas.IniciaTransacSQL()); + // ClsBancos ObjBancos = new ClsBancos(ObjVentas.IniciaTransacSQL()); + // ClsClientes ObjClientes = new ClsClientes(ObjVentas.IniciaTransacSQL()); + // ClsOIEventos ObjEventos = new ClsOIEventos(ObjVentas.IniciaTransacSQL()); + // ClsCGame ObjCGame = new ClsCGame(ObjVentas.IniciaTransacSQL()); + // ClsEdocumentacion ObjDocCliente = new ClsEdocumentacion(ObjVentas.IniciaTransacSQL()); + // ClsAcumuladores ObjAcum = new ClsAcumuladores(ObjVentas.IniciaTransacSQL()); + // ClsContPAQi ObjContPaq = null; + // //StringBuilder MensajeAlert = new StringBuilder() ; + // try + // { + // objfact.GuardarVenta(ref objfact, ref ObjVentas, ref ObjConta, ref ObjInventario, ref ObjContr, ref objfact.DtDetalle, objfact.CveNCaVincular, ref ObjContPaq, ref ObjBancos, ref ObjOS, ref ObjEventos, ref ObjCGame, ref ObjClientes, ObjAcum: ObjAcum); - } - catch (Exception ) - { - objfact.CveVenta = -1; - } - if (ObjVentas.UpdateEstatusFactura(3, objxml.complemento.UUID, "", DateTime.ParseExact(objxml.comprobante.Fecha.Replace("T", " "), "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), ObjVentas.CveVenta, CvePAC: 4)) - if (objfact.CveVenta > 0 && objfact.ErrorList.Count == 0) - { - ObjVentas.Commit(); - } - else - { - foreach (string item in objfact.ErrorList) - { - strErrores.AppendLine("
    "); - strErrores.AppendLine(item); - } - objfact.CveVenta = -1; - ObjVentas.RollBack(); - } - ObjVentas.Dispose(); - ObjConta.Dispose(); - ObjInventario.Dispose(); - ObjCGame.Dispose(); - ObjContr.Dispose(); - ObjDocCliente.Dispose(); - ObjClientes.Dispose(); - ObjAcum.Dispose(); + // } + // catch (Exception ) + // { + // objfact.CveVenta = -1; + // } + // if (ObjVentas.UpdateEstatusFactura(3, objxml.complemento.UUID, "", DateTime.ParseExact(objxml.comprobante.Fecha.Replace("T", " "), "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), ObjVentas.CveVenta, CvePAC: 4)) + // if (objfact.CveVenta > 0 && objfact.ErrorList.Count == 0) + // { + // ObjVentas.Commit(); + // } + // else + // { + // foreach (string item in objfact.ErrorList) + // { + // strErrores.AppendLine("
    "); + // strErrores.AppendLine(item); + // } + // objfact.CveVenta = -1; + // ObjVentas.RollBack(); + // } + // ObjVentas.Dispose(); + // ObjConta.Dispose(); + // ObjInventario.Dispose(); + // ObjCGame.Dispose(); + // ObjContr.Dispose(); + // ObjDocCliente.Dispose(); + // ObjClientes.Dispose(); + // ObjAcum.Dispose(); - } - if (objfact != null && objfact.CveVenta > 0) - { - CargaConciliacionemitidasSATGet(); - Alert($"se ha agregado la factura correctamente.
    Ver Factura ", ModExtensiones.TipoMensaje.MsgInformacion); - } - else { continuar = false; } - if (!continuar) - { - Alert($"no se pudo agregar la factura {strErrores.ToString()}", ModExtensiones.TipoMensaje.MsgAdvertencia); - } + //} + //if (objfact != null && objfact.CveVenta > 0) + //{ + // CargaConciliacionemitidasSATGet(); + // Alert($"se ha agregado la factura correctamente.
    Ver Factura ", ModExtensiones.TipoMensaje.ToastInformacion,timeout:25); + //} + //else { continuar = false; } + //if (!continuar) + //{ + // Alert($"no se pudo agregar la factura {strErrores.ToString()}", ModExtensiones.TipoMensaje.MsgAdvertencia); + //} } protected Modelos.Factura GetFacturaFromXML(XmlSatCFDI objxml) @@ -389,10 +476,16 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas Row["CveTipoInvPS"] = DrPS["Inv_CveMetodoInventario"]; Row["CveTamaño"] = DrPS["CveTamaño"]; ADSistemaLibrary.SatXml.CFDIConceptoImpuesto impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Traslado"); + decimal sumaimpuesto=0; + decimal PorcentajeIVA = 0; if (impuesto != null) { - Row["PorcentajeIVA"] = impuesto.TasaOCuota; - Row["ImporteIVA"] = impuesto.Importe; + decimal decimpuesto = 0; + decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); + PorcentajeIVA = decimpuesto/100; + Row["PorcentajeIVA"] = decimpuesto / 100; + Row["ImporteIVA"] = decimpuesto / 100;// impuesto.Importe;//Math.Round(item.Importe * (decimpuesto/100), 2); + sumaimpuesto += impuesto.Importe; } else { @@ -403,9 +496,12 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "003" && x.Tipo == "Traslado"); if (impuesto != null) { - Row["PorcentajeIEPS"] = impuesto.TasaOCuota; + decimal decimpuesto = 0; + decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); + Row["PorcentajeIEPS"] = decimpuesto / 100; Row["ImporteIEPS"] = impuesto.Importe; Row["IEPS"] = impuesto.Importe; + sumaimpuesto += impuesto.Importe; } else { @@ -416,8 +512,11 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "001" && x.Tipo == "Retencion"); if (impuesto != null) { + decimal decimpuesto = 0; + decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); + Row["PorcentajeRetISR"] = decimpuesto / 100; Row["ImporteRetISR"] = impuesto.Importe; - Row["PorcentajeRetISR"] = impuesto.TasaOCuota; + sumaimpuesto -= impuesto.Importe; } else { @@ -427,8 +526,11 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Retencion"); if (impuesto != null) { + decimal decimpuesto = 0; + decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); + Row["PorcentajeRetIVA"] = decimpuesto / 100; Row["ImporteRetIVA"] = impuesto.Importe; - Row["PorcentajeRetIVA"] = impuesto.TasaOCuota; + sumaimpuesto -= impuesto.Importe; } else { @@ -438,7 +540,8 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas Row["Descuento"] = item.Descuento; Row["TipoDescuento"] = "2"; - Row["Total"] = item.Importe; + //Row["Total"] = item.Importe - sumaimpuesto; + Row["Total"] = item.Importe /(1+ PorcentajeIVA); Row["TotalImporte"] = item.Importe; Row["SATClaveProdServ"] = item.ClaveProdServ; @@ -468,6 +571,11 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas protected void LnkAceptarDefault_Click(object sender, EventArgs e) { RegistraScript("$('#DModalDefaults').modal('hide');"); + //foreach (GridViewRow gvrow in GVConciliacionemitidasSAT.Rows) + //{ + + // registrarventa(gvrow); + //} } } /*