From 1a8d92b949ad0bc303be7a88812a25e9ef5fc39a Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Mon, 16 Jan 2023 08:53:04 -0700 Subject: [PATCH 1/9] pozo cuenta --- AF/AF.aspx.vb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/AF/AF.aspx.vb b/AF/AF.aspx.vb index 05955771f..c78db8b2b 100644 --- a/AF/AF.aspx.vb +++ b/AF/AF.aspx.vb @@ -945,6 +945,7 @@ Partial Class AF_AF CargaSubTipoActivoFijo() DdlSubTipoActivoFijo.SelectedValue = ObjActivoFijo.CveSubTipoActivoFijo.ToString() LatLong.Visible = UsuarioActual.CveEmpresa = 158 And ((DdlTipoActivoFijo.SelectedItem.Text.ToUpper() = "POZO") Or (DdlSubTipoActivoFijo.SelectedItem.Text.ToUpper() = "POZO") Or (DdlTipoActivoFijo.SelectedItem.Text.ToUpper() = "POZOS") Or (DdlSubTipoActivoFijo.SelectedItem.Text.ToUpper() = "POZOS")) + TxtAgroCuenta.Text = ObjActivoFijo.DtResultados.Rows(0)("AgroCuenta").ToString() TxtLatitud.Text = ObjActivoFijo.DtResultados.Rows(0)("Lat").ToString() TxtLongitud.Text = ObjActivoFijo.DtResultados.Rows(0)("Long").ToString() @@ -2490,7 +2491,7 @@ Partial Class AF_AF DdlEstadoActivoFijo.SelectedValue.ToEntero, DdlCtaContableDepreciacion.SelectedValue.ToEntero, TxtPorDepreciacion.Text.Trim.ToDouble, TxtObservaciones.Text.Trim, Ddlclientes.SelectedValue.ToEntero, CveMovimientoSalidaInv, UsuarioActual.CveUsuario, CveEmpresaActual, CveMarca:=DdlMarcas.SelectedValue.ToEntero, CveModelo:=DdlModelos.SelectedValue.ToEntero, CveGrupo:=DdlGrupo.SelectedValue.ToEntero, CveAFPadre:=DdlAFPadres.SelectedValue.ToEntero, CveDispositivo:=DdlDispositivo.SelectedValue.ToEntero, - FechaBaja:=FechaBaja, Lat:=TxtLatitud.Text, Longi:=TxtLongitud.Text) > 0 Then + FechaBaja:=FechaBaja, Lat:=TxtLatitud.Text, Longi:=TxtLongitud.Text, AgroCuenta:=TxtAgroCuenta.Text) > 0 Then ViewState("CveActivoFijo") = ObjAF.CveActivoFijo Else ErrorGuardar = True @@ -2596,7 +2597,7 @@ Partial Class AF_AF DdlSubProyecto.SelectedValue.ToEntero, DdlCtaContable.SelectedValue.Trim.ToEntero, DdlEstadoActivoFijo.SelectedValue.ToEntero, DdlCtaContableDepreciacion.SelectedValue.ToEntero, TxtPorDepreciacion.Text.Trim.ToDouble, TxtObservaciones.Text.Trim, Ddlclientes.SelectedValue.ToEntero, UsuarioActual.CveUsuario, CveEmpresaActual, CveMarca:=DdlMarcas.SelectedValue.ToEntero, CveModelo:=DdlModelos.SelectedValue.ToEntero, CveGrupo:=DdlGrupo.SelectedValue.ToEntero, CveAFPadre:=DdlAFPadres.SelectedValue.ToEntero, CveDispositivo:=DdlDispositivo.SelectedValue.ToEntero, - FechaBaja:=FechaBaja, Lat:=TxtLatitud.Text, Longi:=TxtLongitud.Text) Then + FechaBaja:=FechaBaja, Lat:=TxtLatitud.Text, Longi:=TxtLongitud.Text, AgroCuenta:=TxtAgroCuenta.Text) Then 'Comentado porque te redirecciona no se ocupa - 22 Enero 2016 - Israel Piña 'CargaDatos() From afa022087e7d5caecfe8d59d3944d8fdfda8118c Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Mon, 16 Jan 2023 16:18:37 -0700 Subject: [PATCH 2/9] Actualziar Compra con cambio de tipo de compra --- App_Code/ClsCompras.vb | 3 +- Compras/Compras.aspx.vb | 68 +++++++++++++++++++++++++---- Inventarios/EntradasSalidas.aspx.vb | 12 +++-- 3 files changed, 70 insertions(+), 13 deletions(-) diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index 5d751b497..e92fdf12d 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -1931,7 +1931,7 @@ Public Class ClsCompras #Region " REFACTURACION " - Public Function GetRefacturacion(CveProveedor As Integer, SubTotal As Double, IVA As Double, Total As Double, Opcion As Integer, CveEmpresa As Integer) As Boolean + Public Function GetRefacturacion(CveProveedor As Integer, SubTotal As Double, IVA As Double, Total As Double, Opcion As Integer, CveEmpresa As Integer, Optional Top As Integer = 100000) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Comp_RefacturacionGet") @@ -1942,6 +1942,7 @@ Public Class ClsCompras .Add("@Total", SqlDbType.Float).Value = Total .Add("@Opcion", SqlDbType.Int).Value = Opcion ' 1. Exácta, 2. Con diferencia .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@Top", SqlDbType.Int).Value = Top End With Try diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 8c2a90d53..b68c99bc0 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1199,6 +1199,22 @@ Partial Class Compras_Compras End Set End Property + Private Property TipoCompraOriginal As Integer + Get + + If ViewState("TipoCompraOriginal") Is Nothing Then + ViewState("TipoCompraOriginal") = -1 + End If + + Return ViewState("TipoCompraOriginal").ToString.ToEntero + + End Get + Set(value As Integer) + ViewState("TipoCompraOriginal") = value + End Set + End Property + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then @@ -2616,6 +2632,7 @@ Partial Class Compras_Compras CvePrePoliza = dr("CvePrePoliza").ToString.ToEntero EstatusAlmacen = dr("EstatusAlmacen").ToString.ToEntero DdlTipoCompra.SelectedValueExist(dr("CveTipoCompra")) + TipoCompraOriginal = dr("CveTipoCompra").ToString.ToEntero CveTipoConcepto = dr("CveTipoConcepto").ToString.ToEntero ChkEsNoDeducible.Checked = Boolean.Parse(dr("NoDeducible").ToString) @@ -6391,6 +6408,7 @@ Partial Class Compras_Compras 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN 'SI LA COMPRA ES DE TIPO GASTO CON ALMACEN DEBE REGISTRAR MOVIMIENTO Dim AlmacenSoloExistencia As Boolean = False + If DdlTipoCompra.SelectedValue <> "10" Then For Each Dr As DataRow In DT.Rows If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then @@ -6400,6 +6418,7 @@ Partial Class Compras_Compras Dr.AcceptChanges() Next End If + DT.AcceptChanges() DT = DT.FiltraParametros("ISNULL(CveAlmacen,0) > 0") If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then @@ -9433,6 +9452,8 @@ Partial Class Compras_Compras Msg.Append("La Compra se actualizó correctamente") Alert(Msg.ToString()) + TipoCompraOriginal = DdlTipoCompra.SelectedValue.ToEntero + Else ObjCompra.RollBack() If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() @@ -9468,7 +9489,8 @@ Partial Class Compras_Compras (row1("CveActivoFijo").ToString.ToEntero <> row2("CveActivoFijo").ToString.ToEntero) Or (row1("AFMedida").ToString.ToEntero <> row2("AFMedida").ToString.ToEntero) Or (row1("TipoAF").ToString.ToEntero <> row2("TipoAF").ToString.ToEntero) Or - (row1("CvePS").ToString.ToEntero <> row2("CvePS").ToString.ToEntero) Then + (row1("CvePS").ToString.ToEntero <> row2("CvePS").ToString.ToEntero Or + DdlTipoCompra.SelectedValue.ToEntero <> TipoCompraOriginal) Then Return False End If End If @@ -9582,6 +9604,7 @@ Partial Class Compras_Compras 'Removemos los conceptos de la prepoliza If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 6, CveCompra, 1) Then ErrorPrepoliza = True 'GASTO If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 68, CveCompra, 1) Then ErrorPrepoliza = True 'ALMACEN + If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 95, CveCompra, 1) Then ErrorPrepoliza = True 'GASTO CON ALMACEN RELLENO If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 49, CveCompra, 1) Then ErrorPrepoliza = True 'AF If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 205, CveCompra, 1) Then ErrorPrepoliza = True 'PS YA RECIBIDO If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 230, CveCompra, 1) Then ErrorPrepoliza = True 'PS YA RECIBIDO @@ -9590,6 +9613,15 @@ Partial Class Compras_Compras If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 228, CveCompra, 1) Then ErrorPrepoliza = True 'PS NO RECIBIDO If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 229, CveCompra, 1) Then ErrorPrepoliza = True 'PS NO RECIBIDO + + 'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95 + If DdlTipoCompra.SelectedValue = "10" Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN, Referencia, 95, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then + ErrorPrepoliza = True + End If + End If + + 'OBTIENE METODO DE CONTABILIZACIÓN AL GUARDAR Dim ConceptoContabilizacionAlmacen = 0 If ObjCompra.GetCompras(CveCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) AndAlso ObjCompra.DtResultados.Rows.Count > 0 Then @@ -9659,8 +9691,11 @@ Partial Class Compras_Compras importeMovimiento = 0 IdCtaContable = 0 + + + 'INV [MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA) ] - If UsuarioActual.Empresa.UsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And ConceptoContabilizacionAlmacen.Contiene(176, 205) Then + If DdlTipoCompra.SelectedValue.ToEntero <> 10 AndAlso UsuarioActual.Empresa.UsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And ConceptoContabilizacionAlmacen.Contiene(176, 205) Then importeMovimiento = TmpDT.SUM("Total", $"ISNULL(TipoAF,0) <> 2 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal importeMN = importeMovimiento * tipoCambioActual * Multiplicador @@ -9713,18 +9748,29 @@ Partial Class Compras_Compras DT.AcceptChanges() DtAlmacenes.Dispose() - 'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS] - If UsuarioActual.Empresa.UsaInventarios And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And ConceptoContabilizacionAlmacen > 0 Then - DT = DT.FiltraParametros("CveTipoPS <> 2") + + If DdlTipoCompra.SelectedValue.ToEntero <> 10 Then + 'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS] + If UsuarioActual.Empresa.UsaInventarios And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And ConceptoContabilizacionAlmacen > 0 Then + DT = DT.FiltraParametros("CveTipoPS <> 2") + End If End If + Dim DTDistinct = DT.Copy - If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then - DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"}) + + If DdlTipoCompra.SelectedValue.ToEntero = 10 Then + DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto", "CveAlmacen"}) Else - DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) = 0 AND ISNULL(AplicaCostoIndirecto,0) <> 1", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"}) + + If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then + DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"}) + Else + DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) = 0 AND ISNULL(AplicaCostoIndirecto,0) <> 1", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"}) + End If End If + If DTDistinct.Rows.Count > 0 Then For Each Row2 As DataRow In DTDistinct.Rows @@ -9734,6 +9780,12 @@ Partial Class Compras_Compras Else importeMovimiento = DT.SUM("Total", String.Format("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) = 0 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveClasificacion = {0} AND CveSubProyecto = {1} AND ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal End If + + If DdlTipoCompra.SelectedValue.ToEntero = 10 Then + importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen > 0 ").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen > 0").ToString.ToDecimal + End If + + importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'CLASIFICACION diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 25c18b4f9..c62b4a2ae 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -4623,12 +4623,16 @@ Partial Class Inventarios_EntradasSalidas tIdCtaGasto = 1321 End Select - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorSalida + ValorEntrada, "", 290, tConcepto, Fecha, tIdCtaGasto, -1, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=tCveClasificacion, CveSubProyecto:=tCveSubProyectoSalida, ImporteMX:=ValorSalida + ValorEntrada, Contabilizable:=EsContabilizable) Then - ErrorMovInv = True - Mensaje = "Ocurrió un error al guardar los movimientos contables de ajuste de salida" + If Math.Abs((ValorSalida + ValorEntrada)) <> 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorSalida + ValorEntrada, "", 290, tConcepto, Fecha, tIdCtaGasto, -1, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=tCveClasificacion, CveSubProyecto:=tCveSubProyectoSalida, ImporteMX:=ValorSalida + ValorEntrada, Contabilizable:=EsContabilizable) Then + ErrorMovInv = True + Mensaje = "Ocurrió un error al guardar los movimientos contables de ajuste de salida" + End If End If End If - End If + + + End If If Not ErrorMovInv Then If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, -1) Then From 5a05c40114d8e9b9890652278237dc7fbd97d1e4 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 16 Jan 2023 18:38:35 -0700 Subject: [PATCH 3/9] Impresion de excel en estados de cuenta stimultsoft --- App_Code/ClsPaginas.vb | 20 ++++++++--- Ventas/Clientes.aspx.vb | 77 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 87 insertions(+), 10 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 887b33ddb..b351cfde5 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -6118,7 +6118,12 @@ Public Class ClsPaginas rds.Value = DtDatos lrds.Add(rds) - ImprimirbytesPDF(StreamBytesStimulsoft("Facturas", RutaReporte, lrds, Parametros, NombreArchivo:=NombreArchivo, Formato:="PDF"), NombreArchivo, Formato, Content_Disposition:=Content_Disposition) + Dim Extension = "pdf" + If Formato.ToLower() = "excel" Then + Extension = "xlsx" + End If + + ImprimirbytesPDF(StreamBytesStimulsoft("Facturas", RutaReporte, lrds, Parametros, NombreArchivo:=NombreArchivo, Formato:=Formato), NombreArchivo, Formato, Content_Disposition:=Content_Disposition, Extension:=Extension) End Sub Public Sub ImprimirPDFMultiDS(RutaReporte As String, lrds As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing) ImprimirPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR) @@ -6582,10 +6587,9 @@ Public Class ClsPaginas ''' ''' ''' - Public Sub ImprimirbytesPDF(bytes As Byte(), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional Descarga As Boolean = False, Optional Content_Disposition As String = "attachment") + Public Sub ImprimirbytesPDF(bytes As Byte(), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional Descarga As Boolean = False, Optional Content_Disposition As String = "attachment", Optional Extension As String = "") 'limpio ReportViwer Dim mimeType As String = Nothing - Dim extension As String = Nothing 'If Descarga Then ' Try @@ -6610,7 +6614,15 @@ Public Class ClsPaginas Response.ContentType = mimeType End If Response.ClearHeaders() - Response.AddHeader("content-disposition", String.Format("{0}; filename=""{1}.{2}""", Content_Disposition, NombreArchivo, If(Formato = "PDF", "pdf", "xls"))) + + Dim fileExtension As String = "" + If Not String.IsNullOrEmpty(extension) Then + fileExtension = extension + Else + fileExtension = If(Formato = "PDF", "pdf", "xls") + End If + + Response.AddHeader("content-disposition", String.Format("{0}; filename=""{1}.{2}""", Content_Disposition, NombreArchivo, fileExtension)) Response.BinaryWrite(bytes) ' create the file Response.Flush() ' send it to the client to download bytes = Nothing diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index b40560271..2cf7a8eb5 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -4249,7 +4249,23 @@ Partial Class Clientes Try Dim File As Byte() If Archivo.Exists Then - File = ImprimirPDFCrystal($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.rpt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato) + Dim ArchivoSti As New System.IO.FileInfo(String.Format("{0}Formatos/RepClientesCxC.mrt", UsuarioActual.Empresa.Ruta)) + If ArchivoSti.Exists Then + Dim listass As New List(Of ReportParameter) + For Each item As CrystalParametro In lista + listass.Add(New ReportParameter(item.Nombre, item.Valor.ToString())) + Next + + Dim lrds As New List(Of ReportDataSource) + Dim rds As New ReportDataSource + rds.Name = "Datos" + rds.Value = DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha") + lrds.Add(rds) + + File = StreamBytesStimulsoft("Facturas", $"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.mrt", lrds, listass, NombreArchivo:="Estado de cuenta", Formato:=Formato) + Else + File = ImprimirPDFCrystal($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.rpt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato) + End If Else File = ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepClientesCxC.rpt"), DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato) End If @@ -4282,7 +4298,6 @@ Partial Class Clientes Alert("El correo se envió con éxito", TipoMensaje.MsgInformacion) Catch ex As Exception Alert("Ocurrió un error al enviar el correo", TipoMensaje.MsgAdvertencia) - End Try Catch ex As Exception @@ -4295,8 +4310,8 @@ Partial Class Clientes Dim listass As New List(Of ReportParameter) For Each item As CrystalParametro In lista listass.Add(New ReportParameter(item.Nombre, item.Valor.ToString())) - Next - ImprimirPDFStimulsoft($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.mrt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), listass, "Estado de cuenta", Formato) + Next + ImprimirPDFStimulsoft($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.mrt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), listass, "Estado de cuenta", Formato) Else ImprimirbytesPDF(ImprimirPDFCrystal($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.rpt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato), "Estado de cuenta", Formato) End If @@ -4348,8 +4363,8 @@ Partial Class Clientes Dim listass As New List(Of ReportParameter) For Each item As CrystalParametro In lista listass.Add(New ReportParameter(item.Nombre, item.Valor.ToString())) - Next - ImprimirPDFStimulsoft($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.mrt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), listass, "Estado de cuenta", Formato) + Next + ImprimirPDFStimulsoft($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.mrt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), listass, "Estado de cuenta", Formato) Else ImprimirbytesPDF(ImprimirPDFCrystal($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.rpt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato), "Estado de cuenta", Formato) End If @@ -4357,6 +4372,56 @@ Partial Class Clientes ImprimirbytesPDF(ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepClientesCxC.rpt"), DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato), "Estado de cuenta", Formato) End If End If + End Sub + + Public Sub ImprimirExcelStimulsoft(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional RDSName As String = "Datos", Optional Content_Disposition As String = "attachment") + Dim lrds As New List(Of ReportDataSource) + Dim rds As New ReportDataSource + rds.Name = RDSName + rds.Value = DtDatos + lrds.Add(rds) + + ImprimirbytesExcel(StreamBytesStimulsoft("Facturas", RutaReporte, lrds, Parametros, NombreArchivo:=NombreArchivo, Formato:="EXCEL"), NombreArchivo, "EXCEL", Content_Disposition:=Content_Disposition) + End Sub + Public Sub ImprimirbytesExcel(bytes As Byte(), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional Descarga As Boolean = False, Optional Content_Disposition As String = "attachment") + 'limpio ReportViwer + Dim mimeType As String = Nothing + Dim extension As String = Nothing + + 'If Descarga Then + ' Try + ' bytes = bytes + ' File.WriteAllBytes(String.Format("{0}PDF/whatever.gif", UsuarioActual.Empresa.Ruta), img) + ' Catch ex As Exception + ' If UsuarioActual.CveRol = 1 Then + ' Alert(ex.Message, TipoMensaje.MsgAdvertencia) + ' Else + ' Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod'IMPDFclspag'", TipoMensaje.MsgAdvertencia) + ' End If + ' End Try + 'End If + + Try + bytes = bytes + Response.Buffer = True + Response.Clear() + Response.ContentType = "application/vnd.ms-excel" + Response.ClearHeaders() + Response.AddHeader("content-disposition", String.Format("{0}; filename=""{1}.{2}""", Content_Disposition, NombreArchivo, If(Formato = "PDF", "pdf", "xlsx"))) + Response.BinaryWrite(bytes) ' create the file + Response.Flush() ' send it to the client to download + bytes = Nothing + HttpContext.Current.Response.SuppressContent = True + HttpContext.Current.ApplicationInstance.CompleteRequest() + 'HttpContext.Current.Response.End() + Catch ex As Exception + + If UsuarioActual.CveRol = 1 Then + Alert($"Error: {ex.Message} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))}", TipoMensaje.MsgAdvertencia) + Else + Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod:'IMPDFclspag'", TipoMensaje.MsgAdvertencia) + End If + End Try End Sub Private Sub MandaCorreoEstadoCuenta(CveUsuario As Integer, CveEmpresa As Integer, CveCliente As Integer, File As Byte(), Para As String, Asunto As String, Body As String, Optional GuardarBitacora As Boolean = False) From 4cfbacdafb2b6c852cad9da4052ef4aa615a6cf6 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 16 Jan 2023 18:40:24 -0700 Subject: [PATCH 4/9] Error en cobro cliente en prisay --- Bancos/RepCxCCliente.aspx.vb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Bancos/RepCxCCliente.aspx.vb b/Bancos/RepCxCCliente.aspx.vb index ffa1a3378..15e89aa8f 100644 --- a/Bancos/RepCxCCliente.aspx.vb +++ b/Bancos/RepCxCCliente.aspx.vb @@ -71,11 +71,13 @@ Partial Class Bancos_RepCxCCliente If (GvCxC.Rows.Count > 0) Then GvCxC.UseAccessibleHeader = True - GvCxC.HeaderRow.TableSection = TableRowSection.TableHeader + If GvCxC.HeaderRow IsNot Nothing Then + GvCxC.HeaderRow.TableSection = TableRowSection.TableHeader + End If RegistraScript("OrdenarGV();") - UPDatos.Update() End If + UPDatos.Update() End Sub Protected Sub GvCxC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCxC.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then From f8a2e691e3a9191ba3626121be74dae1bb2c85c8 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 16 Jan 2023 18:41:09 -0700 Subject: [PATCH 5/9] No recargaba al cambiar de almacen --- Inventarios/EntregaAlmacen.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index d32123b5b..852d7dd7d 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -3963,7 +3963,7 @@ Partial Class Inventarios_EntregaAlmacen RegistraScript("$('#ModalVerSugerencias').modal('hide')") End Sub - Protected Sub DdlAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs) 'Handles DdlAlmacen.SelectedIndexChanged + Protected Sub DdlAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlAlmacen.SelectedIndexChanged RecargaporAlmacenes() End Sub From 052ac4fb81ed6ab1bcc25d407090578e3366d62f Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 16 Jan 2023 18:43:02 -0700 Subject: [PATCH 6/9] Error de compilacion --- Documentacion/TableroMaterialidad.aspx.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Documentacion/TableroMaterialidad.aspx.cs b/Documentacion/TableroMaterialidad.aspx.cs index ccf91f23e..fb1099367 100644 --- a/Documentacion/TableroMaterialidad.aspx.cs +++ b/Documentacion/TableroMaterialidad.aspx.cs @@ -14,7 +14,6 @@ using System.Text; using System.Text.RegularExpressions; using System.Xml; using System.Xml.Linq; -using iTextSharp.text.pdf; public partial class Documentacion_TableroMaterialidad : ClsPaginas @@ -286,8 +285,8 @@ public partial class Documentacion_TableroMaterialidad : ClsPaginas { XElement xfile = new XElement("archivo"); xfile.SetAttributeValue("URL", urfile); - xfile.SetAttributeValue("EXT", Path.GetExtension(urfile).ToLower()); - if (Path.GetExtension(urfile).ToLower() == ".xml") + xfile.SetAttributeValue("EXT",System.IO.Path.GetExtension(urfile).ToLower()); + if (System.IO.Path.GetExtension(urfile).ToLower() == ".xml") { var xmlobj = ADSistemaLibrary3.SatXml.XmlSatCFDI.readXML(urfile); @@ -372,7 +371,7 @@ public partial class Documentacion_TableroMaterialidad : ClsPaginas { try { - PdfReader reader = new PdfReader(urfile); + var reader = new iTextSharp.text.pdf.PdfReader(urfile); text = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, 1, new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy()); foliofiscal = string.Empty; From 1bfb7432d16bdaab7bde7d451140a0e1d6f78951 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 16 Jan 2023 18:44:26 -0700 Subject: [PATCH 7/9] Ocultar impresion en cotizaciones en econo --- Ventas/PopUpBuscarFolio.aspx.vb | 15 ++++++++++++--- Ventas/Ventas.aspx.vb | 4 ++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Ventas/PopUpBuscarFolio.aspx.vb b/Ventas/PopUpBuscarFolio.aspx.vb index cabab782b..ee4647234 100644 --- a/Ventas/PopUpBuscarFolio.aspx.vb +++ b/Ventas/PopUpBuscarFolio.aspx.vb @@ -186,12 +186,21 @@ Partial Class PopUpBuscarFolio e.Row.FCLiteral("LtlXML").Text = "
" End If - If IO.File.Exists($"{Ruta}PDF\{e.Row.DBCampo("TipoDocto")}\{e.Row.DBCampo("Folio")}.pdf") Then - e.Row.FCLiteral("LtlPDF").Text = String.Format("", e.Row.DBCampo("TipoDocto"), e.Row.DBCampo("Folio")) + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then + If e.Row.DBCampo("TipoDocto") <> "Cot" AndAlso IO.File.Exists($"{Ruta}PDF\{e.Row.DBCampo("TipoDocto")}\{e.Row.DBCampo("Folio")}.pdf") Then + e.Row.FCLiteral("LtlPDF").Text = String.Format("", e.Row.DBCampo("TipoDocto"), e.Row.DBCampo("Folio")) + Else + e.Row.FCLiteral("LtlPDF").Text = "
" + End If Else - e.Row.FCLiteral("LtlPDF").Text = "
" + If IO.File.Exists($"{Ruta}PDF\{e.Row.DBCampo("TipoDocto")}\{e.Row.DBCampo("Folio")}.pdf") Then + e.Row.FCLiteral("LtlPDF").Text = String.Format("", e.Row.DBCampo("TipoDocto"), e.Row.DBCampo("Folio")) + Else + e.Row.FCLiteral("LtlPDF").Text = "
" + End If End If + End If End Sub diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 8a0583f6d..6f69118b0 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -3440,6 +3440,10 @@ Partial Class Ventas LblRotacion.Text = FechaRotaAlinea.AddMonths(6).ToShortDateString LblAlineacion.Text = FechaRotaAlinea.AddMonths(6).ToShortDateString + If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso Me.CveVenta > 0 AndAlso DdlTipoComprobante.SelectedValue = "Cot" Then + HplDownPDF.Visible = False + End If + UPObservaciones.Update() End If From 956d7342676957723c65d3ef49cd13a8ddd1f502 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 16 Jan 2023 18:45:01 -0700 Subject: [PATCH 8/9] Correcion de validacion masiva de cancelacion en reporte de cancelaciones por respuesta --- Ventas/RepCancelacionesPorRespuesta.aspx | 2 +- Ventas/RepCancelacionesPorRespuesta.aspx.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx b/Ventas/RepCancelacionesPorRespuesta.aspx index 5a4da6268..c87394d52 100644 --- a/Ventas/RepCancelacionesPorRespuesta.aspx +++ b/Ventas/RepCancelacionesPorRespuesta.aspx @@ -36,7 +36,7 @@
- Facturas Pendientes Por Respuesta + Facturas Pendientes Por Respuesta
diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs index 796c5587b..8269b0937 100644 --- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs +++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs @@ -551,7 +551,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas if (DtVentas != null) { var sb = new StringBuilder(); - foreach (DataRow Row in DtVentas.Rows) + foreach (DataRow Row in DtVentas.FiltraParametros("(CveEstatusFactura IN (20) AND CveEstatusRefacturacion IN (0,4))").Rows) { int CveVenta = Row["CveVenta"].ToEntero(); string Total = Row["Total"].ToString(); @@ -564,7 +564,8 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas int CveCliente = Row["CveCliente"].ToEntero(); if (CveVenta > 0) { - sb.AppendFormat("{0}
", VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCReceptor, SubTotal)); + var resp = VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCReceptor, SubTotal); + sb.AppendFormat("{0}
",resp.Mensaje); } } Alert(sb.ToString()); From dbe7502a66f223033566291c3918603001e4ed73 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 16 Jan 2023 18:45:38 -0700 Subject: [PATCH 9/9] BDH.Correcion de importes de virtuales en traspasos --- Inventarios/TraspasoAlmacen.aspx.vb | 59 +++++++++++++++++------------ 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index b4088ea7e..97ff5f072 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -1639,7 +1639,7 @@ Partial Class Inventarios_TraspasoAlmacen ErrorMovInv = True Else Dim CveMovimientoDetalleSalida As Integer = 0 - Dim importe As Double = 0 + 'Dim importe As Double = 0 For Each GvRow As GridViewRow In GvDatosRecepcion.Rows If GvRow.RowType = DataControlRowType.DataRow Then @@ -1675,7 +1675,7 @@ Partial Class Inventarios_TraspasoAlmacen End If End If - importe += Cantidad * PrecioUnitario + 'importe += Cantidad * PrecioUnitario End If End If Next @@ -1700,15 +1700,15 @@ Partial Class Inventarios_TraspasoAlmacen If CveAlmacenVirtual > 0 And CveAlmacenVirtualSalida > 0 Then Dim dtvirtual As DataTable = Nothing - Dim importePoliza As Decimal = 0 + 'Dim importePoliza As Decimal = 0 If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoSalida) Then dtvirtual = ObjInventario.DtResultados If dtvirtual.Rows.Count > 0 Then - CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveMovimientoRelacionado:=CveMovimientoEntrada, Modulo:="TA/C2") + CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveMovimientoRelacionado:=CveMovimientoEntrada, MovimientoFijo:=True, Modulo:="TA/C2") - CveMovimientoVirtualSalida = ObjInventario.AddMovimiento(CveAlmacenVirtualSalida, 37, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalidaTransitorio, Modulo:="TA/C3") + CveMovimientoVirtualSalida = ObjInventario.AddMovimiento(CveAlmacenVirtualSalida, 37, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalidaTransitorio, MovimientoFijo:=True, Modulo:="TA/C3") FolioVirtualEntrada = ObjInventario.Folio @@ -1720,7 +1720,7 @@ Partial Class Inventarios_TraspasoAlmacen Dim CostoIndirecto As Decimal = RowVirtual("CostoIndirecto").ToString().ToDecimal() - importePoliza = importePoliza + (CantidadUsado * PU) + 'importePoliza = importePoliza + (CantidadUsado * PU) If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then ErrorMovInv = True @@ -1743,6 +1743,11 @@ Partial Class Inventarios_TraspasoAlmacen If Not ErrorMovInv AndAlso (CveMovimientoSalida > 0 And CveMovimientoVirtualEntrada > 0) Then + Dim importePoliza As Decimal = 0 + If ObjInventario.GetMovimientosDetalle(CveMovimientoVirtualEntrada, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then + importePoliza = ObjInventario.DtResultados.SUMD("Total").RoundSQL + End If + Dim CvePrePolizaMovVirtual As Integer = ObjConta.AddPrePolizas("TA/C2|TA/C3", 53, importePoliza, importePoliza, 1, TxtFecha.Text.ToDate, "TA/C2|TA/C3", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CvePrePolizaMovVirtual > 0 Then If Not ErrorMovInv AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePolizaMovVirtual, True, importePoliza, importePoliza, 68, TxtObservacionesRecepcion.Text, TxtObservacionesRecepcion.Text, -1, -1, CveMovimientoAlmacen:=CveMovimientoVirtualSalida, Contabilizable:=False) Then @@ -1770,7 +1775,11 @@ Partial Class Inventarios_TraspasoAlmacen End If If Not ErrorMovInv Then - Dim ImporteDecimal As Decimal = importe.ToDecimal.RoundAD + Dim ImporteDecimal As Decimal = 0 + If ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then + ImporteDecimal = ObjInventario.DtResultados.SUMD("Total").RoundSQL + End If + Dim IdCtaContable As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero)).ToEntero If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteDecimal, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, @@ -3354,28 +3363,28 @@ Partial Class Inventarios_TraspasoAlmacen Return Respuesta End Function - Private Sub CargaDireccionesEnvio() - Dim ObjClientes As New ClsClientes - Dim TieneError = False + 'Private Sub CargaDireccionesEnvio() + ' Dim ObjClientes As New ClsClientes + ' Dim TieneError = False - DdlDireccionEnvio.Items.Clear() - If ObjClientes.DireccionEnvioGet(-1, CveCliente, -1) Then - DdlDireccionEnvio.DataSource = ObjClientes.DtResultados.FiltraParametros(String.Format("Estatus = 1")) - DdlDireccionEnvio.DataBind() - 'DdlDireccionEnvio.Items.Insert(0, New ListItem("Seleccione", "-1")) - TmpDTEnvioDireccion = ObjClientes.DtResultados - Else - TieneError = True - End If + ' DdlDireccionEnvio.Items.Clear() + ' If ObjClientes.DireccionEnvioGet(-1, CveCliente, -1) Then + ' DdlDireccionEnvio.DataSource = ObjClientes.DtResultados.FiltraParametros(String.Format("Estatus = 1")) + ' DdlDireccionEnvio.DataBind() + ' 'DdlDireccionEnvio.Items.Insert(0, New ListItem("Seleccione", "-1")) + ' TmpDTEnvioDireccion = ObjClientes.DtResultados + ' Else + ' TieneError = True + ' End If - If TieneError Then - Alert("Ocurrió un error al obtener las direcciones de envío", TipoMensaje.MsgError) - End If + ' If TieneError Then + ' Alert("Ocurrió un error al obtener las direcciones de envío", TipoMensaje.MsgError) + ' End If - ObjClientes.Dispose() - UpCliente.Update() + ' ObjClientes.Dispose() + ' UpCliente.Update() - End Sub + 'End Sub #End Region End Class