This commit is contained in:
Antonio Gonzalez
2019-12-14 11:12:54 -07:00
6 changed files with 545 additions and 718 deletions

View File

@@ -107,7 +107,7 @@ Partial Class ACumuladores_RepIndicadorDiario
TCEspecifico = -1
End If
If ObjAcum.GetRepInicadorDiario(FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
If ObjAcum.GetRepIndicadorDiario(FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjAcum.DtResultados
DtDatos = ObjAcum.DtResultados
Else

View File

@@ -895,7 +895,7 @@ Public Class ClsAcumuladores
End Function
Public Function GetRepInicadorDiario(FechaInicio As Date, FechaFin As Date, CveSubProeycto As Integer, CveEmpresa As Integer) As Boolean
Public Function GetRepIndicadorDiario(FechaInicio As Date, FechaFin As Date, CveSubProeycto As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False

View File

@@ -1,11 +1,14 @@
<%@ WebHandler Language="VB" Class="TareasProgramadas" %>
<%@ WebHandler Language="VB" Class="TareasProgramadas" %>
Imports System
Imports System.Web
Imports System.Data
Imports Newtonsoft.Json
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Imports Extensiones
Imports System.IO
Imports System.IO
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Public Class TareasProgramadas : Implements IHttpHandler
@@ -16,14 +19,19 @@ Public Class TareasProgramadas : Implements IHttpHandler
currentcontext = context
'timbrarNominab()
Dim retorno As String = "no se encontro la variable"
Try
URLParametros = Parametros(context.Request("var"))
Try
If context.Request("var") IsNot Nothing Then
URLParametros = Parametros(context.Request("var"))
End If
Dim metodo As String = URLParametros("metodo")
Select Case metodo
Case "TimbrarNomina"
retorno = "Error Timbrado Nomina"
retorno = timbrarNomina()
retorno = ""
retorno = ""
Case "EstadosCuenta"
IniciaEnvioEstadoDeCuenta(context, 1, "-1", "-1")
End Select
Catch ex As Exception
ex.GuardaLog(ex.ToString())
@@ -127,18 +135,18 @@ Public Class TareasProgramadas : Implements IHttpHandler
Private Function GetUsuario(CveEmpresa As Integer, Optional CveUsuario As Integer = -1, Optional username As String = "", Optional pass As String = "") As Usuario
Dim usuario As Usuario = Nothing
Dim usuario As Usuario = Nothing
#Region "Valido que los campos usuario contraseña no sean nulos"
If IsNothing(username) Then
username = ""
End If
If IsNothing(pass) Then
pass = ""
End If
End If
#End Region
#Region "Si el CveUsuario es mayor que cero asigno el username y pass la de la CveUsuario"
If CveUsuario > 0 Then
Using Dv As New DataView(DirectCast(currentcontext.Application("GlobalDTUsuarios"), DataTable), $"CveUsuario = 100 AND CveEmpresa ={CveEmpresa}", "", DataViewRowState.CurrentRows)
Using GlobalDTUsuarios As DataTable = Dv.ToTable()
@@ -149,13 +157,13 @@ Public Class TareasProgramadas : Implements IHttpHandler
End If
End Using
End Using
End If
End If
#End Region
#Region "obtengo el usuario con el username y la pass"
Using ObjUsuario As New ClsSisUsuarios()
usuario = ObjUsuario.ValidaUsuario(username, pass, IMEI, CveEmpresa)
End Using
End Using
#End Region
#Region "Asigno la empresa al usuario"
If Not IsNothing(usuario) Then
@@ -179,7 +187,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
End If
End Using
End If
End If
#End Region
Return usuario
End Function
@@ -224,8 +232,6 @@ Public Class TareasProgramadas : Implements IHttpHandler
Return retorno
End Function
Private Function Parametros(Cadena As String) As Hashtable
Cadena = Decripta(Cadena)
Dim P1() As String = Cadena.Split("&"c)
@@ -244,6 +250,426 @@ Public Class TareasProgramadas : Implements IHttpHandler
Get
Return False
End Get
End Property
End Property
#Region "E S T A D O S D E C U E N T A"
Private Sub CargaEstadosCuenta(ByVal context As HttpContext)
Dim DtEmpresas As DataTable = Nothing
Dim ObjEmpresas As New ClsSisEmpresas()
If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then
DtEmpresas = ObjEmpresas.DtResultados.FiltraParametros("", "", {"CveEmpresa"})
End If
ObjEmpresas.Dispose()
If DtEmpresas IsNot Nothing Then
For Each Row As DataRow In DtEmpresas.Rows
IniciaEnvioEstadoDeCuenta(context, Row("CveEmpresa").ToString().ToEntero(), "-1", "-1")
Next
End If
End Sub
Private Sub IniciaEnvioEstadoDeCuenta(ByVal context As HttpContext, CveEmpresa As Integer, pFechaI As String, pFechaF As String)
Dim JsonRetorno As New JObject()
If CveEmpresa > 0 Then
Dim Usuario = ValidaUsuarioSistema(CveEmpresa)
Dim FechaI, FechaF As DateTime
If pFechaI <> "-1" AndAlso pFechaF <> "-1" Then
Dim FechaReferencia = DateTime.Now
Dim DiaAnterior = FechaReferencia.AddDays(-1)
Dim DiaAnteriorSemanaPasada = DiaAnterior.AddDays(-7)
FechaI = New DateTime(DiaAnteriorSemanaPasada.Year, DiaAnteriorSemanaPasada.Month, DiaAnteriorSemanaPasada.Day, 0, 0, 0)
FechaF = New DateTime(DiaAnterior.Year, DiaAnterior.Month, DiaAnterior.Day, 23, 59, 59)
JsonRetorno = EjecutarEnvioEstadoCuenta(Usuario, FechaI, FechaF)
Else
FechaI = pFechaI.ToDateTime()
FechaF = pFechaF.ToDateTime()
JsonRetorno = EjecutarEnvioEstadoCuenta(Usuario, FechaI, FechaF)
End If
End If
End Sub
Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario
Dim UsuarioActual As Usuario = Nothing
Dim ObjUsuarios As New ClsSisUsuarios
If ObjUsuarios.GetUsuarios(100) Then
If ObjUsuarios.DtResultados.Rows.Count > 0 Then
Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString()
Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString()
UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, IMEI, CveEmpresa)
UsuarioActual.CveEmpresa = CveEmpresa
CreaObjetoEmpresa(UsuarioActual)
End If
End If
ObjUsuarios.Dispose()
Return UsuarioActual
End Function
Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario)
Dim ObjEmpresa As New ClsSisEmpresas()
If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then
If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then
Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados
Dim EmpresasFuncionalidades As New HybridDictionary
For Each Row As Data.DataRow In dttmp.Rows
EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString)
Next
ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades)
End If
UsuarioActual.Empresa = ObjEmpresa.Empresa
End If
ObjEmpresa.Dispose()
End Sub
Private Function EjecutarEnvioEstadoCuenta(UsuarioActual As Usuario, FechaI As DateTime, FechaF As DateTime) As JObject
Dim Facturas As New JArray()
Dim DebeTimbrar As Boolean = True
Dim Json As New JObject(
New JProperty("Empresa", UsuarioActual.Empresa.Empresa),
New JProperty("Usuario", UsuarioActual.Usuario),
New JProperty("FechaI", FechaI.ToString("dd/MM/yyy HH:mm:ss")),
New JProperty("FechaF", FechaF.ToString("dd/MM/yyy HH:mm:ss"))
)
Dim DTClientes As DataTable = Nothing
Dim ObjCliente As New ClsClientes
If ObjCliente.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, TipoCliente:=-1) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
DTClientes = ObjCliente.DtResultados.Copy()
End If
End If
ObjCliente.Dispose()
If DTClientes IsNot Nothing Then
For Each RowCliente As DataRow In DTClientes.Rows
Dim CveCliente As Integer = RowCliente("CveCliente").ToString().ToEntero()
Dim Correo As String = "jonathan.perez@adssistemas.mx" 'RowCliente("Correo").ToString()
Dim Cliente As New Modelos.ClienteModel(CveCliente, UsuarioActual.CveEmpresa)
GenerarPDFCrystal(UsuarioActual, Correo, "-1", "-1", Cliente)
Next
DTClientes.Dispose()
End If
Json.Add(New JProperty("Facturas", Facturas))
Return Json
End Function
Private Sub GenerarPDFCrystal(UsuarioActual As Usuario, Correo As String, FI As String, FF As String, Cliente As Modelos.ClienteModel)
Dim ArchivoPDF As Byte() = Nothing
Dim Formato As String = "PDF"
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepClientesCxC.rpt", UsuarioActual.Empresa.Ruta))
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", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, UsuarioActual.CveEmpresa)
'OBTENEMOS LOS DATOS
Dim DtCxCFact As DataTable = Nothing
Dim SaldoIngDolares As Double = 0
Dim SaldoIngPesos As Double = 0
Dim SaldoIngDolaresPesos As Double = 0
Dim TotalIng As Double = 0
Dim SaldoAntDolares As Double = 0
Dim SaldoAntPesos As Double = 0
Dim SaldoAntDolaresPesos As Double = 0
Dim TotalAnt As Double = 0
Dim ContaIng As Integer = 0
Dim ContaAnt As Integer = 0
Dim FechaCorte As Date = ("9999/01/01").ToDate
Dim TipoDocto As String = "-1"
Dim TipoDocto2 As String = "-1"
Dim FechaVencimientoI As String = "-1"
Dim FechaVencimientoF As String = "-1"
Dim dtt As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetCxCClienteDetalle(Cliente.CveCliente, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, CveClienteSucursal:=-1) Then
DtCxCFact = ObjMovtos.DtResultados.FiltraParametros("", "TipoDocto").Copy
'cargo los anticipos NC
DtCxCFact.Columns.Add("SaldoAnticipo", GetType(Decimal))
If ObjMovtos.GetAnticiposNCIxCCliente(Cliente.CveCliente, -1, -1) Then
dtt = ObjMovtos.DtResultados.FiltraParametros("SaldoVentaAnticipo = 0 AND ((Tipo = 'IxC' AND CveIE > 0) OR (Tipo = 'Ant' AND CveVenta > 0) OR (Tipo = 'NC' AND CveVenta > 0) OR (Tipo = 'Egs' AND CveVenta > 0) )")
End If
End If
ObjMovtos.Dispose()
Try
If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then
For Each drt As DataRow In dtt.Rows
Dim drr As DataRow = DtCxCFact.NewRow
drr("TipoDocto") = drt("Tipo")
drr("SerieFolio") = drt("Folio")
drr("Original") = drt("Original")
drr("TipoCambio") = drt("TipoCambio")
drr("Saldo") = 0
drr("SaldoAnticipo") = drt("Saldo")
drr("Fecha") = drt("Fecha")
drr("Moneda") = drt("Moneda")
drr("CveMoneda") = drt("CveMoneda")
DtCxCFact.Rows.Add(drr)
Next
End If
If DtCxCFact IsNot Nothing Then
For Each Row As DataRow In DtCxCFact.FiltraParametros($"TipoDocto IN ({TipoDocto2})").Rows
If Row("TipoDocto").ToString = "Ing" Or Row("TipoDocto").ToString = "Rem" Or (Row("TipoDocto").ToString = "Ant" And Row("Saldo").ToString.ToDouble > 0) Then 'Ingresos
ContaIng = ContaIng + 1
If Row("CveMoneda").ToString.ToEntero = 1 Then
SaldoIngPesos = SaldoIngPesos + Row("Saldo").ToString.ToDouble
ElseIf Row("CveMoneda").ToString.ToEntero = 2 Then
SaldoIngDolares = SaldoIngDolares + Row("Saldo").ToString.ToDouble
SaldoIngDolaresPesos = SaldoIngDolaresPesos + (Row("Saldo").ToString.ToDouble * Row("TipoCambio").ToString.ToDouble)
End If
ElseIf (Row("TipoDocto").ToString = "Ant" And Row("Saldo").ToString.ToDouble = 0) Or Row("TipoDocto").ToString = "IxC" Or Row("TipoDocto").ToString = "NC" Or Row("TipoDocto").ToString = "Dev" Then 'Anticipos, NC, IxC
ContaAnt = ContaAnt + 1
If Row("CveMoneda").ToString.ToEntero = 1 Then
If Row("TipoDocto").ToString = "Dev" Then
SaldoAntPesos = SaldoAntPesos + Row("Saldo").ToString.ToDouble
Else
SaldoAntPesos = SaldoAntPesos + Row("SaldoAnticipo").ToString.ToDouble
End If
ElseIf Row("CveMoneda").ToString.ToEntero = 2 Then
SaldoAntDolares = SaldoAntDolares + Row("Saldo").ToString.ToDouble
SaldoAntDolaresPesos = SaldoAntDolaresPesos + (Row("SaldoAnticipo").ToString.ToDouble * Row("TipoCambio").ToString.ToDouble)
End If
End If
Next
End If
TotalIng = SaldoIngPesos + SaldoIngDolaresPesos
TotalAnt = SaldoAntPesos + SaldoAntDolaresPesos
Dim DtCxCFact2 As DataTable = DtCxCFact.FiltraParametros($"TipoDocto IN ({TipoDocto2})")
'INGRESOS
If SaldoIngPesos > 0 Then
Dim drr As DataRow = DtCxCFact2.NewRow
drr("SerieFolio") = "Total Ing Pesos"
drr("Original") = DtCxCFact2.FiltraParametros("CveMoneda = 1").SUM("Original", "TipoDocto IN ('Ing','Rem') OR (TipoDocto = 'Ant' AND Saldo > 0)")
drr("Abonado") = DtCxCFact2.FiltraParametros("CveMoneda = 1").SUM("Abonado", "TipoDocto IN ('Ing','Rem') OR (TipoDocto = 'Ant' AND Saldo > 0)")
drr("Saldo") = SaldoIngPesos
drr("CveMoneda") = 1
DtCxCFact2.Rows.Add(drr)
End If
If SaldoIngDolares > 0 Then
Dim drr As DataRow = DtCxCFact2.NewRow
drr("SerieFolio") = "Total Ing Dólares"
drr("Original") = DtCxCFact2.FiltraParametros("CveMoneda = 2").SUM("Original", "TipoDocto IN ('Ing','Rem') OR (TipoDocto = 'Ant' AND Saldo > 0)")
drr("Abonado") = DtCxCFact2.FiltraParametros("CveMoneda = 2").SUM("Abonado", "TipoDocto IN ('Ing','Rem') OR (TipoDocto = 'Ant' AND Saldo > 0)")
drr("Saldo") = SaldoIngDolares
drr("CveMoneda") = 2
DtCxCFact2.Rows.Add(drr)
End If
'ANTICIPOS
If SaldoAntPesos > 0 Then
Dim drr As DataRow = DtCxCFact2.NewRow
drr("SerieFolio") = "Total Pesos"
drr("SaldoAnticipo") = SaldoAntPesos
drr("CveMoneda") = 1
DtCxCFact2.Rows.Add(drr)
End If
If SaldoAntDolares > 0 Then
Dim drr As DataRow = DtCxCFact2.NewRow
drr("SerieFolio") = "Total Dólares"
drr("SaldoAnticipo") = SaldoAntDolares
drr("CveMoneda") = 2
DtCxCFact2.Rows.Add(drr)
End If
If DtCxCFact2 IsNot Nothing AndAlso DtCxCFact2.Rows.Count > 0 Then
Dim dr As DataRow = DtCxCFact2.Rows(0)
Dim lista = New List(Of CrystalParametro)
lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa))
lista.Add(New CrystalParametro("TipoCuentas", ""))
lista.Add(New CrystalParametro("NombreCliente", Cliente.Nombre))
lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI)))
lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF)))
lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre))
lista.Add(New CrystalParametro("DireccionCliente", String.Format("Calle {0} #{1} Colonia {2}", Cliente.Direccion, If(Cliente.NoExt = "", "S/N", Cliente.NoExt), Cliente.Colonia)))
lista.Add(New CrystalParametro("ClienteCP", Cliente.CP))
lista.Add(New CrystalParametro("ClienteCiudad", Cliente.Ciudad))
lista.Add(New CrystalParametro("ClienteRFC", Cliente.RFC))
lista.Add(New CrystalParametro("ClienteTelefono", Cliente.Telefono))
lista.Add(New CrystalParametro("DiasCredito", Cliente.PlazoCobranza))
lista.Add(New CrystalParametro("LimiteCredito", Cliente.LimiteCredito))
lista.Add(New CrystalParametro("SaldoDisponible", (Cliente.LimiteCredito - DtCxCFact2(0)("Saldo").ToString.ToDouble).FormatoNumero))
lista.Add(New CrystalParametro("SaldoIngDolares", SaldoIngDolares.FormatoNumero))
lista.Add(New CrystalParametro("SaldoIngPesos", SaldoIngPesos.FormatoNumero))
lista.Add(New CrystalParametro("TotalIng", TotalIng.FormatoNumero))
lista.Add(New CrystalParametro("SaldoAntDolares", SaldoAntDolares.FormatoNumero))
lista.Add(New CrystalParametro("SaldoAntPesos", SaldoAntPesos.FormatoNumero))
lista.Add(New CrystalParametro("TotalAnt", TotalAnt.FormatoNumero))
lista.Add(New CrystalParametro("ContaIng", ContaIng))
lista.Add(New CrystalParametro("ContaAnt", ContaAnt))
If Imagen.Exists Then
lista.Add(New CrystalParametro("LogoPath", logouri))
Else
lista.Add(New CrystalParametro("LogoPath", ""))
End If
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)
Else
File = ImprimirPDFCrystal(HttpContext.Current.Server.MapPath("~/Empresas/Grales/Formatos/RepClientesCxC.rpt"), DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato)
End If
Catch ex As Exception
OnError("Ocurrió error al mandar MAIL de Orden de Compra", ex)
End Try
Else
Dim lista = New List(Of CrystalParametro)
lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa))
lista.Add(New CrystalParametro("TipoCuentas", "Todas"))
lista.Add(New CrystalParametro("NombreCliente", Cliente.Nombre))
lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI)))
lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF)))
lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre))
lista.Add(New CrystalParametro("DireccionCliente", String.Format("Calle {0} #{1} Colonia {2}", Cliente.Direccion, If(Cliente.NoExt = "", "S/N", Cliente.NoExt), Cliente.Colonia)))
lista.Add(New CrystalParametro("ClienteCP", Cliente.CP))
lista.Add(New CrystalParametro("ClienteCiudad", Cliente.Ciudad))
lista.Add(New CrystalParametro("ClienteRFC", Cliente.RFC))
lista.Add(New CrystalParametro("ClienteTelefono", Cliente.Telefono))
lista.Add(New CrystalParametro("DiasCredito", Cliente.PlazoCobranza))
lista.Add(New CrystalParametro("LimiteCredito", Cliente.LimiteCredito))
lista.Add(New CrystalParametro("SaldoDisponible", (Cliente.LimiteCredito).FormatoNumero))
lista.Add(New CrystalParametro("SaldoIngDolares", SaldoIngDolares.FormatoNumero))
lista.Add(New CrystalParametro("SaldoIngPesos", SaldoIngPesos.FormatoNumero))
lista.Add(New CrystalParametro("TotalIng", TotalIng.FormatoNumero))
lista.Add(New CrystalParametro("SaldoAntDolares", SaldoAntDolares.FormatoNumero))
lista.Add(New CrystalParametro("SaldoAntPesos", SaldoAntPesos.FormatoNumero))
lista.Add(New CrystalParametro("TotalAnt", TotalAnt.FormatoNumero))
lista.Add(New CrystalParametro("ContaIng", ContaIng))
lista.Add(New CrystalParametro("ContaAnt", ContaAnt))
If Imagen.Exists Then
lista.Add(New CrystalParametro("LogoPath", logouri))
Else
lista.Add(New CrystalParametro("LogoPath", ""))
End If
Dim drr As DataRow = DtCxCFact2.NewRow
drr("SerieFolio") = "Total Ing Pesos"
drr("Original") = DtCxCFact2.FiltraParametros("CveMoneda = 1").SUM("Original", "TipoDocto IN ('Ing','Rem') OR (TipoDocto = 'Ant' AND Saldo > 0)")
drr("Abonado") = DtCxCFact2.FiltraParametros("CveMoneda = 1").SUM("Abonado", "TipoDocto IN ('Ing','Rem') OR (TipoDocto = 'Ant' AND Saldo > 0)")
drr("Saldo") = 0
drr("SaldoAnticipo") = 0
drr("CveMoneda") = 1
DtCxCFact2.Rows.Add(drr)
If Archivo.Exists Then
ArchivoPDF = ImprimirPDFCrystal($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.rpt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato)
Else
ArchivoPDF = ImprimirPDFCrystal(HttpContext.Current.Server.MapPath("~/Empresas/Grales/Formatos/RepClientesCxC.rpt"), DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato)
End If
End If
Catch ex As Exception
ArchivoPDF = Nothing
End Try
Try
Dim Cuerpo As String = String.Format("Estimado cliente {0}, al presente se correo se anexa su estado actual de cartera en {1}.<br />
<br />
Quedamos a sus ordenes para cualquier duda o aclaración con su agente de Ventas.<br />
<br />
<br />
Gracias por la atención brindada al presente.<br /> Reciba un cordial saludo.<br />
<br />
<b>ESTE CORREO SE GENERO EN FORMA AUTOMATICA.</b>", Cliente.NombreComercial, UsuarioActual.Empresa.Empresa)
MandaCorreo(ArchivoPDF, Correo, $"Estado Actual de Cartera {UsuarioActual.Empresa.Empresa}", Cuerpo)
Catch ex As Exception
Alert("Ocurrió un error al enviar el correo", TipoMensaje.MsgAdvertencia)
End Try
End Sub
Public Function ImprimirPDFCrystal(RutaReporte As String, DataSource As DataTable, Parametros As List(Of CrystalParametro), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportDocument = Nothing) As Byte()
'limpio ReportViwer
Dim sw As New System.Diagnostics.Stopwatch()
sw.Start()
If IsNothing(MR) Then MR = New ReportDocument()
Dim Bytes As Byte() = Nothing
Dim formatType As ExportFormatType = ExportFormatType.NoFormat
Try
MR.Load(RutaReporte)
MR.SetDataSource(DataSource)
For Each item As CrystalParametro In Parametros
MR.SetParameterValue(item.Nombre, item.Valor)
Next
Select Case Formato
Case "PDF"
formatType = ExportFormatType.PortableDocFormat
'Format = "Application/pdf"
Case "EXCEL"
formatType = ExportFormatType.Excel
'Format = "application/ms-excel"
End Select
Dim Stream As IO.Stream = MR.ExportToStream(formatType)
Dim BD As New BinaryReader(MR.ExportToStream(formatType))
Bytes = BD.ReadBytes(CInt(MR.ExportToStream(formatType).Length))
BD.Dispose()
Stream.Dispose()
'Dim Buffer(CInt(Stream.Length)) As Byte
'Bytes = Buffer
'MR.ExportToHttpResponse(formatType, Response, True, NombreArchivo)
Catch ex As CrystalReportsException
GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing,
$"Error: {If(ex.InnerException.Message, 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"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}"))
'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017
'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}")
Catch ex As Exception
GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing,
$"Error: {If(ex.InnerException.Message, 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"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}"))
'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017
'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}")
End Try
sw.Stop()
If sw.Elapsed.TotalSeconds > 10 Then
GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ")
End If
If MR IsNot Nothing Then MR.Dispose()
Return Bytes
End Function
Private Sub MandaCorreo(File As Byte(), Para As String, Asunto As String, Body As String)
Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para)
'a.GuardaLog()
Dim Mail As New ClsSisMail()
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "EstadoDeCuenta.pdf"})
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail)
End Sub
#End Region
End Class

View File

@@ -1,552 +0,0 @@

Imports System.Data
Imports Extensiones
Imports System.Xml
'Imports msExcel = Microsoft.Office.Interop.Excel
Imports Microsoft.Reporting.WebForms
Partial Class General_SaldosIniciales
Inherits ClsPaginas
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
End If
End Sub
Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo)
Else
Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError)
End If
End Sub
Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String)
Dim dt As New DataTable
Dim Conexion As Odbc.OdbcConnection = Nothing
Dim ErrorArchivo = False
Dim ErrorExcel = False
Dim strConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Ruta + FileName + ";Extended Properties=Excel 8.0;"
Dim objDbFactory As Common.DbProviderFactory = Common.DbProviderFactories.GetFactory("System.Data.OleDb")
Dim objDbAdapter As Common.DbDataAdapter = objDbFactory.CreateDataAdapter()
Dim objDbConnection As Common.DbConnection = objDbFactory.CreateConnection()
objDbConnection.ConnectionString = strConnString
objDbConnection.Open()
Dim objSheetNames As DataTable = objDbConnection.GetSchema("Tables")
Dim HojaExcel As String = objSheetNames.FiltroPrimeroValor("TABLE_NAME")
Try
Select Case Tipo
Case "CSV"
Conexion = New Odbc.OdbcConnection("Driver={Microsoft Access Text Driver (*.txt, *.csv)};Dbq=" + Ruta + ";Extensions=asc,csv,tab,txt;")
Conexion.Open()
Dim cmd = Conexion.CreateCommand()
cmd.CommandType = CommandType.Text
cmd.CommandText = $"SELECT * FROM [{FileName}]"
Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
DataAdapter.Fill(dt)
Case "EXCEL"
Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";")
Conexion.Open()
Dim cmd = Conexion.CreateCommand()
cmd.CommandType = CommandType.Text
cmd.CommandText = $"SELECT * FROM [{HojaExcel}]"
Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
DataAdapter.Fill(dt)
Case Else
Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError)
Exit Sub
End Select
Catch ex As Exception
ErrorArchivo = True
OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
End Try
Conexion.Close()
If Not ErrorArchivo Then
If RblFormato.SelectedValue = "1" Or RblFormato.SelectedValue = "2" Then
If Not dt.Columns(0).ColumnName = "Codigo" Then
Alert("El nombre de la primera columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(1).ColumnName = "RazonSocial" Then
Alert("El nombre de la segunda columna debe ser 'Fecha'.Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(2).ColumnName = "RFC" Then
Alert("El nombre de la tercera columna debe ser 'RFC'.Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(3).ColumnName = "Calle" Then
Alert("El nombre de la cuarta columna debe ser 'Calle'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(4).ColumnName = "Número exterior" Then
Alert("El nombre de la quinta columna debe ser 'Número exterior' .Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(5).ColumnName = "Colonia" Then
Alert("El nombre de la sexta columna debe ser 'Colonia'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(6).ColumnName = "Código postal" Then
Alert("El nombre de la séptima columna debe ser 'Código postal'.Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(7).ColumnName = "Población" Then
Alert("El nombre de la octava columna debe ser 'Población'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(8).ColumnName = "Estado" Then
Alert("El nombre de la novena columna debe ser 'Estado'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(9).ColumnName = "Teléfono" Then
Alert("El nombre de la décima columna debe ser 'Teléfono'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(10).ColumnName = "Contacto" Then
Alert("El nombre de la onceava columna debe ser 'Contacto'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(11).ColumnName = "Celular Contacto" Then
Alert("El nombre de la doceava columna debe ser 'Celular Contacto'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
ElseIf RblFormato.SelectedValue = "3" Or RblFormato.SelectedValue = "4" Then
If Not dt.Columns(0).ColumnName = "Sucursal" Then
Alert("El nombre de la primera columna debe ser 'Sucursal'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(1).ColumnName = "RFC" Then
Alert("El nombre de la segunda columna debe ser 'RFC'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(2).ColumnName = "Serie" Then
Alert("El nombre de la tercera columna debe ser 'Serie'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(3).ColumnName = "Folio" Then
Alert("El nombre de la cuarta columna debe ser 'Folio'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(4).ColumnName = "Fecha" Then
Alert("El nombre de la quinta columna debe ser 'Fecha'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(5).ColumnName = "SubTotal" Then
Alert("El nombre de la sexta columna debe ser 'SubTotal'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(6).ColumnName = "IVA" Then
Alert("El nombre de la séptima columna debe ser 'IVA'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(7).ColumnName = "Total" Then
Alert("El nombre de la octava columna debe ser 'Total'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(8).ColumnName = "Saldo" Then
Alert("El nombre de la novena columna debe ser 'Saldo'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(9).ColumnName = "Tipo Documento" Then
Alert("El nombre de la décima columna debe ser 'Tipo Documento'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
ElseIf RblFormato.SelectedValue = "5" Then
If Not dt.Columns(0).ColumnName = "Codigo" Then
Alert("El nombre de la primera columna debe ser 'Código'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(1).ColumnName = "Descripción" Then
Alert("El nombre de la segunda columna debe ser 'Descripcion'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(2).ColumnName = "Marca" Then
Alert("El nombre de la tercera columna debe ser 'Serie'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(3).ColumnName = "Código de Barras" Then
Alert("El nombre de la cuarta columna debe ser 'Código de Barras'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(4).ColumnName = "Unidad de Medida" Then
Alert("El nombre de la quinta columna debe ser 'Unidad de Medida'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(5).ColumnName = "Producto/Servicio" Then
Alert("El nombre de la sexta columna debe ser 'Producto/Servicio'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(6).ColumnName = "Clasificación" Then
Alert("El nombre de la séptima columna debe ser 'Clasificacion'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(7).ColumnName = "Precio" Then
Alert("El nombre de la octava columna debe ser 'Precio'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
End If
dt.TableName = "Datos"
Dim NumRows As Integer = dt.Rows.Count
If Not ErrorArchivo Then
'P R O V E E D O R E S
If RblFormato.SelectedValue = "1" Then
Dim ObjProv As New ClsCompProveedores
Dim ErrorProv As Boolean = False
Dim Contador As Integer = 0
Dim ExisteProveedor As Boolean = False
ObjProv.IniciaTransacSQL()
For Each Row As DataRow In dt.Rows
Dim Codigo As String = Row("Codigo").ToString
Dim RazonSocial As String = Row("RazonSocial").ToString
Dim RFC As String = Row("RFC").ToString.Trim
Dim Calle As String = Row("Calle").ToString
Dim NumExt As Decimal = Row("Número exterior").ToString.ToDecimal
Dim Colonia As String = Row("Colonia").ToString
Dim CodigoPostal As Decimal = Row("Código Postal").ToString.ToDecimal
Dim Poblacion As String = Row("Población").ToString
Dim Estado As String = Row("Estado").ToString
Dim Telefono As String = Row("Teléfono").ToString
Dim Contacto As String = Row("Contacto").ToString
Dim CelularContacto As String = Row("Celular Contacto").ToString
Dim CveProveedor As Integer = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString.ToEntero
If CveProveedor > 0 Then
ExisteProveedor = True
Contador = Contador + 1
Else
If Not ObjProv.AddProveedor(Codigo, RazonSocial, RazonSocial, RazonSocial, RFC, Calle, Telefono,
Contacto, "", Telefono, -1, -1, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "",
-1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", 1, -1, "", "", False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
ErrorProv = True
Exit For
End If
End If
Next
If Not ErrorProv Then
ObjProv.Commit()
If ObjProv.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", 1, -1) Then Application("GlobalDTCompProveedores") = ObjProv.DtResultados
If Contador > 0 Then
Alert(String.Format("Se agregaron: <b>{0}</b> Proveedores correctamente. <br>Se Omitieron: <b>{1}</b> Clientes ya que ya se encontraban registrados.", NumRows - Contador, Contador), TipoMensaje.MsgInformacion)
Else
Alert(String.Format("Se agregaron: <b>{0}</b> Proveedores correctamente.", NumRows), TipoMensaje.MsgInformacion)
End If
TxtExcel.Text = ""
UpDatos.Update()
Else
ObjProv.RollBack()
End If
ObjProv.Dispose()
' C L I E N T E S
ElseIf RblFormato.SelectedValue = "2" Then
Dim ObjClientes As New ClsClientes
Dim ErrorClientes As Boolean = False
Dim ExisteCliente As Boolean = False
Dim Contador As Integer = 0
ObjClientes.IniciaTransacSQL()
For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows
Dim Codigo As String = Row("Codigo").ToString
Dim RazonSocial As String = Row("RazonSocial").ToString
Dim RFC As String = Row("RFC").ToString.Trim
Dim Calle As String = Row("Calle").ToString
Dim NumExt As Decimal = Row("Número exterior").ToString.ToDecimal
Dim Colonia As String = Row("Colonia").ToString
Dim CodigoPostal As Decimal = Row("Código Postal").ToString.ToDecimal
Dim Poblacion As String = Row("Población").ToString
Dim Estado As String = Row("Estado").ToString
Dim Telefono As String = Row("Teléfono").ToString
Dim Contacto As String = Row("Contacto").ToString
Dim CelularContacto As String = Row("Celular Contacto").ToString
Dim CveCliente As Integer = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString.ToEntero
If CveCliente > 0 Then
ExisteCliente = True
Contador = Contador + 1
Else
If Not ObjClientes.AddCliente(RazonSocial, RazonSocial, Calle, "", "", Colonia, "", "", Estado, RFC, CodigoPostal, "", "", Contacto, "", "", "", "", -1, False, 1, -1, -1, False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "", -1, -1, -1,
"-1", "-1", "", 0, "", 0, "0", -1, "0", 0, "", 0, "", 0, "", 0, "", "", "", "", 0, "", 1, False, "", "", "", False, "", "", "", "", "", False, "", "", "", False) Then
ErrorClientes = True
RFC.GuardaLog
Exit For
End If
End If
Next
If Not ErrorClientes Then
ObjClientes.Commit()
If ObjClientes.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, -1) Then Application("GlobalDTCliente") = ObjClientes.DtResultados
If Contador > 0 Then
Alert(String.Format("Se agregaron: <b>{0}</b> Clientes correctamente. <br>Se Omitieron: <b>{1}</b> Clientes ya que ya se encontraban registrados.", NumRows - Contador, Contador), TipoMensaje.MsgInformacion)
Else
Alert(String.Format("Se agregaron: <b>{0}</b> Clientes correctamente.", NumRows), TipoMensaje.MsgInformacion)
End If
TxtExcel.Text = ""
UpDatos.Update()
Else
ObjClientes.RollBack()
End If
ObjClientes.Dispose()
'P R O V E E D O R E S - F A C T U R A S
ElseIf RblFormato.SelectedValue = "3" Then
Dim ObjCompras As New ClsCompras
Dim ErrorCompras As Boolean = False
Dim ObjConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL())
Dim CveCompra As Integer
Dim Contador As Integer = 0
Dim ExisteCompra As Boolean = False
Dim DtProveedores = New DataTable
DtProveedores = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
For Each Row As DataRow In dt.Rows
Dim Sucursal As String = Row("Sucursal").ToString
Dim RFC As String = Row("RFC").ToString.Trim
Dim Serie As String = Row("Serie").ToString
Dim Folio As Integer = Row("Folio").ToString.ToEntero
Dim Fecha As Date = Row("Fecha").ToString.ToDate
Dim SubTotal As Double = Row("SubTotal").ToString.ToDouble
Dim IVA As Double = Row("IVA").ToString.ToDouble
Dim Total As Double = Row("Total").ToString.ToDouble
Dim Saldo As Double = Row("Saldo").ToString.ToDouble
Dim TipoDocto As String = Row("Tipo Documento").ToString
Dim CveProveedor As Integer = DtProveedores.FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString.ToEntero
Dim CvePS As Integer = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS").ToString.ToEntero
Dim CveUnidadMedida As Integer = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveUnidadMedida").ToString.ToEntero
If Not CvePS > 0 Then Alert(String.Format("No se encontró el Producto Servicio"), TipoMensaje.MsgError) : ErrorCompras = True
If Not CveUnidadMedida > 0 Then Alert(String.Format("No se encontró la Unidad de Medida."), TipoMensaje.MsgError) : ErrorCompras = True
If Not CveProveedor > 0 Then Alert(String.Format("No se encontró el Proveedor con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorCompras = True : Exit For
TipoDocto = IIf(TipoDocto = "Ingresos", "Fac", "NC")
'PrePóliza
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Compras/SaldoInicial", 1, Total, Total, 1, Fecha, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not CvePrePoliza > 0 Then ErrorCompras = True : Exit For
'Compra
If Not ObjCompras.AddCompra(TipoDocto, "", Serie, Folio, Folio, CveProveedor.ToEntero, SubTotal, 0, 0, IVA, 0, 0, 0, 0, 0, Total, Fecha, 1, 1, "-1".ToDate,
True, "", 1, CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
ErrorCompras = True
Exit For
End If
CveCompra = ObjCompras.CveCompra
'Compra Detalle
If Not ObjCompras.AddCompraDetalle(CveCompra, CveUnidadMedida, CvePS, -1, -1, 0, 1, SubTotal, 0.16, SubTotal, 0, "Carga Inicial", -1) Then
ErrorCompras = True
Exit For
End If
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Folio, IIf(TipoDocto = "Fac", 5, 18), String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, SubTotal, Folio, 6, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, IVA, Folio, 14, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For
'Saldo
If Saldo < Total Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Folio, 17, Folio, Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Folio, 95, Folio, Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor) Then ErrorCompras = True : Exit For
End If
Next
If Not ErrorCompras Then
If Contador > 0 Then
Alert(String.Format("Se agregaron: <b>{0}</b> Compras correctamente.<br>Se Omitieron: <b>{1}</b> Compras ya que ya se encuentran registradas.", NumRows - Contador, Contador), TipoMensaje.MsgInformacion)
Else
Alert(String.Format("Se agregaron: <b>{0}</b> Compras correctamente.", NumRows), TipoMensaje.MsgInformacion)
End If
Alert(String.Format("Se agregaron: <b>{0}</b> Compras correctamente.", NumRows), TipoMensaje.MsgInformacion)
ObjCompras.Commit()
TxtExcel.Text = ""
UpDatos.Update()
Else
ObjCompras.RollBack()
End If
ObjCompras.Dispose()
'C L I E N T E S - F A C T U R A S
ElseIf RblFormato.SelectedValue = "4" Then
Dim ObjVentas As New ClsVentas
Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL())
Dim ErrorVentas As Boolean = False
Dim CveVenta As Integer
Dim DtClientes = New DataTable
' Dim ExisteVenta As Boolean = False
'Dim Contador As Integer = 0
DtClientes = GlobalDTCliente(UsuarioActual.CveEmpresa)
Dim CveSucursal As Integer = GlobalDTSucursales(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSucursal").ToString.ToEntero
Dim CvePS As Integer = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS").ToString.ToEntero
Dim CveUnidadMedida As Integer = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveUnidadMedida").ToString.ToEntero
If Not CvePS > 0 Then Alert(String.Format("No se encontró el Producto Servicio"), TipoMensaje.MsgError) : ErrorVentas = True
If Not CveSucursal > 0 Then Alert("No se encontró la sucursal.", TipoMensaje.MsgError) : ErrorVentas = True
If Not CveUnidadMedida > 0 Then Alert(String.Format("No se encontró la Unidad de Medida."), TipoMensaje.MsgError) : ErrorVentas = True
For Each Row As DataRow In dt.Rows
Dim Sucursal As String = Row("Sucursal").ToString
Dim TipoDocto As String = Row("Tipo Documento").ToString
Dim RFC As String = Row("RFC").ToString.Trim
Dim Serie As String = Row("Serie").ToString
Dim Folio As Integer = Row("Folio").ToString.ToEntero
Dim Fecha As Date = Row("Fecha").ToString.ToDate
Dim SubTotal As Double = Row("SubTotal").ToString.ToDouble
Dim IVA As Double = Row("IVA").ToString.ToDouble
Dim Total As Double = Row("Total").ToString.ToDouble
Dim Saldo As Double = Row("Saldo").ToString.ToDouble
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString.ToEntero
If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For
TipoDocto = IIf(TipoDocto = "Ingresos", "Ing", "Egs")
'PrePóliza
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Venta/SaldoIncial", 1, Total, Total, 1, Fecha, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not CvePrePoliza > 0 Then ErrorVentas = True : Exit For
'Venta
If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero, -1, SubTotal, 0, 0, IVA, 0, 0, Total, 1, 1,
0, 0, 0, Fecha, Fecha, "", "", Fecha, 0, CveSucursal, CveSucursal, "", "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, -1, 0, CvePrePoliza,
UsuarioActual.CveUsuario, CveSucursal, UsuarioActual.CveEmpresa, Serie:=Serie) Then
ErrorVentas = True
Exit For
End If
CveVenta = ObjVentas.CveVenta
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, 0.16, SubTotal, "Saldo Inicial", 0, 0, -1, 0) Then
ErrorVentas = True
Exit For
End If
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, Folio, 4, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=1) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Folio, 1, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, Folio, 13, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente) Then ErrorVentas = True : Exit For
'Saldo
If Saldo < Total Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Folio, 2, Folio, Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Folio, 95, Folio, Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente) Then ErrorVentas = True : Exit For
End If
Next
If Not ErrorVentas Then
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente.", NumRows), TipoMensaje.MsgInformacion)
ObjVentas.Commit()
TxtExcel.Text = ""
UpDatos.Update()
Else
ObjVentas.RollBack()
End If
ObjVentas.Dispose()
'P R O D U C T O S / S E R V I C I O S
ElseIf RblFormato.SelectedValue = "5" Then
Dim ObjPS As New ClsProductosServicios
Dim ErrorPS As Boolean = False
Dim ExistePS As Boolean = False
Dim Contador As Integer = 0
' ObjPS.IniciaTransacSQL()
For Each Row As DataRow In dt.Rows
Dim Codigo As String = Row("Codigo").ToString
Dim Descripcion As String = Row("Descripcion").ToString
Dim TipoPS As String = Row("Tipo").ToString.Trim
Dim CodigoBarras As String = Row("Código Barras").ToString
Dim UnidadMedida As String = Row("Unidad Medida").ToString
Dim Clasificacion As String = Row("Clasificacion").ToString
Dim Marca As Decimal = Row("Marca").ToString.ToDecimal
Dim AplicaSerie As String = Row("AplicaSerie").ToString
Dim Precio As String = Row("Precio").ToString
Dim IEPS As String = Row("IEPS").ToString
Dim CvePS As Integer = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS", $"Codigo = '{Codigo}'").ToString.ToEntero
If CvePS > 0 Then
ExistePS = True
Contador = Contador + 1
Else
If Not ObjPS.AddPS(1, 1, 1, Codigo, "", "", Descripcion, Precio, 0, 0, False, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, 1) Then
ErrorPS = True
Codigo.GuardaLog
Exit For
End If
End If
Next
If Not ErrorPS Then
'ObjPS.Commit()
If ObjPS.GetPS(-1, -1, -1) Then Application("GlobalDTProductosServicios") = ObjPS.DtResultados.AsEnumerable()
If Contador > 0 Then
Alert(String.Format("Se agregaron: <b>{0}</b> Productos/Servicios correctamente. <br>Se Omitieron: <b>{1}</b> Productos/Servicios ya que ya se encontraban registrados.", NumRows - Contador, Contador), TipoMensaje.MsgInformacion)
Else
Alert(String.Format("Se agregaron: <b>{0}</b> Productos/Servicios correctamente.", NumRows), TipoMensaje.MsgInformacion)
End If
TxtExcel.Text = ""
UpDatos.Update()
Else
'ObjPS.RollBack()
End If
ObjPS.Dispose()
End If
End If
End If
End Sub
Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click
Dim Directorio As String = ""
If RblFormato.SelectedValue = "1" Then
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoProveedores.xlsx"
ElseIf RblFormato.SelectedValue = "2" Then
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoClientes.xlsx"
ElseIf RblFormato.SelectedValue = "3" Then
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoProveedores-Facturas.xlsx"
ElseIf RblFormato.SelectedValue = "4" Then
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoClientes-Facturas.xlsx"
End If
Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then
Response.Clear()
Response.ClearHeaders()
Response.ClearContent()
Response.AddHeader("Content-Disposition", "attachment; filename=" + Archivo.Name)
Response.AddHeader("Content-Length", Archivo.Length.ToString())
Response.ContentType = "text/plain"
Response.Flush()
Response.TransmitFile(Archivo.FullName)
Response.End()
End If
End Sub
End Class

View File

@@ -816,19 +816,24 @@ Partial Class General_SaldosIniciales
End If
Else
If ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", CodigoBarras, Descripcion, Precio, 0, 0, False, 0, False, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, 1,
CveTipoPS:=CveTipoPS, CveSATPS:=CveSATPS, CveMarca:=CveMarca, CveTamaño:=CveTamaño, CveMedida:=CveMedida, CveRinTamaño:=CveRinTamaño,
CveModelo:=CveModelo, Litraje:=Litraje, IEPSPorcentaje:=IEPS, CveClasificacion2:=CveClasificacion2) <= 0 Then
'If ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", "", Descripcion, 0, 0, 0, False, 0, False, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, 1,
' CveTipoPS:=CveTipoPS, CveSATPS:=CveSATPS, CveMarca:=CveMarca, CveTamaño:=CveTamaño, CveMedida:=CveMedida) <= 0 Then
ErrorPS = True
Codigo.GuardaLog
Exit For
Else
If ObjPS.GetPS(-1, -1, UsuarioActual.CveEmpresa) Then
DTPS = ObjPS.DtResultados
End If
End If
If Codigo.Length > 0 Then
If ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", CodigoBarras, Descripcion, Precio, 0, 0, False, 0, False, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, 1,
CveTipoPS:=CveTipoPS, CveSATPS:=CveSATPS, CveMarca:=CveMarca, CveTamaño:=CveTamaño, CveMedida:=CveMedida, CveRinTamaño:=CveRinTamaño,
CveModelo:=CveModelo, Litraje:=Litraje, IEPSPorcentaje:=IEPS, CveClasificacion2:=CveClasificacion2) <= 0 Then
'If ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", "", Descripcion, 0, 0, 0, False, 0, False, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, 1,
' CveTipoPS:=CveTipoPS, CveSATPS:=CveSATPS, CveMarca:=CveMarca, CveTamaño:=CveTamaño, CveMedida:=CveMedida) <= 0 Then
ErrorPS = True
Codigo.GuardaLog
Exit For
Else
If ObjPS.GetPS(-1, -1, UsuarioActual.CveEmpresa) Then
DTPS = ObjPS.DtResultados
End If
End If
End If
End If
Next

View File

@@ -9,6 +9,7 @@ Imports Microsoft.Reporting.WebForms
Imports System.Security.Cryptography.X509Certificates
Imports System.Globalization
Imports System.Net.Http
Imports Newtonsoft.Json.Linq
Partial Class Ventas
Inherits ClsPaginas
@@ -6733,13 +6734,11 @@ Partial Class Ventas
End If
End If
'ENVIAR POLIZA VIRTUAL
If ErrorList.Count = 0 Then
If UsuarioActual.Empresa.Funcionalidad(576) = "1" Then
If Not GeneraPolizaVentaWS(ObjVentas, ObjFactura) Then
ErrorList.Add("Ocurrió un error al registrar los movimientos de almacén del contrato de consignación")
End If
End If
End If
'If ErrorList.Count = 0 Then
' If UsuarioActual.Empresa.Funcionalidad(576) = "1" Then
' GeneraPolizaVentaWS(ObjFactura)
' End If
'End If
If ObjFactura.CveVenta > 0 AndAlso ErrorList.Count = 0 Then
@@ -15309,7 +15308,6 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(575) = "1" Then
'Le damos salida normal
If ConSalida Then
GeneroMovimientoAlmacen = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenSalida, 40, CveMoneda, CveRemision, AplicaMovimientoDetalleEntrada:=AplicaMovimientoDetalleEntrada, MovimientoPrePoliza:=True, ObjConta:=ObjConta) > 0
If Not GeneroMovimientoAlmacen Then
@@ -15319,14 +15317,9 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
If Not GeneroMovimientoAlmacen Then
GeneroMovimientoAlmacen = GenerarMovimientoAlmacenVirtual(ObjInventario, ObjFactura) > 0
If Not GeneroMovimientoAlmacen Then
OcurrioError = True
End If
OcurrioError = Not GenerarMovimientoAlmacenVirtual(CveRemision, ObjInventario, ObjFactura)
End If
End If
End If
Else
'Le damos salida de apartado por traspaso
@@ -15351,12 +15344,7 @@ Partial Class Ventas
If ConSalida AndAlso Not OcurrioError Then
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
GeneroMovimientoAlmacen = GenerarMovimientoAlmacenVirtual(ObjInventario, ObjFactura) > 0
If Not GeneroMovimientoAlmacen Then
OcurrioError = True
End If
OcurrioError = Not GenerarMovimientoAlmacenVirtual(CveRemision, ObjInventario, ObjFactura)
End If
If Not OcurrioError Then
@@ -15612,119 +15600,61 @@ Partial Class Ventas
'Return Not OcurrioError
End Function
Private Function GenerarMovimientoAlmacenVirtual(ByRef ObjInventario As ClsInventarios, ObjFactura As Modelos.Factura) As Integer
Private Function GenerarMovimientoAlmacenVirtual(CveRemision As Integer, ByRef ObjInventario As ClsInventarios, ObjFactura As Modelos.Factura) As Boolean
Dim OcurrioError As Boolean = False
Dim CveMovimientoVirtual As Integer = -1
Dim DtPSVirtual As New DataTable("DtTamanios")
DtPSVirtual.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
DtPSVirtual.Columns.Add(New DataColumn("Cantidad", GetType(Decimal)))
DtPSVirtual.Columns.Add(New DataColumn("PU", GetType(Decimal)))
DtPSVirtual.Columns.Add(New DataColumn("CveUM", GetType(Integer)))
Try
Dim CveMovimientoVirtual As Integer = -1
Dim CveAlmacenVirtual As Integer = -1
Dim CveConceptoMovimientoVirtual As Integer = 3
Dim DtPSVirtual As DataTable = Nothing
Dim DtTamanios As DataTable = Nothing
Dim CveMovimientoEntradaDev As Integer = -1
Dim DtTamanios As DataTable = Nothing
Dim ObjAcumuladores As New ClsAcumuladores
If ObjAcumuladores.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
DtTamanios = ObjAcumuladores.DtResultados.Copy()
End If
ObjAcumuladores.Dispose()
If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then
Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND CveTipoAlmacen = 24 AND CveConcepto = 2 AND CveVenta > 0")
Dim CveConceptoMovimientoVirtual As Integer = 3
Dim CveAlmacenVirtual As Integer = -1
For Each GvRow As DataRow In ObjFactura.DtDetalle.Rows
For Each Tam As DataRow In DtTamanios.Rows
If Tam("CveTamaño").ToString() = GvRow("CveTamaño").ToString() Then
Dim CvePSCargo = Tam("CvePSCargo").ToString().ToEntero()
Dim Row As DataRow = DtPSVirtual.NewRow()
Row("CvePS") = CvePSCargo
Row("Cantidad") = GvRow("Cantidad").ToString().ToDecimal()
Row("PU") = 0
Row("CveUM") = GvRow("CveUM").ToString().ToEntero()
DtPSVirtual.Rows.Add(Row)
End If
Next
Next
CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={ObjFactura.CveSubProyecto}").ToEntero()
If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 Then
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, ObjFactura.CveVenta, -1, -1, Modulo:="Vta/E")
If CveMovimientoVirtual > 0 Then
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim PU As Double = RowUsado("PU").ToString().ToDouble()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
OcurrioError = True
Exit For
End If
Next
CveMovimientoEntradaDev = RowMovimiento("CveMovimiento").ToString().ToEntero()
CveAlmacenVirtual = RowMovimiento("CveAlmacen").ToString().ToEntero()
Else
OcurrioError = True
End If
Else
'CARGA CONCEPTOS DEVUELTOS EN LA VENTA
If ObjInventario.GetMovimientosDetalle(CveMovimientoEntradaDev, UsuarioActual.CveEmpresa) Then
DtPSVirtual = ObjInventario.DtResultados.Copy()
Else
OcurrioError = True
End If
If Not OcurrioError AndAlso DtPSVirtual.Rows.Count > 0 Then
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, ObjFactura.CveVenta, -1, -1, Modulo:="Vta/V")
If CveMovimientoVirtual > 0 Then
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim PU As Double = RowUsado("PU").ToString().ToDouble()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
OcurrioError = True
Exit For
End If
Next
Else
OcurrioError = True
End If
End If
Catch ex As Exception
OnError("Ocurrió un error al generar el almacen virtual.", ex)
OcurrioError = True
End If
End Try
If DtPSVirtual.Rows.Count = 0 Then
OcurrioError = True
End If
'Dim ContadorMovtosDetalles = 0
'Dim DtMovDetalle As DataTable = Nothing
'If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
' DtMovDetalle = ObjInventario.DtResultados.Copy()
'End If
''Creamos el movimiento
'Dim CveMovimientoInventario As Integer = ObjInventario.AddMovimiento(CveAlmacen, 2, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, CveMovimientoRelacionado:=CveMovimientoSalida)
'If CveMovimientoInventario > 0 Then
' 'Agregamos los detalles
' For Each MovDet As DataRow In DtMovDetalle.Rows
' Dim Cantidad = MovDet("Cantidad").ToString.ToDecimal
' Dim CveUnidad As Integer = MovDet("CveUM").ToString.ToEntero
' Dim PU As Decimal = MovDet("PU").ToString.ToDecimal
' Dim CveProducto As Integer = MovDet("CvePS").ToString.ToEntero
' Dim SerieLote As String = MovDet("SerieLote").ToString
' If Cantidad < 0 Then
' Alert("Ocurrió un Error al generar los movimientos de almacén. Por favor comuniquese con atención SIG.", TipoMensaje.MsgError)
' OcurrioError = True
' Exit For
' End If
' If ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, Cantidad, CveUnidad, CveProducto, PU, -1, SerieLote:=SerieLote) Then
' ContadorMovtosDetalles += 1
' Else
' OcurrioError = True
' Exit For
' End If
' Next
' 'VALIDA QUE SE HALLAN AGREGADO DETALLES AL MOVIMIENTO
' If ContadorMovtosDetalles = 0 Then
' OcurrioError = True
' End If
'Else
' OcurrioError = True
'End If
If OcurrioError Then
Return -1
Else
Return CveMovimientoVirtual
End If
Return Not OcurrioError
End Function
Private Function SalidaAlmacenMateriales(ByRef ObjInventario As ClsInventarios, CveOS As Integer, ByRef ObjConta As ClsContabilidad, ConSalida As Boolean, ConceptoMovimiento As Integer) As Boolean
@@ -23810,12 +23740,13 @@ Partial Class Ventas
CargaRNC()
RegistraScript("$('#ModalAplicarRemisionesNC').modal({backdrop: 'static', keyboard: false });")
End Sub
Protected Function GeneraPolizaVentaWS(ByRef ObjVentas As ClsVentas, ObjFactura As Modelos.Factura) As Boolean
Protected Sub GeneraPolizaVentaWS(ObjFactura As Modelos.Factura)
Dim DtUsados As DataTable = Nothing
If ObjVentas.GetVentasUsadosDetalle(ObjFactura.CveVenta) Then
DtUsados = ObjVentas.DtResultados.Copy()
Dim ObjAcum As New ClsAcumuladores
If ObjAcum.GetGarantiasDetalle(ObjFactura.CveVenta) Then
DtUsados = ObjAcum.DtResultados.Copy()
End If
ObjAcum.Dispose()
For Each Row As DataRow In DtUsados.Rows
Dim obj As New Modelos.MPolizaVentaWS
@@ -23842,7 +23773,7 @@ Partial Class Ventas
obj.sale_id = String.Format("{0}{1}{2}", ObjFactura.Serie, ObjFactura.Folio, ObjFactura.CveVenta)
'DATOS DEL PRODUCTO
obj.product_code = Row("Codigo").ToString()
obj.product_code = Row("Code17").ToString()
obj.product_unique_code = "" 'se indique el código único de la batería.
obj.product_sale_type = "01 " 'VENTA
@@ -23859,11 +23790,10 @@ Partial Class Ventas
EnviarPolizaVentaWS(obj)
Next
Return True
End Function
Protected Sub EnviarPolizaVentaWS(obj As Modelos.MPolizaVentaWS)
End Sub
Protected Function EnviarPolizaVentaWS(obj As Modelos.MPolizaVentaWS) As Boolean
Dim Retorno As Boolean = False
Dim Respuesta As String = "[]"
Dim User As String = "cslth.2809@jcilink.com"
@@ -23909,11 +23839,29 @@ Partial Class Ventas
Dim response = wc.PostAsync(Url, content).Result
Respuesta = response.Content.ReadAsStringAsync().Result
Dim resp = JArray.Parse(Respuesta)
If resp.Count > 0 Then
Dim Msg = resp(0)("Descripcion").ToString()
If resp(0)("Codigo").ToString().Contiene("500", "501", "502", "503", "504", "505", "506", "507", "508") Then
Alert(Msg, TipoMensaje.MsgInformacion)
Retorno = True
Else
Alert(Msg, TipoMensaje.MsgAdvertencia)
End If
Else
Alert("No se envió la poliza virtual", TipoMensaje.MsgAdvertencia)
End If
End Using
Catch ex As Exception
ex.GuardaLog(ex.Message)
End Try
End Sub
Return Retorno
End Function
End Class