diff --git a/App_Code/ClsContratos.vb b/App_Code/ClsContratos.vb
index 85d9d1e0d..b97b600fe 100644
--- a/App_Code/ClsContratos.vb
+++ b/App_Code/ClsContratos.vb
@@ -383,7 +383,7 @@ Public Class ClsContratos
Optional CveContratosEstatus As Integer = -1, Optional CveContratoTipo As Integer = -1, Optional TipoCambio As Double = 1.0, Optional CveSucursalCliente As Integer = -1, Optional CveAlmacenOrigen As Integer = -1, Optional CveAlmacenDestino As Integer = -1, Optional PorcentajeComision As Integer = -1,
Optional TipoGarantia As Integer = -1, Optional Folio As Integer = -1, Optional FechaVenc As Date = Nothing, Optional EstatusFianza As Integer = -1, Optional CveContratoPlantilla As Integer = -1, Optional CveCuentaEquipo As Integer = -1,
Optional CveVendedor As Integer = -1, Optional Observaciones As String = "", Optional CveDireccionEnvio As Integer = -1, Optional AplicaImpuestosLocales As Boolean = False, Optional CorreoNotificacionPedDev As String = "", Optional FacturacionCicilica As Boolean = False, Optional FacturacionCiclicaAutomatico As Boolean = False,
- Optional DiaMesFacturacion As Integer = 1) As Boolean
+ Optional DiaMesFacturacion As Integer = 1, Optional CvePeriodo As Integer = -1) As Boolean
Dim Retorno = False
DataAdapter("PA_Con_ContratosUpdate")
@@ -436,7 +436,8 @@ Public Class ClsContratos
.Add("@CorreoNotificacionPedDev", SqlDbType.VarChar).Value = CorreoNotificacionPedDev
.Add("@FacturacionCicilica", SqlDbType.Bit).Value = FacturacionCicilica
.Add("@FacturacionCiclicaAutomatico", SqlDbType.Bit).Value = FacturacionCiclicaAutomatico
- .Add("@DiaMesFacturacion", SqlDbType.TinyInt).Value = DiaMesFacturacion
+ .Add("@DiaMesFacturacion", SqlDbType.TinyInt).Value = DiaMesFacturacion
+ .Add("@CvePeriodo", SqlDbType.Int).Value = CvePeriodo
End With
Try
@@ -728,7 +729,7 @@ Public Class ClsContratos
Return Retorno
End Function
- Public Function CicloComercialUpdate(CveCicloComercial As Integer, FueFacturado As Boolean, CveEmpresa As Integer) As Boolean
+ Public Function CicloComercialUpdate(CveCicloComercial As Integer, FueFacturado As Boolean, CveEmpresa As Integer, Optional CveVenta As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Con_CicloComercialUpdate")
@@ -736,6 +737,7 @@ Public Class ClsContratos
.Add("@FueFacturado", SqlDbType.Bit).Value = FueFacturado
.Add("@CveCicloComercial", SqlDbType.Int).Value = CveCicloComercial
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
End With
Try
diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb
index 699faf04e..24520e128 100644
--- a/App_Code/ClsInventarios.vb
+++ b/App_Code/ClsInventarios.vb
@@ -1588,6 +1588,58 @@ Public Class ClsInventarios
End Function
+ Public Function GetExistenciasCaducidad(CvePS As Integer, CveAlmacen As Integer, CveUsuario As Integer, CveEmpresa As Integer, Optional CveAlmacenes As String = "-1") As Boolean
+ Dim Retorno As Boolean = False
+
+ DataAdapter("PA_Inv_ExistenciaCaducidadGet")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CvePS", SqlDbType.Int).Value = CvePS
+ .Add("@CveAlmacen", SqlDbType.VarChar).Value = CveAlmacen
+ .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveAlmacenes", SqlDbType.VarChar).Value = CveAlmacenes
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch Ex1 As SqlException
+
+ Me.OnError("Ocurrió un error al obtener el kardex de almacen.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener el kardex de almacen.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+
+ End Function
+
+ Public Function GetProductosCaducidad(CveProveedor As Integer, FechaInicio As Date, FechaFin As Date, CveSubProyecto As Integer, CveClasificacion As Integer) As Boolean
+ Dim Retorno As Boolean = False
+
+ DataAdapter("PA_Inv_ProductosCaducidadGet")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor
+ .Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio
+ .Add("@FechaFin", SqlDbType.Date).Value = FechaFin
+ .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
+ .Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener el listo de caducidad de productos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+
+ End Function
+
#End Region
#Region " INVENTARIOS - REPORTES "
diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index 8fe10c062..82bb1cb39 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -38,14 +38,14 @@ Public Class ClsPaginas
- Public ReadOnly Property EsProduccion As Boolean
- Get
- If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then
- Return False
- Else
- Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1")
- End If
- End Get
+ Public ReadOnly Property EsProduccion As Boolean
+ Get
+ If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then
+ Return False
+ Else
+ Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1")
+ End If
+ End Get
End Property
#Region "Propiedades"
@@ -3783,6 +3783,7 @@ Public Class ClsPaginas
PaginaDict.Add("/Contratos/Contrato2.aspx".ToUpper(), -1)
PaginaDict.Add("/Flotillas/CatMantenimientos.aspx".ToUpper(), -1)
PaginaDict.Add("/Inventarios/PaqueteDetalles.aspx".ToUpper(), -1)
+ PaginaDict.Add("/Inventarios/RepProductosPorCaducar.aspx".ToUpper(), 693)
diff --git a/App_Code/ClsProductosServicios.vb b/App_Code/ClsProductosServicios.vb
index 9d400ef08..f809ab9d8 100644
--- a/App_Code/ClsProductosServicios.vb
+++ b/App_Code/ClsProductosServicios.vb
@@ -56,8 +56,8 @@ Public Class ClsProductosServicios
Public Property CveMetodoInventario As Integer
Public Property CveTipoPS As Integer
Public Property Estado2 As Integer
- Public Property CveMarca As Integer
-
+ Public Property CveMarca As Integer
+
Public Property IEPSPorcentaje As Double
Public Property AplicaIEPS As Boolean
@@ -202,11 +202,11 @@ Public Class ClsProductosServicios
CveConexion = 0
End If
- End Sub
+ End Sub
#End Region
- Public Function GetPS(CvePS As Integer, CveClasificacion As Integer, CveEmpresa As Integer, Optional Codigo As String = "-1", Optional Codigo2 As String = "-1",
- Optional CodigoBarras As String = "-1", Optional PS As String = "-1", Optional EsPaquete As Integer = -1, Optional CveSubProyecto As Integer = -1,
- Optional pAplicaParaVenta As Integer = -1, Optional pEstado As Integer = -1, Optional CveClasificacionCosto As Integer = -1, Optional CveTipoPS As Integer = -1,
+ Public Function GetPS(CvePS As Integer, CveClasificacion As Integer, CveEmpresa As Integer, Optional Codigo As String = "-1", Optional Codigo2 As String = "-1",
+ Optional CodigoBarras As String = "-1", Optional PS As String = "-1", Optional EsPaquete As Integer = -1, Optional CveSubProyecto As Integer = -1,
+ Optional pAplicaParaVenta As Integer = -1, Optional pEstado As Integer = -1, Optional CveClasificacionCosto As Integer = -1, Optional CveTipoPS As Integer = -1,
Optional CveCompuesto As Integer = -1, Optional SATClavePS As String = "-1", Optional TopSelect As Integer = 10000) As Boolean
Dim Retorno As Boolean = False
@@ -404,7 +404,7 @@ Public Class ClsProductosServicios
Optional CveFraccionArancelaria As Integer = -1, Optional CveClasificacionDetalle As Integer = -1, Optional CveTamaño As Integer = -1,
Optional CveModelo As Integer = -1, Optional CveMedida As Integer = -1, Optional CveRinTamaño As Integer = -1, Optional ClaveImpuestoEmpaque As String = "", Optional ClaveImpuestoUM As String = "",
Optional ClaveCategoriaToxicidad As String = "", Optional ClaveImpuestoTipoProducto As String = "", Optional Litraje As Double = -1, Optional EsOutSourcing As Boolean = False, Optional AplicaSerie As Boolean = False, Optional AplicaLote As Boolean = False,
- Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False) As Integer
+ Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False, Optional TiempoCaducidad As Integer = -1) As Integer
Dim Retorno As Integer = -1
DataAdapter("PA_ProductosServiciosAdd")
@@ -483,6 +483,7 @@ Public Class ClsProductosServicios
.Add("@AplicaLote", SqlDbType.Bit).Value = AplicaLote
.Add("@AplicaCaducidad", SqlDbType.Bit).Value = AplicaCaducidad
.Add("@AplicaSeccion", SqlDbType.Bit).Value = AplicaSeccion
+ .Add("@TiempoCaducidad", SqlDbType.SmallInt).Value = TiempoCaducidad
End With
Try
@@ -629,7 +630,7 @@ Public Class ClsProductosServicios
Optional CveFraccionArancelaria As Integer = -1, Optional CveUsuarioModifico As Integer = -1,
Optional CveClasificacionDetalle As Integer = -1, Optional CveTamaño As Integer = -1, Optional CveModelo As Integer = -1, Optional CveMedida As Integer = -1, Optional CveRinTamaño As Integer = -1, Optional ClaveImpuestoEmpaque As String = "", Optional ClaveImpuestoUM As String = "",
Optional ClaveCategoriaToxicidad As String = "", Optional ClaveImpuestoTipoProducto As String = "", Optional Litraje As Double = -1, Optional EsOutSourcing As Boolean = False,
- Optional AplicaSerie As Boolean = False, Optional AplicaLote As Boolean = False, Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False) As Boolean
+ Optional AplicaSerie As Boolean = False, Optional AplicaLote As Boolean = False, Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False, Optional TiempoCaducidad As Integer = -1) As Boolean
Dim Retorno As Boolean = False
@@ -710,6 +711,7 @@ Public Class ClsProductosServicios
.Add("@AplicaLote", SqlDbType.Bit).Value = AplicaLote
.Add("@AplicaCaducidad", SqlDbType.Bit).Value = AplicaCaducidad
.Add("@AplicaSeccion", SqlDbType.Bit).Value = AplicaSeccion
+ .Add("@TiempoCaducidad", SqlDbType.SmallInt).Value = TiempoCaducidad
End With
Try
@@ -1683,10 +1685,10 @@ Public Class ClsProductosServicios
End Try
Return Retorno
- End Function
+ End Function
#End Region
-
-
+
+
#Region "Precios Lista"
Public Function GetPSPreciosLista(CveEmpresa As Integer, CvePrecioLista As Integer, Optional CveClasificacion As Integer = -1, Optional CvePS As Integer = -1,
Optional CveProveedor As Integer = -1, Optional Estado As Integer = -1, Optional Marcas As String = "-1", Optional CveModelo As Integer = -1) As Boolean
@@ -1844,7 +1846,7 @@ Public Class ClsProductosServicios
End Try
Return Retorno
- End Function
+ End Function
Public Function GetPSExistenciasWS(CvePS As Integer, CvePrecioLista As Integer, CveUnidadMedida As Integer, CveEmpresa As Integer,
CveAlmacen As Integer, Optional CveSeccionAlmacen As Integer = -1, Optional CveTipoAlmacen As Integer = -1, Optional CveSubProyecto As Integer = -1,
Optional FechaMovto As String = "-1", Optional Serie As String = "-1", Optional CveVendedor As Integer = -1, Optional CveCliente As Integer = -1,
@@ -1853,38 +1855,38 @@ Public Class ClsProductosServicios
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_ProductosExistenciasWSGet")
- With SqlAdapter.SelectCommand.Parameters
- .Add("@CvePS", SqlDbType.Int).Value = CvePS
- .Add("@CvePrecioLista", SqlDbType.Int).Value = CvePrecioLista
- .Add("@CveUnidadMedida", SqlDbType.Int).Value = CveUnidadMedida
- .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
- .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen
- .Add("@CveSeccionAlmacen", SqlDbType.Int).Value = CveSeccionAlmacen
- .Add("@CveTipoAlmacen", SqlDbType.Int).Value = CveTipoAlmacen
- .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
- .Add("@FechaMovto", SqlDbType.DateTime).Value = DateTime.ParseExact(FechaMovto, "yyyy/MM/dd HH:mm", Nothing)
- .Add("@Serie", SqlDbType.VarChar).Value = Serie
- .Add("@Lote", SqlDbType.VarChar).Value = Lote
- .Add("@Batch", SqlDbType.VarChar).Value = Batch
- .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor
- .Add("@CveCliente", SqlDbType.Int).Value = CveCliente
- .Add("@ExcluyeAdelantado", SqlDbType.Int).Value = ExcluyeAdelantado
- .Add("@PendientePorSurtir", SqlDbType.Int).Value = PendientePorSurtir
- .Add("@ExcluyeApartados", SqlDbType.Int).Value = ExcluyeApartados
- .Add("@RestringirAlmacenes", SqlDbType.Int).Value = RestringirAlmacenes
- End With
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CvePS", SqlDbType.Int).Value = CvePS
+ .Add("@CvePrecioLista", SqlDbType.Int).Value = CvePrecioLista
+ .Add("@CveUnidadMedida", SqlDbType.Int).Value = CveUnidadMedida
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen
+ .Add("@CveSeccionAlmacen", SqlDbType.Int).Value = CveSeccionAlmacen
+ .Add("@CveTipoAlmacen", SqlDbType.Int).Value = CveTipoAlmacen
+ .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
+ .Add("@FechaMovto", SqlDbType.DateTime).Value = DateTime.ParseExact(FechaMovto, "yyyy/MM/dd HH:mm", Nothing)
+ .Add("@Serie", SqlDbType.VarChar).Value = Serie
+ .Add("@Lote", SqlDbType.VarChar).Value = Lote
+ .Add("@Batch", SqlDbType.VarChar).Value = Batch
+ .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor
+ .Add("@CveCliente", SqlDbType.Int).Value = CveCliente
+ .Add("@ExcluyeAdelantado", SqlDbType.Int).Value = ExcluyeAdelantado
+ .Add("@PendientePorSurtir", SqlDbType.Int).Value = PendientePorSurtir
+ .Add("@ExcluyeApartados", SqlDbType.Int).Value = ExcluyeApartados
+ .Add("@RestringirAlmacenes", SqlDbType.Int).Value = RestringirAlmacenes
+ End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener las productos y sus existencias.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
- End Try
-
+ End Try
+
Return Retorno
- End Function
-
+ End Function
+
#End Region
-
+
#Region "Porcentaje Productos"
Public Function GetPorcentajeProductos(CveCliente As Integer) As Boolean
Dim Retorno As Boolean = False
diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb
index e3bb58624..df81cf748 100644
--- a/App_Code/ClsVentas.vb
+++ b/App_Code/ClsVentas.vb
@@ -107,40 +107,40 @@ Public Class ClsVentas
Data = New DataTable
End Sub
-#Region "Conexiones"
+#Region "Conexiones"
- Private Sub ConexionAdd()
- If Not EsTransaccionCompartida AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
+ Private Sub ConexionAdd()
+ If Not EsTransaccionCompartida AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
Try
DataAdapter("PA_Sis_RegistrarConexion")
With SqlAdapter.SelectCommand.Parameters
.Add("@Clase", SqlDbType.VarChar).Value = Me.GetType().Name
.Add("@Modulo", SqlDbType.VarChar).Value = String.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath.ToString, HttpContext.Current.Request.QueryString.ToString)
.Add("@IDConexion", SqlDbType.Int).Direction = ParameterDirection.Output
- End With
- SqlAdapter.Fill(Data)
- CveConexion = SqlAdapter.SelectCommand.Parameters("@IDConexion").Value.ToString.ToEntero
- Catch ex As Exception
- OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
- End Try
-
- End If
- End Sub
-
- Private Sub ConexionClose()
- If CveConexion > 0 AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
-
- DataAdapter(String.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text)
-
- Try
- SqlAdapter.Fill(Data)
-
- Catch ex As Exception
- OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
- End Try
- CveConexion = 0
- End If
-
+ End With
+ SqlAdapter.Fill(Data)
+ CveConexion = SqlAdapter.SelectCommand.Parameters("@IDConexion").Value.ToString.ToEntero
+ Catch ex As Exception
+ OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ End If
+ End Sub
+
+ Private Sub ConexionClose()
+ If CveConexion > 0 AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
+
+ DataAdapter(String.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text)
+
+ Try
+ SqlAdapter.Fill(Data)
+
+ Catch ex As Exception
+ OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+ CveConexion = 0
+ End If
+
End Sub
#End Region
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 2f8750b96..0ed55e76e 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -855,7 +855,7 @@ Namespace Modelos
End If
If CveCicloComercial > 0 AndAlso ErrorList.Count = 0 Then
- If Not ObjContr.CicloComercialUpdate(Me.CveCicloComercial, True, UsuarioActual.CveEmpresa) Then
+ If Not ObjContr.CicloComercialUpdate(Me.CveCicloComercial, True, UsuarioActual.CveEmpresa, CveVenta:=CveVenta) Then
ErrorList.Add("No se pudo actualizar ")
End If
End If
diff --git a/Ashx/SIGFacturacionCiclica.ashx b/Ashx/SIGFacturacionCiclica.ashx
new file mode 100644
index 000000000..ca832ce20
--- /dev/null
+++ b/Ashx/SIGFacturacionCiclica.ashx
@@ -0,0 +1,709 @@
+<%@ WebHandler Language="VB" Class="SIGFacturacionCiclica" %>
+'Option Explicit On
+'Option Strict On
+
+Imports System
+Imports System.Web
+Imports System.Data
+Imports Newtonsoft.Json.Linq
+Imports Extensiones
+Imports System.IO
+Imports Microsoft.AspNet.SignalR
+
+Public Class SIGFacturacionCiclica : Implements IHttpHandler, IRequiresSessionState
+ Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
+ context.Response.ContentType = "text/plain"
+ Dim retorno = False
+ Try
+ If context.Request("Metodo") IsNot Nothing Then
+ Select Case context.Request("Metodo")
+ Case "EjecutaServicio"
+ ModExtensiones.GuardaLogAD("Servicio Ejecutado...........", "LogFacturacionCiclica")
+ retorno = IniciaFacturacionMasiva()
+ End Select
+
+ End If
+
+ Catch ex As Exception
+ ex.GuardaLog(ex.Message)
+ End Try
+
+ If retorno Then
+ context.Response.Write("True")
+ Else
+ context.Response.Write("False")
+ End If
+ End Sub
+
+ Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
+ Get
+ Return False
+ End Get
+ End Property
+
+ Private Function Parametros(Cadena As String) As Hashtable
+ Dim P1() As String = Cadena.Split("&"c)
+ Dim Tmp As String
+ Dim P2() As String
+
+ Dim URLParametros As New Hashtable
+
+ For Each Tmp In P1
+ P2 = Tmp.Replace("%26%", "&").Split("="c)
+ URLParametros.Add(P2(0).ToString.ToUpper, P2(1))
+ Next
+ Return URLParametros
+ End Function
+
+#Region "V A L I D A - D A T O S"
+ 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
+
+#End Region
+
+ Private Function IniciaFacturacionMasiva() As Boolean
+ Dim Retorno As Boolean = True
+ Dim FechaRef As DateTime = DateTime.Now
+ Dim DTCicloComercial As DataTable = Nothing
+
+ Using ObjContratos As New ClsContratos
+ If ObjContratos.CicloComercialGet(-1, -1, -1, -1, FechaRef, FechaRef, -1) Then
+ DTCicloComercial = ObjContratos.DtResultados.FiltraParametros("FueFacturado = 0 AND FacturacionCiclicaAutomatico = 1")
+ End If
+ End Using
+
+ If DTCicloComercial IsNot Nothing Then
+ For Each RowEmpresa As DataRow In DTCicloComercial.FiltraParametros("", DistinctColumns:={"CveEmpresa"}).Rows
+ Dim CveEmpresa As Integer = RowEmpresa("CveEmpresa").ToString().ToEntero()
+ Dim UsuarioActual = ValidaUsuarioSistema(CveEmpresa)
+ If UsuarioActual IsNot Nothing Then
+ Retorno = EjecutarFacturacionMasiva(UsuarioActual, DTCicloComercial.FiltraParametros($"CveEmpresa = {CveEmpresa}"))
+ End If
+ Next
+ End If
+
+ Return Retorno
+ End Function
+
+ Private Function EjecutarFacturacionMasiva(UsuarioActual As Usuario, DTCicloComercial As DataTable) As Boolean
+ Dim Retorno As Boolean = False
+
+ If DTCicloComercial IsNot Nothing Then
+ For Each Row As DataRow In DTCicloComercial.Rows
+
+ If Row("Observaciones").ToString().Contains("{DIA}") Then
+ Row("Observaciones") = Row("Observaciones").ToString().Replace("{DIA}", DateTime.Now.Day.ToString())
+ End If
+
+ If Row("Observaciones").ToString().Contains("{MES}") Then
+ Dim fecha As DateTime = DateTime.Now
+ Dim formatoFecha = Globalization.CultureInfo.CurrentCulture.DateTimeFormat
+ Dim nombreMes = formatoFecha.GetMonthName(fecha.Month).ToUpper()
+
+ Row("Observaciones") = Row("Observaciones").ToString().Replace("{MES}", nombreMes)
+ End If
+
+ If Row("Observaciones").ToString().Contains("{AÑO}") Then
+ Row("Observaciones") = Row("Observaciones").ToString().Replace("{AÑO}", DateTime.Now.Year.ToString())
+ End If
+
+ If Row("Observaciones").ToString().Contains("{TC}") Then
+ Row("Observaciones") = Row("Observaciones").ToString().Replace("{TC}", GlobalTipoCambio(Now).FormatoNumero)
+ End If
+
+ Dim Resp = EmitirImprimir(UsuarioActual, Row)
+
+ If Resp.CveVenta > 0 Then
+ Retorno = True
+ End If
+
+ Next
+
+ End If
+
+ Return Retorno
+ End Function
+
+ Private Function EmitirImprimir(UsuarioActual As Usuario, RowCiclo As DataRow) As Modelos.Factura.MMensajeFactura
+ Dim Resp As New Modelos.Factura.MMensajeFactura
+
+ Dim ObjFactura = CreaObjetosVenta(UsuarioActual, RowCiclo)
+
+ If ObjFactura Is Nothing Then
+ Resp.Mensajes.Add("Ocurrió un error al procesar los datos de la Venta ")
+ ObjFactura = Nothing
+ Return Resp
+ End If
+
+ If ObjFactura.CveCliente > 0 Then
+ If ObjFactura.DtDetalle.Rows.Count > 0 Then
+ Resp = ObjFactura.EmitirFactura()
+ Else
+ Resp.Mensajes.Add("No se pudo completar facturación por que no se encontraron partidas ")
+ End If
+ Else
+ Resp.Mensajes.Add("No se pudo completar facturación por que no se encontraro el cliente ")
+ End If
+
+ Return Resp
+ End Function
+
+#Region "P R E P A R A - V E N T A"
+ Private Function CreaDTVentas() As DataTable
+ Dim TmpDT = New DataTable
+ TmpDT.Columns.Add("CveVenta", GetType(Integer))
+ TmpDT.Columns.Add("Consec", GetType(Integer))
+ TmpDT.Columns.Add("Cantidad", GetType(Decimal))
+ TmpDT.Columns.Add("Codigo", GetType(String))
+ TmpDT.Columns.Add("CveUM", GetType(Integer))
+ TmpDT.Columns.Add("UM", GetType(String))
+ TmpDT.Columns.Add("SATClaveUM", GetType(String))
+ TmpDT.Columns.Add("CveClasificacion", GetType(Integer))
+ TmpDT.Columns.Add("Clasificacion", GetType(String))
+ TmpDT.Columns.Add("CvePS", GetType(Integer))
+ TmpDT.Columns.Add("PS", GetType(String))
+ TmpDT.Columns.Add("CodigoPS", GetType(String))
+ TmpDT.Columns.Add("SATClaveProdServ", GetType(String))
+ TmpDT.Columns.Add("NoIdentificacion", GetType(String))
+ TmpDT.Columns.Add("CveTipoPS", GetType(Integer))
+ TmpDT.Columns.Add("CveTipoInvPS", GetType(Integer))
+ TmpDT.Columns.Add("Serie", GetType(String))
+ TmpDT.Columns.Add("CuentaPredial", GetType(String))
+ TmpDT.Columns.Add("Obs", GetType(String))
+ TmpDT.Columns.Add("TiempoEntrega", GetType(String))
+ TmpDT.Columns.Add("PU", GetType(Decimal))
+ TmpDT.Columns.Add("IVA", GetType(Decimal))
+ TmpDT.Columns.Add("ImporteIVA", GetType(Decimal))
+ TmpDT.Columns.Add("PorcentajeIVA", GetType(Decimal))
+ TmpDT.Columns.Add("ImporteRetIVA", GetType(Decimal))
+ TmpDT.Columns.Add("ImporteRetISR", GetType(Decimal))
+ TmpDT.Columns.Add("PorcentajeRetIVA", GetType(Decimal))
+ TmpDT.Columns.Add("PorcentajeRetISR", GetType(Decimal))
+ TmpDT.Columns.Add("ImporteIEPS", GetType(Decimal))
+ TmpDT.Columns.Add("IEPS", GetType(Decimal))
+ TmpDT.Columns.Add("PorcentajeIEPS", GetType(Decimal))
+ TmpDT.Columns.Add("Descuento", GetType(Decimal))
+ TmpDT.Columns.Add("TipoDescuento", GetType(Integer))
+ TmpDT.Columns.Add("TotalImporte", GetType(Decimal))
+ TmpDT.Columns.Add("Total", GetType(Decimal))
+ 'Para uso del módulo contable
+ TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer))
+ TmpDT.Columns.Add("IdCtaContVentas", GetType(Integer))
+ TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean))
+ TmpDT.Columns.Add("CveProyecto", GetType(Integer))
+ TmpDT.Columns.Add("Proyecto", GetType(String))
+ TmpDT.Columns.Add("CveSubProyecto", GetType(Integer))
+ TmpDT.Columns.Add("SubProyecto", GetType(String))
+ TmpDT.Columns.Add("CveVentaDetallePadre", GetType(Integer))
+
+ 'TipoDescuento: 1 = Descuento * PU; 2 = Descuento por Total del concepto
+ TmpDT.Columns.Add("CvePresupuestoIngreso", GetType(Integer))
+ TmpDT.Columns.Add("CveFuenteRecaudacion", GetType(Integer))
+ 'Contratos
+ TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer))
+ 'Remisiones a Facturas
+ TmpDT.Columns.Add("CveVentaDetalle", GetType(Integer))
+ TmpDT.Columns.Add("CveVentaDetalleRemision", GetType(Integer))
+ TmpDT.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer))
+
+ 'Pedido2 a Facturas
+ TmpDT.Columns.Add("CveVentaDetallePedido2", GetType(Integer))
+
+ TmpDT.Columns.Add("Origen", GetType(Integer))
+ 'Ordenes Servicio
+ TmpDT.Columns.Add("CveOS", GetType(Integer))
+ TmpDT.Columns.Add("CveOSDetalle", GetType(Integer))
+ TmpDT.Columns.Add("SeFacturara", GetType(Integer))
+ TmpDT.Columns.Add("Folio", GetType(Integer))
+ TmpDT.Columns.Add("Estatus", GetType(String))
+ 'Ordenamiento
+ TmpDT.Columns.Add("Orden", GetType(Integer))
+ TmpDT.Columns.Add("TipoDocto", GetType(String))
+ 'OC
+ TmpDT.Columns.Add("CveOrdenCompraDetalle", GetType(Integer))
+ TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
+
+ TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
+ TmpDT.Columns.Add("CantidadFacturadaRem", GetType(Decimal))
+ TmpDT.Columns.Add("CantidadFacturadaCot", GetType(Decimal))
+ TmpDT.Columns.Add("CantidadFacturadaPed2", GetType(Decimal))
+ TmpDT.Columns.Add("CantidadInventario", GetType(Decimal))
+
+ TmpDT.Columns.Add("ClaveSATFraccionArancelaria", GetType(String))
+ TmpDT.Columns.Add("ClaveSATUnidadAduana", GetType(String))
+ TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", GetType(String))
+ TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String))
+
+ TmpDT.Columns.Add("CveTamaño", GetType(Integer))
+ TmpDT.Columns.Add("EsCargo", GetType(Boolean))
+
+ Return TmpDT
+ End Function
+ Private Function CreaObjetosVenta(UsuarioActual As Usuario, DR As DataRow) As Modelos.Factura
+ Dim ObjFactura = New Modelos.Factura(UsuarioActual)
+ Try
+ ObjFactura.DirectorioServidor = HttpContext.Current.Server.MapPath("/")
+
+ Dim CveProyecto As String = ""
+ Dim CveSubProyecto As String = ""
+ Dim Proyecto As String = ""
+ Dim SubProyecto As String = ""
+ Dim CveCicloComercial = DR("CveCicloComercial").ToString().ToEntero()
+
+ ObjFactura.CveCicloComercial = CveCicloComercial
+
+ Dim TmpDT As DataTable = CreaDTVentas()
+
+ ObjFactura.Version = "3.3"
+ ObjFactura.CveUsuario = UsuarioActual.CveUsuario
+ ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa
+ ObjFactura.ConvertirPesos = False
+ ObjFactura.CveMoneda = DR("CveMoneda").ToString.ToEntero
+ ObjFactura.Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $"CveMoneda = {ObjFactura.CveMoneda} ")
+ ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", $"CveMoneda = {DR("CveMoneda").ToString.ToEntero}")
+ ObjFactura.TipoCambio = If(ObjFactura.CveMoneda = 1, 1, GlobalTipoCambio(Now))
+ ObjFactura.TipoDocto = "Ing"
+ ObjFactura.RefDocto = ""
+ ObjFactura.Folio = -1
+ ObjFactura.Serie = "-1"
+ ObjFactura.CveMesa = -1
+ ObjFactura.Fecha = DR("FechaVenc").ToString.ToDate
+ ObjFactura.CvePrePoliza = -1
+ ObjFactura.CveMetodoPago = 1
+ ObjFactura.MetodoPago = "Efectivo"
+ ObjFactura.FechaPago = DateTime.Today
+ ObjFactura.MotivoDescuento = ""
+ ObjFactura.Observaciones = DR("Observaciones").ToString
+ ObjFactura.FechaEjecucion = DateTime.Today
+ 'ObjFactura.ClaveMetodoPagoSAT = GlobalDTMetodosPago.FiltroPrimeroValor("ClaveSAT", $"CveMetodoPago = {1}")
+ ObjFactura.UsuarioCreo = UsuarioActual.Usuario
+ ObjFactura.CveCondicionEntrega = -1
+ ObjFactura.CondicionEntrega = ""
+ ObjFactura.NumeroCuenta = ""
+ 'ObjFactura.CveSucursal = GlobalDTSucursales.FiltroPrimeroValor("CveSucursal", $"CveEmpresa = {UsuarioActual.CveEmpresa}").ToEntero
+ 'ObjFactura.Cliente.NumCtaPago = TxtNumCtaPago.Text.Trim
+ ObjFactura.CondicionesPago = 0
+ ObjFactura.FormaPago = 0
+ 'ObjFactura.SerieFolio = String.Format("{0}-{1}", LblSerie.Text, TxtFolio.Text)
+ ObjFactura.PedidoContrato = ""
+ ObjFactura.NumeroContrato = DR("NumeroContrato").ToString
+ ObjFactura.DescripcionContrato = DR("DescripcionContrato").ToString
+ ObjFactura.CveCorte = -1
+ ObjFactura.TipoDocumento = "Factura"
+ ObjFactura.Alfa1 = ""
+ ObjFactura.Alfa2 = ""
+ ObjFactura.Alfa3 = ""
+ 'Totales, Y se llena TmpDTImpuestos
+ ObjFactura.Descuento = 0
+ ObjFactura.Amortizacion = 0
+ ObjFactura.CveContrato = DR("CveContrato").ToString.ToEntero
+ CveProyecto = DR("CveProyecto").ToString
+ Proyecto = DR("ProyectoContrato").ToString
+ CveSubProyecto = DR("CveSubProyecto").ToString
+ ObjFactura.CveSubProyecto = CveSubProyecto.ToEntero
+ ObjFactura.CveSubProyectoCobranza = CveSubProyecto.ToEntero
+ ObjFactura.CveSubProyectoEjecucion = CveSubProyecto.ToEntero
+
+ ObjFactura.SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1).FiltroPrimero(String.Format("CveSubProyecto = {0}", ObjFactura.CveSubProyecto)))
+ ObjFactura.SubProyectoMatriz = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveSubProyecto:=-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1"))
+
+
+ SubProyecto = DR("SubProyectoContrato").ToString
+
+ Dim DtDetalle As DataTable = Nothing
+ Dim objContratos As New ClsContratos
+ If objContratos.GetContratosDetalle(DR("CveContrato").ToString.ToEntero) Then
+ DtDetalle = objContratos.DtResultados
+ Else
+ DtDetalle = Nothing
+ End If
+ objContratos.Dispose()
+
+ Dim DtR As DataRow
+ ObjFactura.SubTotal = SUM(DtDetalle, "Total").ToDecimal
+ ObjFactura.IVA = SUM(DtDetalle, "ImporteIVA").ToDecimal
+ ObjFactura.RetIVA = SUM(DtDetalle, "ImporteRetIVA").ToDecimal
+ ObjFactura.RetISR = SUM(DtDetalle, "ImporteRetISR").ToDecimal
+ ObjFactura.IEPS = SUM(DtDetalle, "ImporteIEPS").ToDecimal
+ ObjFactura.Total = ObjFactura.SubTotal + ObjFactura.IVA + ObjFactura.IEPS - (ObjFactura.RetIVA + ObjFactura.RetISR)
+
+ For Each row As DataRow In DtDetalle.Rows
+ Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=row("CvePS").ToString().ToEntero()).FiltroPrimero("")
+
+ DtR = TmpDT.NewRow
+ DtR("CveVenta") = -1
+ DtR("Codigo") = row("Codigo")
+ DtR("Consec") = TmpDT.Rows.Count + 1
+ DtR("Cantidad") = row("CantidadContratada")
+ DtR("CveUM") = row("CveUM")
+ DtR("UM") = row("UM")
+ DtR("SATClaveUM") = row("SATClaveUM")
+ DtR("CveClasificacion") = row("CveClasificacion")
+ DtR("Clasificacion") = row("Clasificacion")
+ DtR("CvePS") = row("CvePS")
+ DtR("PS") = row("PS")
+ DtR("CodigoPS") = row("CodigoPS")
+ DtR("SATClaveProdServ") = row("SATClaveProdServ")
+ DtR("NoIdentificacion") = row("NoIdentificacion")
+ DtR("CveTipoPS") = drPS("CveTipoPS")
+ DtR("CveTipoInvPS") = drPS("Inv_CveMetodoInventario")
+ DtR("Obs") = row("Observacion").ToString
+ DtR("PU") = row("PU")
+ DtR("IVA") = row("PorcentajeIVA")
+ DtR("PorcentajeIVA") = row("PorcentajeIVA")
+ DtR("ImporteIVA") = row("ImporteIVA")
+ DtR("PorcentajeIEPS") = row("PorcentajeIEPS")
+ DtR("ImporteIEPS") = row("ImporteIEPS")
+ DtR("PorcentajeRetIVA") = row("PorcentajeRetIVA")
+ DtR("ImporteRetIVA") = row("ImporteRetIVA")
+ DtR("PorcentajeRetISR") = row("PorcentajeRetISR")
+ DtR("ImporteRetISR") = row("ImporteRetISR")
+ DtR("Descuento") = 0
+ DtR("TipoDescuento") = 0
+ DtR("CveProyecto") = CveProyecto
+ DtR("Proyecto") = Proyecto
+ DtR("CveSubProyecto") = CveSubProyecto
+ DtR("SubProyecto") = SubProyecto
+ DtR("CveVentaDetalle") = 0
+ DtR("CveContratoDetalle") = row("CveContratoDetalle")
+ DtR("CuentaPredial") = row("CuentaPredial")
+ DtR("TotalImporte") = row("Total")
+
+ TmpDT.Rows.Add(DtR)
+ Next
+
+ 'DETALLES
+ ObjFactura.DtDetalle = TmpDT
+
+ 'CLIENTE
+ ObjFactura.CveCliente = DR("CveCliente").ToString.ToEntero
+ ObjFactura.SetCliente()
+
+ Dim ObjCliente As New ClsClientes
+ If ObjCliente.GetClientes(ObjFactura.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente:=-1) Then
+ If ObjCliente.DtResultados.Rows.Count > 0 Then
+ ObjFactura.CveFormaPago33 = ObjCliente.CveFormaPago33
+ ObjFactura.FormaPago33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("FormaPago", String.Format("CveFormaPago = {0}", ObjCliente.CveFormaPago33))
+ ObjFactura.FormaPagoSAT33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("ClaveFormaPagoSAT", String.Format("CveFormaPago = {0}", ObjCliente.CveFormaPago33))
+
+ ObjFactura.CveMetodoPago33 = ObjCliente.CveMetodoPago33
+ ObjFactura.MetodoPago33 = GlobalDTVtaMetodoPago.FiltroPrimeroValor("MetodoPago", String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago33))
+ ObjFactura.ClaveMetodoPagoSAT = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago33))
+
+ ObjFactura.CveUsoCFDI = ObjCliente.CveUsoCFDI
+ ObjFactura.UsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("Descripcion", String.Format("CveUsoCFDI = {0}", ObjCliente.CveUsoCFDI))
+ ObjFactura.ClaveUsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", String.Format("CveUsoCFDI = {0}", ObjCliente.CveUsoCFDI))
+
+ ObjFactura.CveMetodoPago = ObjCliente.CveMetodoPago
+
+ If GlobalDTMetodosPago.FiltraParametros(String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago)).Rows.Count > 0 Then
+ ObjFactura.MetodoPago = GlobalDTMetodosPago.FiltraParametros(String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago)).Rows(0)("MetodoPago").ToString
+ Else
+ ObjFactura.CveMetodoPago = 1
+ ObjFactura.MetodoPago = "Efectivo"
+ End If
+ End If
+ End If
+
+ If ObjCliente.GetSucursales(ObjFactura.CveCliente) Then
+ If ObjCliente.DtResultados.Rows.Count > 0 Then
+ ObjFactura.CveClienteSucursal = If(String.IsNullOrEmpty(ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "Estatus = 'Activo'")), -1, ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "Estatus = 'Activo'").ToEntero())
+ Else
+ ObjFactura.CveClienteSucursal = -1
+ End If
+ End If
+ ObjCliente.Dispose()
+
+ 'SUBPROYECTO
+ 'ObjFactura.SetSubProyectoMatriz(Me)
+ 'ObjFactura.SetSubProyecto(Me)
+
+ ObjFactura.Timbre = PreParaTimbre(ObjFactura, UsuarioActual)
+ Catch ex As Exception
+ ObjFactura = Nothing
+ OnError("Ocurrió un error al generar la factura", ex)
+ End Try
+
+
+ Return ObjFactura
+
+ End Function
+
+ Private Function PreParaTimbre(Obj As Modelos.Factura, UsuarioActual As Usuario) As CFDITimbre
+ Dim Timbre As New CFDITimbre
+ Timbre.Comprobante.TipoComprobante = If(Obj.TipoDocto.Contiene("Ing", "Ant"), "I", If(Obj.TipoDocto.Contiene("Egs", "Dev"), "E", ""))
+ Timbre.Comprobante.Folio = Obj.Folio.ToString
+ Timbre.Comprobante.Serie = Obj.Serie
+ Timbre.Comprobante.Fecha = Obj.FechaCP
+ Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33
+ Timbre.Comprobante.CondicionesdePago = Obj.FormaPago33
+ Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT
+ Timbre.Comprobante.Subtotal = Obj.SubTotal
+ Timbre.Comprobante.Descuentos = Obj.Descuento
+ Timbre.Comprobante.Moneda = Obj.MonedaSAT
+ Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString)
+ Timbre.Comprobante.Total = Obj.Total
+
+ Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP
+ Timbre.Comprobante.Confirmacion = ""
+
+ Timbre.Receptor.RFC = Obj.Cliente.RFC
+ Timbre.Receptor.Nombre = Obj.Cliente.Nombre
+ Timbre.Receptor.ResidenciaFiscal = ""
+ Timbre.Receptor.NumeroRegistroTributario = ""
+ Timbre.Receptor.UsoCFDI = Obj.ClaveUsoCFDI
+
+
+ If Obj.CveTipoRelacion > 0 Then
+ Select Case Obj.CveTipoRelacion
+ Case 1
+ Timbre.CFDIRelacionados.TipoRelacion = "01"
+ Timbre.CFDIRelacionados.TipoRelacionTexto = "01-Nota de Crédito aplicada a Ingreso"
+ Case 2
+ Timbre.CFDIRelacionados.TipoRelacion = "02"
+ Timbre.CFDIRelacionados.TipoRelacionTexto = "02-Nota de débito de los documentos relacionados"
+ Case 3
+ Timbre.CFDIRelacionados.TipoRelacion = "03"
+ Timbre.CFDIRelacionados.TipoRelacionTexto = "03-Devolución aplicada a Ingreso"
+ Case 4
+ Timbre.CFDIRelacionados.TipoRelacion = "04"
+ Timbre.CFDIRelacionados.TipoRelacionTexto = "04-Refacturación de Ingreso"
+ Case 7
+ Timbre.CFDIRelacionados.TipoRelacion = "07"
+ Timbre.CFDIRelacionados.TipoRelacionTexto = "07-CFDI por aplicación de anticipo"
+ Case 8
+ Timbre.CFDIRelacionados.TipoRelacion = "08"
+ Timbre.CFDIRelacionados.TipoRelacionTexto = "08-Factura generada por pagos en parcialidades "
+ Case 9
+ Timbre.CFDIRelacionados.TipoRelacion = "09"
+ Timbre.CFDIRelacionados.TipoRelacionTexto = "09-Factura generada por pagos diferidos"
+
+ End Select
+
+ 'If DtVentasNC IsNot Nothing AndAlso DtVentasNC.Rows.Count > 0 Then
+ ' For Each Dr As DataRow In DtVentasNC.Rows
+ ' Timbre.CFDIRelacionados.UUID.Add(Dr("FolioFiscal").ToString)
+ ' Next
+ 'Else
+ ' Timbre.CFDIRelacionados.UUID.Add(HdnFolioFiscalNC.Value)
+ 'End If
+
+ End If
+
+
+ Dim totSubTotal As Decimal = Obj.SubTotal
+ Dim totIVA As Decimal = Obj.IVA
+ Dim totRetIVA As Decimal = Obj.RetIVA
+ Dim totRetISR As Decimal = Obj.RetISR
+ Dim i As Integer = 1
+
+ 'detalles
+ Dim tPS As String = ""
+
+ For Each drr As DataRow In Obj.DtDetalle.Rows
+ If drr("PS").ToString.Length = 1 Then
+ tPS = drr("Obs").ToString
+ Else
+ If drr("PS").ToString.Length = 0 Then
+ tPS = ""
+ Else
+ tPS = String.Format("{0} {1}", drr("PS"), drr("Obs"))
+ End If
+ End If
+ 'condicionante, especial
+ If UsuarioActual.CveEmpresa = 15 Then drr("UM") = "" ' les comentan que no debe de ir la etiqueta de "unidad" en el producto
+
+ Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString.ToDecimal,
+ .Descripcion = tPS,
+ .ValorUnitario = drr("PU").ToString.ToDecimal,
+ .Importe = drr("TotalImporte").ToString.ToDecimal,
+ .Descuento = drr("Descuento").ToString.ToDecimal,
+ .Unidad = drr("UM").ToString,
+ .ClaveUnidad = drr("SATClaveUM").ToString,
+ .ClaveProdServ = drr("SATClaveProdServ").ToString,
+ .Noidentificacion = drr("Noidentificacion").ToString,
+ .CuentaPredial = drr("CuentaPredial").ToString}
+ 'verifica suma subtotales
+ If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'proceso de ajusta de decimales
+ concepto.Importe = totSubTotal
+ End If
+ totSubTotal = totSubTotal - concepto.Importe
+
+ 'siempre estaremos agregando el iva, auqnue sea en importe cero o tasa cero, para que se emita la factura
+ ' If drr("ImporteIVA").ToString.ToDouble > 0 Then
+ concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteIVA").ToString.ToDecimal})
+ ' End If
+
+ If drr("ImporteIEPS").ToString.ToDouble > 0 Then
+ concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIEPS").ToString.ToDecimal, .Impuesto = "003", .Importe = drr("ImporteIEPS").ToString.ToDecimal})
+ End If
+
+ If drr("ImporteRetIVA").ToString.ToDouble > 0 Then 'si hay retenciones
+ concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeRetIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteRetIVA").ToString.ToDecimal})
+ End If
+
+ If drr("ImporteRetISR").ToString.ToDouble > 0 Then 'retención de ISR
+ concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeRetISR").ToString.ToDecimal, .Impuesto = "001", .Importe = drr("ImporteRetISR").ToString.ToDecimal})
+ End If
+
+ Timbre.Conceptos.Add(concepto)
+ i += 1
+ Next
+ Return Timbre
+ End Function
+#End Region
+
+
+#Region "G L O B A L - D T"
+ Public Property GlobalTipoCambio(Optional Fecha As Date = MinFecha) As Double
+ Get
+ If GlobalTipoCambio <= 0 Then
+ 'sino tiene dato lo recargo por si ya esta insertado
+ If Fecha = MinFecha Then Fecha = Now
+
+ Dim ObjGral As New ClsGenerales
+ If ObjGral.GetTipoCambio(-1, Fecha) AndAlso ObjGral.DtResultados.Rows.Count > 0 Then
+
+ HttpContext.Current.Application("GlobalTipoCambio") = ObjGral.DtResultados.Rows(0)("TipoCambio").ToString.ToDouble
+ Else
+ HttpContext.Current.Application("GlobalTipoCambio") = 0
+ End If
+ ObjGral.Dispose()
+
+ End If
+
+ Return HttpContext.Current.Application("GlobalTipoCambio").ToString.ToDouble
+ End Get
+ Set(value As Double)
+ HttpContext.Current.Application("GlobalTipoCambio") = value
+ End Set
+
+ End Property
+ Property GlobalDTMonedas() As DataTable
+ Get
+ GlobalDTMonedas = DirectCast(HttpContext.Current.Application("GlobalDTMonedas"), DataTable)
+ End Get
+ Set(value As DataTable)
+ HttpContext.Current.Application("GlobalDTMonedas") = value
+ End Set
+ End Property
+ ReadOnly Property GlobalDTPS(CveEmpresa As Integer, Optional CvePS As Integer = -1, Optional SATClavePS As String = "-1", Optional AplicaParaVenta As Integer = -1, Optional Estatus As Integer = -1, Optional Codigo As String = "-1") As DataTable
+ Get
+ Dim ObjPS As New ClsProductosServicios
+
+ If ObjPS.GetPS(CvePS, -1, CveEmpresa, Codigo:=Codigo, SATClavePS:=SATClavePS, pAplicaParaVenta:=AplicaParaVenta, pEstado:=Estatus) Then
+ GlobalDTPS = ObjPS.DtResultados
+ Else
+ GlobalDTPS = Nothing
+ End If
+
+ ObjPS.Dispose()
+ End Get
+ End Property
+ Public Property GlobalDTVtaFormaPago() As DataTable
+ Get
+ GlobalDTVtaFormaPago = DirectCast(HttpContext.Current.Application("GlobalDTVtaFormaPago"), DataTable)
+ End Get
+ Set(value As DataTable)
+ HttpContext.Current.Application("GlobalDTVtaFormaPago") = value
+ End Set
+ End Property
+ Property GlobalDTVtaMetodoPago() As DataTable
+ Get
+ GlobalDTVtaMetodoPago = DirectCast(HttpContext.Current.Application("GlobalDTVtaMetodoPago"), DataTable)
+ End Get
+ Set(value As DataTable)
+ HttpContext.Current.Application("GlobalDTVtaMetodoPago") = value
+ End Set
+ End Property
+ Property GlobalDTSATUsosCFDI(Optional EsPersonaFisica As Integer = -1) As DataTable
+ Get
+ If EsPersonaFisica <> -1 Then
+ Dim Tipo As String = ""
+ If EsPersonaFisica = 1 Then Tipo = "AplicaPersonaFisica = 1" Else Tipo = "AplicaPersonaMoral = 1"
+
+ Dim Dv As New DataView(DirectCast(HttpContext.Current.Application("GlobalDTSATUsosCFDI"), DataTable), Tipo, " UsoCFDIDescripcion", DataViewRowState.CurrentRows)
+ GlobalDTSATUsosCFDI = Dv.ToTable
+ Dv.Dispose()
+ Else
+ GlobalDTSATUsosCFDI = DirectCast(HttpContext.Current.Application("GlobalDTSATUsosCFDI"), DataTable)
+ End If
+
+ End Get
+ Set(ByVal value As DataTable)
+ HttpContext.Current.Application("GlobalDTSATUsosCFDI") = value
+ End Set
+ End Property
+
+ Property GlobalDTMetodosPago() As DataTable
+ Get
+ GlobalDTMetodosPago = DirectCast(HttpContext.Current.Application("GlobalDTMetodosPago"), DataTable)
+ End Get
+ Set(value As DataTable)
+ HttpContext.Current.Application("GlobalDTMetodosPago") = value
+ End Set
+ End Property
+ Public Property GlobalDTSubProyectos(CveProyecto As Integer, Optional CveSubProyecto As Integer = -1, Optional CveEmpresa As Integer = -1, Optional Estatus As Integer = 1) As DataTable
+ Get
+ Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa)
+ 'sino existe, recarga los datos
+ If DirectCast(HttpContext.Current.Application(AppNombre), DataTable) Is Nothing Or (DirectCast(HttpContext.Current.Application(AppNombre), DataTable) IsNot Nothing AndAlso DirectCast(HttpContext.Current.Application(AppNombre), DataTable).Rows.Count = 0) Then
+ Dim P As New ClsSubProyectos
+ If P.GetSubProyectos(CveEmpresa:=CveEmpresa) Then HttpContext.Current.Application(AppNombre) = P.DtResultados
+ P.Dispose()
+ End If
+
+ If CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEmpresa <> -1 OrElse Estatus <> -1 Then
+ Dim StrSQL As New StringBuilder
+ If CveProyecto <> -1 Then StrSQL.AppendFormat(" AND CveProyecto = {0}", CveProyecto)
+ If CveSubProyecto <> -1 Then StrSQL.AppendFormat(" AND CveSubProyecto = {0}", CveSubProyecto)
+ If Estatus <> -1 Then StrSQL.AppendFormat(" AND CveEstatus = {0}", Estatus)
+ If CveEmpresa <> -1 Then StrSQL.AppendFormat(" AND CveEmpresa = {0}", CveEmpresa)
+
+ Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows)
+ GlobalDTSubProyectos = Dv.ToTable
+ Dv.Dispose()
+
+ Else
+ GlobalDTSubProyectos = DirectCast(HttpContext.Current.Application(AppNombre), DataTable)
+ End If
+
+ End Get
+ Set(ByVal value As DataTable)
+ Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa)
+ HttpContext.Current.Application(AppNombre) = value
+ End Set
+ End Property
+#End Region
+End Class
\ No newline at end of file
diff --git a/Contratos/Contrato.aspx b/Contratos/Contrato.aspx
index 4b9616588..3624dace8 100644
--- a/Contratos/Contrato.aspx
+++ b/Contratos/Contrato.aspx
@@ -487,14 +487,14 @@
-
+
+
+
+
diff --git a/Contratos/Contrato.aspx.vb b/Contratos/Contrato.aspx.vb
index 75be99a9c..8753cc67a 100644
--- a/Contratos/Contrato.aspx.vb
+++ b/Contratos/Contrato.aspx.vb
@@ -366,7 +366,7 @@ Partial Class Contratos_Default
'TxtArchivo.Visible = True
CargaDatos()
-
+ CargaCiclosComerciales()
CargaDatosAvance()
CargaDatosAvancePorDocumento()
CargaInventarios()
@@ -810,11 +810,14 @@ Partial Class Contratos_Default
cargaClientes()
Else
CargaContratista()
- End If
+ End If
+
+ CargaPeriodos()
+ DdlPeriodo_SelectedIndexChanged(DdlPeriodo, EventArgs.Empty)
If DdlTipoContrato.SelectedValue = "14" Then
TrCtaEquipo.Visible = True
- TrPeriodo.Visible = True
+ 'TrPeriodo.Visible = True
RFVEstatus.ValidationGroup = ""
RequiredFieldValidator1.ValidationGroup = ""
DvMin.Visible = True
@@ -824,34 +827,31 @@ Partial Class Contratos_Default
RowEstatus.Visible = False
RowPorcentajeComision.Visible = False
dvAddendum.Visible = False
- CargaPeriodos()
+
CargaPlantillas()
TrContratoPlantilla.Visible = True
TabPres.HeaderText = "Partidas"
- Else
- DtPeriodo = Nothing
End If
- If DdlTipoContrato.SelectedValue = "25" Then
- trLicitacion.Visible = False
- divResponsable.Visible = False
- TrPeriodo.Visible = True
- CargaPeriodos()
- trIva.Visible = False
- trAnticipo.Visible = False
- trAmortizacion.Visible = False
- trPorGarantia.Visible = False
- DvMin.Visible = False
- RowFlexible.Visible = False
- RowPorcentajeComision.Visible = False
- DvMax.Visible = False
- DvTotal.Visible = False
- RowEstatus.Visible = False
- TabPres.HeaderText = "Partidas"
- DdlSubProyectoContrato.AutoPostBack = True
- DvObservaciones.Visible = True
- End If
+ 'If DdlTipoContrato.SelectedValue = "25" Then
+ ' trLicitacion.Visible = False
+ ' divResponsable.Visible = False
+ ' 'TrPeriodo.Visible = True
+ ' trIva.Visible = False
+ ' trAnticipo.Visible = False
+ ' trAmortizacion.Visible = False
+ ' trPorGarantia.Visible = False
+ ' DvMin.Visible = False
+ ' RowFlexible.Visible = False
+ ' RowPorcentajeComision.Visible = False
+ ' DvMax.Visible = False
+ ' DvTotal.Visible = False
+ ' RowEstatus.Visible = False
+ ' TabPres.HeaderText = "Partidas"
+ ' DdlSubProyectoContrato.AutoPostBack = True
+ ' 'DvObservaciones.Visible = True
+ 'End If
Dim CveTipoContrato = DdlTipoContrato.SelectedValue
@@ -879,9 +879,9 @@ Partial Class Contratos_Default
End If
ObjFolios.Dispose()
UpGral.Update()
- End Sub
+ End Sub
#End Region
-
+
#Region " CARGA DATOS "
Private Sub CargaDatos()
Dim ObjContratos As New ClsContratos()
@@ -935,10 +935,11 @@ Partial Class Contratos_Default
CargaContratoPadre()
CargaContratoAddendum()
+
If ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero = 14 Then
- CargaPeriodos()
+
TrCtaEquipo.Visible = True
- TrPeriodo.Visible = True
+ 'TrPeriodo.Visible = True
RFVEstatus.ValidationGroup = ""
RequiredFieldValidator1.ValidationGroup = ""
DvMin.Visible = True
@@ -957,54 +958,69 @@ Partial Class Contratos_Default
TabPres.HeaderText = "Partidas"
End If
- If ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero = 25 Then
- trLicitacion.Visible = False
- divResponsable.Visible = False
- TrPeriodo.Visible = True
- CargaPeriodos()
- trIva.Visible = False
- trAnticipo.Visible = False
- trAmortizacion.Visible = False
- trPorGarantia.Visible = False
- DvMin.Visible = False
- DvMax.Visible = False
- DvTotal.Visible = False
- TabPVInsumos.Visible = False
- RowEstatus.Visible = False
- TabPres.HeaderText = "Partidas"
- thOcCliente.Style.Add("display", "none")
- tdOcCliente.Style.Add("display", "none")
- thNoIdentificacionv.Style.Add("display", "none")
- thLimitar.Style.Add("display", "none")
- tdLimitar2.Style.Add("display", "none")
- tdNoIdentificacionv.Style.Add("display", "none")
- RowFlexible.Visible = False
- TableDatosCabecera.Visible = False
- TabAvanveDocumento.Visible = False
- TabSistema.Visible = False
- RowPorcentajeComision.Visible = False
- TabContratosGastos.Visible = False
- tdCveInterna.Text = ""
- tdLimitar.Text = ""
- tdOC.Text = ""
- THAvance.Visible = False
- THAvance.Style.Add("display", "none")
- TDAvance.Style.Add("display", "none")
- TxtOCInterna.Visible = False
- TxtNoIdentificacionv.Visible = False
- ChkLimitarVenta.Visible = False
- DvObservaciones.Visible = True
- TDObservacion.Visible = True
- tdObservaciones.Visible = True
- TxtObservaciones.Text = ObjContratos.DtResultados.Rows(0)("Observaciones").ToString
- Gv.Columns(6).Visible = True
- DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo").ToString)
- End If
+ 'If ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero = 25 Then
+ ' trLicitacion.Visible = False
+ ' divResponsable.Visible = False
+ ' 'TrPeriodo.Visible = True
+ ' CargaPeriodos()
+ ' trIva.Visible = False
+ ' trAnticipo.Visible = False
+ ' trAmortizacion.Visible = False
+ ' trPorGarantia.Visible = False
+ ' DvMin.Visible = False
+ ' DvMax.Visible = False
+ ' DvTotal.Visible = False
+ ' TabPVInsumos.Visible = False
+ ' RowEstatus.Visible = False
+ ' TabPres.HeaderText = "Partidas"
+ ' thOcCliente.Style.Add("display", "none")
+ ' tdOcCliente.Style.Add("display", "none")
+ ' thNoIdentificacionv.Style.Add("display", "none")
+ ' thLimitar.Style.Add("display", "none")
+ ' tdLimitar2.Style.Add("display", "none")
+ ' tdNoIdentificacionv.Style.Add("display", "none")
+ ' RowFlexible.Visible = False
+ ' TableDatosCabecera.Visible = False
+ ' TabAvanveDocumento.Visible = False
+ ' TabSistema.Visible = False
+ ' RowPorcentajeComision.Visible = False
+ ' TabContratosGastos.Visible = False
+ ' tdCveInterna.Text = ""
+ ' tdLimitar.Text = ""
+ ' tdOC.Text = ""
+ ' THAvance.Visible = False
+ ' THAvance.Style.Add("display", "none")
+ ' TDAvance.Style.Add("display", "none")
+ ' TxtOCInterna.Visible = False
+ ' TxtNoIdentificacionv.Visible = False
+ ' ChkLimitarVenta.Visible = False
+ ' 'DvObservaciones.Visible = True
+ ' TDObservacion.Visible = True
+ ' tdObservaciones.Visible = True
+ ' TxtObservaciones.Text = ObjContratos.DtResultados.Rows(0)("Observaciones").ToString
+ ' Gv.Columns(6).Visible = True
+ ' DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo").ToString)
+ 'End If
If ObjContratos.DtResultados.Rows(0)("CveVendedor").ToString.ToEntero > 0 Then
DdlVendedor.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveVendedor"))
End If
+ ChkAplicaFacCiclica.Checked = CBool(ObjContratos.DtResultados.Rows(0)("FacturacionCicilica"))
+
+ If ChkAplicaFacCiclica.Checked Then
+ CargaPeriodos()
+
+ ChkFacAutomatica.Checked = CBool(ObjContratos.DtResultados.Rows(0)("FacturacionCiclicaAutomatico"))
+
+ DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo"))
+ DdlPeriodo_SelectedIndexChanged(DdlPeriodo, EventArgs.Empty)
+
+ DdlDiaFact.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("DiaMesFacturacion").ToString())
+ TxtObservaciones.Text = ObjContratos.DtResultados.Rows(0)("Observaciones").ToString
+ ChkAplicaFacCiclica_CheckedChanged(ChkAplicaFacCiclica, EventArgs.Empty)
+ End If
+
If (DdlAlmacenDestino.Items.FindByValue(ObjContratos.CveAlmacen.ToString()) Is Nothing) Then
Dim dr As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", ObjContratos.CveAlmacen))
@@ -1224,10 +1240,10 @@ Partial Class Contratos_Default
Maximo = txtMaximo.Text.ToDouble
Total = TxtTotal.Text.ToDouble
- If DdlTipoContrato.SelectedValue = "25" AndAlso DdlPeriodo.SelectedValue.ToEntero() <= 0 Then
- Alert("Debe seleccionar el periodo de facturación.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
+ 'If DdlTipoContrato.SelectedValue = "25" AndAlso DdlPeriodo.SelectedValue.ToEntero() <= 0 Then
+ ' Alert("Debe seleccionar el periodo de facturación.", TipoMensaje.MsgAdvertencia)
+ ' Exit Sub
+ 'End If
If DdlMoneda.SelectedIndex > 0 Then
If TxtTipoCambio.Text.Trim.Length = 0 Or TxtTipoCambio.Text.Trim.ToDouble = 0.0 Then
@@ -1246,207 +1262,195 @@ Partial Class Contratos_Default
Dim ObjContratos As New ClsContratos
Dim ObjInventarios As New ClsInventarios(ObjContratos.IniciaTransacSQL)
- 'Crear Contrato
- If Not CveContrato > 0 Then
+ Try
+ 'Crear Contrato
+ If Not CveContrato > 0 Then
+
+ CveContrato = ObjContratos.AddContratos(TxtNumeroContrato.Text, TxtDescripcionContrato.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, TxtFechaInicial.Text.ToDate, TxtFechaFinal.Text.ToDate,
+ TxtUbicacion.Text, TxtResponsable.Text, DdlSubProyectoContrato.SelectedValue.ToEntero, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble,
+ TxtPorGarantia.Text.ToDouble, "." & Session("FileExtension").ToString, "", DdlContratoPadre.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total,
+ DdlMoneda.SelectedValue.ToEntero, ModalidadDetalle, If(DdlTipoContrato.SelectedValue.ToEntero = 25 OrElse UsuarioActual.Empresa.CvePlataforma = 3, 1, DdlEstatus.SelectedValue.ToEntero), TipoContrato,
+ TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero, CveAlmacenOrigen:=DdlAlmacenOrigen.SelectedValue.ToEntero, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero,
+ PorcentajeComision:=TxtPorcentajeComision.Text.ToEntero, TipoGarantia:=DdlTipoGarantia.SelectedValue.ToEntero, Folio:=TxtFolio.Text.ToEntero, FechaVenc:=txtFechaVenc.Text.ToDate, EstatusFianza:=DdlEstatusFianza.SelectedValue.ToEntero,
+ CvePeriodo:=DdlPeriodo.SelectedValue.ToEntero, CveCuentaEquipo:=DdlCuentaEquipo.SelectedValue.ToEntero, CveContratoPlantilla:=DdlPlantillaContrato.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero,
+ Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=DdlClienteDireccionEnvio.SelectedValue.ToEntero, AplicaImpuestosLocales:=ChkImpuestosLocales.Checked, CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim(),
+ FacturacionCicilica:=ChkAplicaFacCiclica.Checked, FacturacionCiclicaAutomatico:=ChkFacAutomatica.Checked, DiaMesFacturacion:=DdlDiaFact.SelectedValue.ToEntero())
+
+
+ TieneError = Not GuardaFianzas(ObjContratos)
+
+
+ If CveContrato > 0 AndAlso Not TieneError Then
+ 'Renombrar archivo
+ If ViewState("extencion") IsNot Nothing Then
+ If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
+ If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
+ Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
+ End If
+ Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
+
+ 'ViewState("extencion") = FileExtension
+ 'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString)
+ Try
+ If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then
+ File.Delete(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString))
+ End If
+ System.IO.File.Move(ViewState("FUrl").ToString, String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString))
+ Catch ex As Exception
+
+ End Try
+ End If
+ End If
+
+ 'If UsuarioActual.Empresa.CvePlataforma = 3 AndAlso DdlTipoContrato.SelectedValue = "14" Then
+ ' Dim FechaI As DateTime = TxtFechaInicial.Text.ToDateTime
+ ' Dim FechaF As DateTime = TxtFechaFinal.Text.ToDateTime
+ ' Dim Periodo As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero
+ ' Dim VigenciaEnDias As Double = DateDiff(DateInterval.Day, FechaI, FechaF)
+ ' Dim CiclosComerciales As Integer = Math.Round(VigenciaEnDias / Periodo).ToEntero
+ ' For Ciclo As Integer = 1 To CiclosComerciales
+ ' If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI.AddDays(Periodo * Ciclo)) Then TieneError = True : Exit For
+ ' Next
+ 'End If
+
+ If ChkAplicaFacCiclica.Checked Then
+ TieneError = Not GenerarCiclosComerciales(CveContrato, False, ObjContratos)
+ End If
+
+ If TxtNumeroContrato.Text = FolioSugerido Then
+ Dim ObjFolios As New ClsGralFolios
+ If Not ObjFolios.UpdateFolioActual(DdlSubProyectoContrato.SelectedValue.ToEntero, "Con", True, UsuarioActual.CveEmpresa) Then
+ TieneError = True
+ End If
+ ObjFolios.Dispose()
+ End If
+
+ If ChkImpuestosLocales.Checked Then
+ Dim count As Integer = 0
+
+ For Each GVR As GridViewRow In GvImpuestosLocales.Rows
+ If GVR.FCCheckBox("ChkDeduccion").Checked Then
+ count = count + 1
+ ObjContratos.AddContratoImpuestosLocales(CveContrato, GVR.DataKey("CveImpuestoLocal").ToEntero)
+ End If
+ Next
+
+ If count = 0 Then
+ Alert("Debe seleccionar un Impuesto Local", TipoMensaje.MsgAdvertencia)
+ TieneError = True
+ End If
+ End If
+
+ Else
+ TieneError = True
+ End If
+
+ Else
+ Modificado = True
+
+ Dim ArchivoUpdate As String = "-1"
+
+ If Session("FileExtension").ToString <> "" Then
+ ArchivoUpdate = "." & Session("FileExtension").ToString
+ Else
+
+ End If
+
+ If ObjContratos.UpdateContratos(CveContrato, TxtNumeroContrato.Text, TxtDescripcionContrato.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, TxtFechaInicial.Text.ToDate, TxtFechaFinal.Text.ToDate,
+ TxtUbicacion.Text, TxtResponsable.Text, DdlSubProyectoContrato.SelectedValue.ToEntero, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble,
+ TxtPorGarantia.Text.ToDouble, ArchivoUpdate, "", DdlContratoPadre.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total, DdlMoneda.SelectedValue.ToEntero,
+ ModalidadDetalle, If(UsuarioActual.Empresa.CvePlataforma = 3 OrElse CveTipoContrato = 25, 1, DdlEstatus.SelectedValue.ToEntero), TipoContrato, TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero,
+ CveAlmacenOrigen:=DdlAlmacenOrigen.SelectedValue.ToEntero, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, PorcentajeComision:=TxtPorcentajeComision.Text.ToEntero,
+ TipoGarantia:=DdlTipoGarantia.SelectedValue.ToEntero, Folio:=TxtFolio.Text.ToEntero, FechaVenc:=txtFechaVenc.Text.ToDate, EstatusFianza:=DdlEstatusFianza.SelectedValue.ToEntero, CveContratoPlantilla:=DdlPlantillaContrato.SelectedValue.ToEntero,
+ CveCuentaEquipo:=DdlCuentaEquipo.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=DdlClienteDireccionEnvio.SelectedValue.ToEntero, AplicaImpuestosLocales:=ChkImpuestosLocales.Checked,
+ CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim(), FacturacionCicilica:=ChkAplicaFacCiclica.Checked, FacturacionCiclicaAutomatico:=ChkFacAutomatica.Checked, DiaMesFacturacion:=DdlDiaFact.SelectedValue.ToEntero(), CvePeriodo:=DdlPeriodo.SelectedValue.ToEntero()) Then
+
+
+ TieneError = Not GuardaFianzas(ObjContratos)
+
+ 'Renombrar archivo
+ If Not TieneError Then
+
+ 'If UsuarioActual.Empresa.CvePlataforma = 3 AndAlso DdlTipoContrato.SelectedValue = "14" Then
+
+ ' If Not ObjContratos.CicloComercialDelete(CveContrato, False, UsuarioActual.CveEmpresa) Then
+ ' TieneError = True
+ ' End If
+
+ ' Dim FechaIN As DateTime = TxtFechaInicial.Text.ToDateTime
+ ' Dim FechaFN As DateTime = TxtFechaFinal.Text.ToDateTime
+ ' Dim Periodo As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero
+ ' Dim VigenciaEnDias As Double = DateDiff(DateInterval.Day, FechaI, FechaF)
+ ' Dim CiclosComerciales As Integer = Math.Round(VigenciaEnDias / Periodo).ToEntero
+ ' For Ciclo As Integer = 1 To CiclosComerciales
+ ' If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI.AddDays(Periodo * Ciclo)) Then TieneError = True : Exit For
+ ' Next
+ 'End If
+
+ If ChkAplicaFacCiclica.Checked Then
+ TieneError = Not GenerarCiclosComerciales(CveContrato, True, ObjContratos)
+ Else
+
+ If Not ObjContratos.CicloComercialDelete(CveContrato, False, UsuarioActual.CveEmpresa) Then
+ TieneError = True
+ End If
+
+ End If
+
+ If ViewState("extencion") IsNot Nothing Then
+
+ If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
+ If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
+ Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
+ End If
+ Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
+
+ Try
+ If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then
+ File.Delete(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString))
+ End If
+ System.IO.File.Move(ViewState("FUrl").ToString, String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString))
+ Catch ex As Exception
+
+ End Try
+ ' System.IO.File.Move(Archivo, String.Format("{0}{1}{2}", Ruta, CveContrato.ToString, Extension))
+ End If
+ End If
+
+ If ChkImpuestosLocales.Checked Then
+ Dim count As Integer = 0
+ ObjContratos.LimpiaImpuestosLocales(CveContrato)
+
+ For Each GVR As GridViewRow In GvImpuestosLocales.Rows
+ If GVR.FCCheckBox("ChkDeduccion").Checked Then
+ count = count + 1
+ ObjContratos.AddContratoImpuestosLocales(CveContrato, GVR.DataKey("CveImpuestoLocal").ToEntero)
+ End If
+ Next
+
+ If count = 0 Then
+ Alert("Debe seleccionar un Impuesto Local", TipoMensaje.MsgAdvertencia)
+ TieneError = True
+ End If
+ Else
+ ObjContratos.LimpiaImpuestosLocales(CveContrato)
+ End If
+
+ End If
+ Else
+ TieneError = True
+ End If
+ End If
+ Catch ex As Exception
+ TieneError = True
+ OnError("Ocurrió un error al guardar el contrato.", ex)
+ End Try
- CveContrato = ObjContratos.AddContratos(TxtNumeroContrato.Text, TxtDescripcionContrato.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, TxtFechaInicial.Text.ToDate, TxtFechaFinal.Text.ToDate,
- TxtUbicacion.Text, TxtResponsable.Text, DdlSubProyectoContrato.SelectedValue.ToEntero, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble,
- TxtPorGarantia.Text.ToDouble, "." & Session("FileExtension").ToString, "", DdlContratoPadre.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total,
- DdlMoneda.SelectedValue.ToEntero, ModalidadDetalle, If(DdlTipoContrato.SelectedValue.ToEntero = 25 OrElse UsuarioActual.Empresa.CvePlataforma = 3, 1, DdlEstatus.SelectedValue.ToEntero), TipoContrato,
- TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero, CveAlmacenOrigen:=DdlAlmacenOrigen.SelectedValue.ToEntero, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero,
- PorcentajeComision:=TxtPorcentajeComision.Text.ToEntero, TipoGarantia:=DdlTipoGarantia.SelectedValue.ToEntero, Folio:=TxtFolio.Text.ToEntero, FechaVenc:=txtFechaVenc.Text.ToDate, EstatusFianza:=DdlEstatusFianza.SelectedValue.ToEntero,
- CvePeriodo:=DdlPeriodo.SelectedValue.ToEntero, CveCuentaEquipo:=DdlCuentaEquipo.SelectedValue.ToEntero, CveContratoPlantilla:=DdlPlantillaContrato.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero,
- Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=DdlClienteDireccionEnvio.SelectedValue.ToEntero, AplicaImpuestosLocales:=ChkImpuestosLocales.Checked, CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim())
-
-
- TieneError = Not GuardaFianzas(ObjContratos)
-
-
- If CveContrato > 0 AndAlso Not TieneError Then
- 'Renombrar archivo
- If ViewState("extencion") IsNot Nothing Then
- If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
- If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
- Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
- End If
- Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
-
- 'ViewState("extencion") = FileExtension
- 'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString)
- Try
- If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then
- File.Delete(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString))
- End If
- System.IO.File.Move(ViewState("FUrl").ToString, String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString))
- Catch ex As Exception
-
- End Try
- End If
- End If
-
- If UsuarioActual.Empresa.CvePlataforma = 3 AndAlso DdlTipoContrato.SelectedValue = "14" Then
- Dim FechaI As DateTime = TxtFechaInicial.Text.ToDateTime
- Dim FechaF As DateTime = TxtFechaFinal.Text.ToDateTime
- Dim Periodo As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero
- Dim VigenciaEnDias As Double = DateDiff(DateInterval.Day, FechaI, FechaF)
- Dim CiclosComerciales As Integer = Math.Round(VigenciaEnDias / Periodo).ToEntero
- For Ciclo As Integer = 1 To CiclosComerciales
- If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI.AddDays(Periodo * Ciclo)) Then TieneError = True : Exit For
- Next
- ElseIf DdlTipoContrato.SelectedValue = "25" Then
- Dim FechaI As DateTime = TxtFechaInicial.Text.ToDateTime
- Dim FechaF As DateTime = TxtFechaFinal.Text.ToDateTime
- If FechaI >= DateTime.Today Then
- If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI) Then TieneError = True
- End If
- Dim Periodo As Integer = DtPeriodo.FiltroPrimeroValor("Meses", $"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").ToEntero
- Dim VigenciaMeses As Double = DateDiff(DateInterval.Month, FechaI, FechaF)
- Dim CiclosComerciales As Integer = Math.Ceiling(VigenciaMeses / Periodo).ToEntero
- For Ciclo As Integer = 1 To CiclosComerciales
- If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, If(FechaI.AddMonths(Periodo * Ciclo) > FechaF, FechaF, FechaI.AddMonths(Periodo * Ciclo))) Then TieneError = True : Exit For
- Next
- End If
-
- If TxtNumeroContrato.Text = FolioSugerido Then
- Dim ObjFolios As New ClsGralFolios
- If Not ObjFolios.UpdateFolioActual(DdlSubProyectoContrato.SelectedValue.ToEntero, "Con", True, UsuarioActual.CveEmpresa) Then
- TieneError = True
- End If
- ObjFolios.Dispose()
- End If
-
- If ChkImpuestosLocales.Checked Then
- Dim count As Integer = 0
-
- For Each GVR As GridViewRow In GvImpuestosLocales.Rows
- If GVR.FCCheckBox("ChkDeduccion").Checked Then
- count = count + 1
- ObjContratos.AddContratoImpuestosLocales(CveContrato, GVR.DataKey("CveImpuestoLocal").ToEntero)
- End If
- Next
-
- If count = 0 Then
- Alert("Debe seleccionar un Impuesto Local", TipoMensaje.MsgAdvertencia)
- TieneError = True
- End If
- End If
-
- Else
- TieneError = True
- End If
-
- Else
- Modificado = True
-
- Dim ArchivoUpdate As String = "-1"
-
- If Session("FileExtension").ToString <> "" Then
- ArchivoUpdate = "." & Session("FileExtension").ToString
- Else
-
- End If
-
- If ObjContratos.UpdateContratos(CveContrato, TxtNumeroContrato.Text, TxtDescripcionContrato.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, TxtFechaInicial.Text.ToDate, TxtFechaFinal.Text.ToDate,
- TxtUbicacion.Text, TxtResponsable.Text, DdlSubProyectoContrato.SelectedValue.ToEntero, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble,
- TxtPorGarantia.Text.ToDouble, ArchivoUpdate, "", DdlContratoPadre.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total, DdlMoneda.SelectedValue.ToEntero,
- ModalidadDetalle, If(UsuarioActual.Empresa.CvePlataforma = 3 OrElse CveTipoContrato = 25, 1, DdlEstatus.SelectedValue.ToEntero), TipoContrato, TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero,
- CveAlmacenOrigen:=DdlAlmacenOrigen.SelectedValue.ToEntero, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, PorcentajeComision:=TxtPorcentajeComision.Text.ToEntero,
- TipoGarantia:=DdlTipoGarantia.SelectedValue.ToEntero, Folio:=TxtFolio.Text.ToEntero, FechaVenc:=txtFechaVenc.Text.ToDate, EstatusFianza:=DdlEstatusFianza.SelectedValue.ToEntero, CveContratoPlantilla:=DdlPlantillaContrato.SelectedValue.ToEntero,
- CveCuentaEquipo:=DdlCuentaEquipo.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=DdlClienteDireccionEnvio.SelectedValue.ToEntero, AplicaImpuestosLocales:=ChkImpuestosLocales.Checked,
- CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim()) Then
-
-
- TieneError = Not GuardaFianzas(ObjContratos)
-
- 'Renombrar archivo
- If Not TieneError Then
-
- If UsuarioActual.Empresa.CvePlataforma = 3 AndAlso DdlTipoContrato.SelectedValue = "14" Then
- Dim FechaIN As DateTime = TxtFechaInicial.Text.ToDateTime
- Dim FechaFN As DateTime = TxtFechaFinal.Text.ToDateTime
- Dim Periodo As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero
- Dim VigenciaEnDias As Double = DateDiff(DateInterval.Day, FechaI, FechaF)
- Dim CiclosComerciales As Integer = Math.Round(VigenciaEnDias / Periodo).ToEntero
- For Ciclo As Integer = 1 To CiclosComerciales
- If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI.AddDays(Periodo * Ciclo)) Then TieneError = True : Exit For
- Next
- ElseIf CveTipoContrato = 25 Then
- Dim FechaIN As DateTime = TxtFechaInicial.Text.ToDateTime
- Dim FechaFN As DateTime = TxtFechaFinal.Text.ToDateTime
- If FechaFN <> FechaF OrElse FechaI <> FechaIN Then
- If Not ObjContratos.CicloComercialDelete(CveContrato, False, UsuarioActual.CveEmpresa) Then
- TieneError = True
- End If
- If Not TieneError Then
- If FechaIN >= DateTime.Today Then
- If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaIN) Then TieneError = True
- End If
- Dim Periodo As Integer = DtPeriodo.FiltroPrimeroValor("Meses", $"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").ToEntero
- Dim VigenciaMeses As Double = DateDiff(DateInterval.Month, FechaI, FechaF)
- Dim CiclosComerciales As Integer = Math.Ceiling(VigenciaMeses / Periodo).ToEntero
- For Ciclo As Integer = 1 To CiclosComerciales
- If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, If(FechaIN.AddMonths(Periodo * Ciclo) > FechaFN, FechaFN, FechaIN.AddMonths(Periodo * Ciclo))) Then TieneError = True : Exit For
- Next
- End If
- End If
- End If
-
- If ViewState("extencion") IsNot Nothing Then
-
- If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
- If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
- Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
- End If
- Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
-
- Try
- If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then
- File.Delete(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString))
- End If
- System.IO.File.Move(ViewState("FUrl").ToString, String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString))
- Catch ex As Exception
-
- End Try
- ' System.IO.File.Move(Archivo, String.Format("{0}{1}{2}", Ruta, CveContrato.ToString, Extension))
- End If
- End If
-
- If ChkImpuestosLocales.Checked Then
- Dim count As Integer = 0
- ObjContratos.LimpiaImpuestosLocales(CveContrato)
-
- For Each GVR As GridViewRow In GvImpuestosLocales.Rows
- If GVR.FCCheckBox("ChkDeduccion").Checked Then
- count = count + 1
- ObjContratos.AddContratoImpuestosLocales(CveContrato, GVR.DataKey("CveImpuestoLocal").ToEntero)
- End If
- Next
-
- If count = 0 Then
- Alert("Debe seleccionar un Impuesto Local", TipoMensaje.MsgAdvertencia)
- TieneError = True
- End If
- Else
- ObjContratos.LimpiaImpuestosLocales(CveContrato)
- End If
-
- End If
- Else
- TieneError = True
- End If
-
-
- End If
If TieneError Then
ObjContratos.RollBack()
Else
ObjContratos.Commit()
-
- If ObjContratos.GetContratos(-1, -1) Then
- Application("GlobalDTContratos") = ObjContratos.DtResultados
- End If
-
Limpiar()
If Modificado Then
Alert("El Contrato se modificó Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato))
@@ -1454,10 +1458,104 @@ Partial Class Contratos_Default
Alert("El Contrato se registró Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato))
End If
- End If
-
- UpGral.Update()
+ End If
+
ObjContratos.Dispose()
+ UpGral.Update()
+
+ RecargaGlobalContratos()
+ End Sub
+ Private Function GenerarCiclosComerciales(CveContrato As Integer, EsActualizacion As Boolean, ByRef ObjContratos As ClsContratos) As Boolean
+ Dim TieneError As Boolean = False
+
+ Dim FechaI As DateTime = TxtFechaInicial.Text.ToDateTime
+ Dim FechaF As DateTime = TxtFechaFinal.Text.ToDateTime
+
+ If EsActualizacion Then
+ Dim DtCiclos As DataTable = Nothing
+ If ObjContratos.CicloComercialGet(Me.CveContrato, -1, -1, UsuarioActual.CveEmpresa, MinFecha, MaxFecha) Then
+ Dim RowCiclo As DataRow = ObjContratos.DtResultados.FiltroPrimero("FueFacturado = 1", Orderby:="FechaVenc DESC")
+ If RowCiclo IsNot Nothing Then
+ FechaI = RowCiclo("FechaVenc").ToString().ToDateTime()
+ End If
+ Else
+ TieneError = True
+ End If
+
+ If Not ObjContratos.CicloComercialDelete(CveContrato, False, UsuarioActual.CveEmpresa) Then
+ TieneError = True
+ End If
+ End If
+
+
+ Dim PeriodoMeses As Integer = DtPeriodo.FiltroPrimeroValor("Meses", $"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").ToEntero
+
+ Dim PeriodoDias As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero
+
+ If PeriodoMeses > 0 AndAlso PeriodoDias <= 0 Then
+ Dim VigenciaMeses As Double = DateDiff(DateInterval.Month, FechaI, FechaF)
+ Dim CiclosComercialesEnMeses As Integer = Math.Ceiling(VigenciaMeses / PeriodoMeses).ToEntero
+
+ For Ciclo As Integer = 1 To CiclosComercialesEnMeses
+ Dim FechaRef As DateTime = FechaI.AddMonths(PeriodoMeses * Ciclo)
+ Dim lastDayOfMonth = DateTime.DaysInMonth(FechaRef.Year, FechaRef.Month)
+ Dim DiaMes As Integer = If(FechaRef.Day < DdlDiaFact.SelectedValue.ToEntero(), lastDayOfMonth, DdlDiaFact.SelectedValue.ToEntero())
+
+ Dim FechaFact = New DateTime(FechaRef.Year, FechaRef.Month, DiaMes)
+ FechaFact = If(FechaFact > FechaF, FechaF, FechaFact)
+
+ If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaFact) Then TieneError = True : Exit For
+ Next
+ End If
+
+
+
+ If PeriodoDias > 0 AndAlso PeriodoMeses <= 0 Then
+ Dim VigenciaEnMeses As Double = DateDiff(DateInterval.Month, FechaI, FechaF)
+ Dim CiclosComercialesEnDias As Integer = VigenciaEnMeses.ToEntero()
+
+ 'RECORRE LOS MESES QUE VA A FACTURAR
+ For CicloMes As Integer = 1 To CiclosComercialesEnDias
+
+ Dim FechaRef As DateTime = FechaI.AddMonths(CicloMes)
+ Dim CiclosPorMesDecimal As Double = (FechaRef.LastDayOfMonth().Day.ToString().ToDouble() / PeriodoDias.ToString().ToDouble())
+
+ Dim CiclosPorMes As Integer = Math.Truncate(CiclosPorMesDecimal).ToEntero()
+ Dim DecimalPart As Double = CiclosPorMesDecimal - CiclosPorMes.ToString().ToDouble()
+
+ If DecimalPart > 0.7D Then
+ CiclosPorMes += 1
+ End If
+
+ Dim DiaAnterior As Integer = 0
+
+ For CicloDias = 1 To CiclosPorMes
+ Dim DiaMes As Integer = 0
+
+ If CicloDias = 1 Then
+ DiaMes = DdlDiaFact.SelectedValue.ToEntero()
+ Else
+ DiaMes = DiaAnterior + PeriodoDias
+ End If
+
+ Dim FechaFact As DateTime = New DateTime(FechaRef.Year, FechaRef.Month, If(DiaMes > FechaRef.LastDayOfMonth().Day, FechaRef.LastDayOfMonth().Day, DiaMes))
+
+ DiaAnterior = FechaFact.Day
+
+ If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaFact) Then TieneError = True : Exit For
+ Next
+ Next
+
+ End If
+
+ Return Not TieneError
+ End Function
+ Private Sub RecargaGlobalContratos()
+ Using ObjContratos As New ClsContratos
+ If ObjContratos.GetContratos(-1, -1) Then
+ Application("GlobalDTContratos") = ObjContratos.DtResultados
+ End If
+ End Using
End Sub
#End Region
@@ -3468,13 +3566,54 @@ Partial Class Contratos_Default
End If
DdlPeriodo.DataSource = DtPeriodo
ObjContratos.Dispose()
+
DdlPeriodo.DataBind()
UpGral.Update()
- End Sub
+ End Sub
+ Protected Sub DdlPeriodo_SelectedIndexChanged(sender As Object, e As EventArgs)
+
+ If DtPeriodo IsNot Nothing Then
+ If DdlPeriodo.SelectedValue.ToEntero() > 0 Then
+ Dim PeriodoDias As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero
+ If PeriodoDias > 0 Then
+ CargaDiasMes(PeriodoDias)
+ Else
+ CargaDiasMes()
+ End If
+ Else
+ CargaDiasMes()
+ End If
+ Else
+ CargaDiasMes()
+ End If
+
+ End Sub
+ Private Sub CargaDiasMes(Optional NumMaxDias As Integer = 31)
+ DdlDiaFact.Items.Clear()
+ For i = 1 To NumMaxDias
+ DdlDiaFact.Items.Add(New ListItem(i.ToString(), i.ToString()))
+ Next
+ End Sub
+
+ Private Sub CargaCiclosComerciales()
+ If ChkAplicaFacCiclica.Checked Then
+ DivCiclosComerciales.Visible = True
+ Using ObjContratos As New ClsContratos
+ If ObjContratos.CicloComercialGet(Me.CveContrato, -1, -1, UsuarioActual.CveEmpresa, MinFecha, MaxFecha) Then
+ GvCiclosComerciales.DataSource = ObjContratos.DtResultados.FiltraParametros("", Orderby:="FechaVenc ASC")
+ End If
+ End Using
+ Else
+ DivCiclosComerciales.Visible = False
+ End If
+ GvCiclosComerciales.DataBind()
+ UpFacCiclica.Update()
+ End Sub
+
#End Region
-
+
#Region " IMPRESION "
-
+
#Region " IMPRIMIR AVANCE POR DOCUMENTO "
Protected Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles LBImprimir.Click
GenerarPDF()
@@ -4339,15 +4478,22 @@ Partial Class Contratos_Default
ObjContratos.Dispose()
GvImpuestosLocales.DataBind()
UpImpuestos.Update()
- End Sub
-
-
+ End Sub
+
+
#End Region
-
-
-
-
-
+
+
+
+
+
+ Protected Sub ChkAplicaFacCiclica_CheckedChanged(sender As Object, e As EventArgs)
+ DivFacCiclica.Visible = ChkAplicaFacCiclica.Checked
+ DivCiclosComerciales.Visible = ChkAplicaFacCiclica.Checked
+
+ UpFacCiclica.Update()
+ End Sub
+
End Class
diff --git a/Contratos/ContratoObra.aspx b/Contratos/ContratoObra.aspx
index 18722fc8a..c8230178d 100644
--- a/Contratos/ContratoObra.aspx
+++ b/Contratos/ContratoObra.aspx
@@ -157,8 +157,30 @@
+
+
+
+
diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb
index ef37eadcd..1b31514dd 100644
--- a/Ventas/Clientes.aspx.vb
+++ b/Ventas/Clientes.aspx.vb
@@ -1754,7 +1754,6 @@ Partial Class Clientes
TxtCorreoEntregaAlmacen.Text = ObjClientes.DtResultados(0)("CorreoEntregaAlmacen").ToString
CargarClientePersonalEntrega()
- CargarUsuariosEntrega()
Else
Existe = False
Alert("El Cliente Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia)
@@ -10229,12 +10228,6 @@ Partial Class Clientes
End Sub
- Private Sub CargarUsuariosEntrega()
- DdlUsuarioEntrega.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
- DdlUsuarioEntrega.DataBind()
- DdlUsuarioEntrega.Items.Insert(0, New ListItem("Seleccione", "-1"))
- End Sub
-
Private Sub CargarClientePersonalEntrega()
Dim ObjVentas As New ClsVentas()
If ObjVentas.GetClientesPersonalEntrega(-1, CveCliente, UsuarioActual.CveEmpresa, -1) Then
@@ -10246,8 +10239,8 @@ Partial Class Clientes
Protected Sub BtnAgregarClientePersonalEntrega_Click(sender As Object, e As EventArgs) Handles BtnAgregarClientePersonalEntrega.Click
TxtPersonalEntrega.Text = ""
- DdlUsuarioEntrega.SelectedValue = "-1"
- ChkPersonalEntrega.Checked = False
+ ChkPersonalEntrega.Checked = True
+ LnkClientePersonalEntrega.Text = "Agregar"
UpClientePersonalEntrega.Update()
RegistraScript("$('#DivModalClientePersonalEntrega').modal('show');")
End Sub
@@ -10255,11 +10248,11 @@ Partial Class Clientes
Protected Sub LnkClientePersonalEntrega_Click(sender As Object, e As EventArgs)
Dim ObjVentas As New ClsVentas()
If LnkClientePersonalEntrega.Text = "Agregar" Then
- If ObjVentas.AddClientesPersonalEntrega(TxtPersonalEntrega.Text, CveCliente, DdlUsuarioEntrega.SelectedValue.ToEntero, ChkPersonalEntrega.Checked) Then
+ If ObjVentas.AddClientesPersonalEntrega(TxtPersonalEntrega.Text, CveCliente, UsuarioActual.CveUsuario, ChkPersonalEntrega.Checked) Then
Alert("Usuario para entregar agregado correctamente")
End If
Else
- If ObjVentas.UpdateClientesPersonalEntrega(CveClientePersonalEntrega, TxtPersonalEntrega.Text, DdlUsuarioEntrega.SelectedValue.ToEntero, ChkPersonalEntrega.Checked) Then
+ If ObjVentas.UpdateClientesPersonalEntrega(CveClientePersonalEntrega, TxtPersonalEntrega.Text, UsuarioActual.CveUsuario, ChkPersonalEntrega.Checked) Then
Alert("Usuario para entregar actualizado correctamente")
End If
End If
@@ -10273,7 +10266,6 @@ Partial Class Clientes
Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow)
CveClientePersonalEntrega = GvRow.DataKey("CvePersonalEntrega").ToEntero
TxtPersonalEntrega.Text = GvRow.DataKey("PersonalEntrega")
- DdlUsuarioEntrega.SelectedValue = GvRow.DataKey("CveUsuario")
ChkPersonalEntrega.Checked = GvRow.DataKey("Estatus") = "True"
LnkClientePersonalEntrega.Text = "Actualizar"
UpClientePersonalEntrega.Update()
diff --git a/Ventas/ProductosServicios.aspx b/Ventas/ProductosServicios.aspx
index e3ff10271..91b9fb262 100644
--- a/Ventas/ProductosServicios.aspx
+++ b/Ventas/ProductosServicios.aspx
@@ -849,6 +849,14 @@
+
+
+
+
+
+
+
+
@@ -861,16 +869,16 @@
-
+
-
-
+
+
-
-
-
+
+
+
diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb
index ae6e57cc4..7f2285a55 100644
--- a/Ventas/ProductosServicios.aspx.vb
+++ b/Ventas/ProductosServicios.aspx.vb
@@ -876,6 +876,10 @@ Partial Class ProductosyServicios
ChkLote.Checked = ObjProductosServicios.AplicaLote
ChkCaducidad.Checked = ObjProductosServicios.AplicaCaducidad
ChkSeccion.Checked = ObjProductosServicios.AplicaSeccion
+ If ObjProductosServicios.DtResultados.Rows(0)("TiempoCaducidad") IsNot Nothing Then
+ TxtTiempoCaducidad.Text = ObjProductosServicios.DtResultados.Rows(0)("TiempoCaducidad").ToString()
+ DivTiempoCaducidad.Visible = ChkCaducidad.Checked
+ End If
If ObjProductosServicios.AplicaSeccion Then
CargaGvSeccionAlmacen()
@@ -1190,6 +1194,16 @@ Partial Class ProductosyServicios
Dim CveMarca As Integer = 0
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then CveMarca = DdlMarcaPSDes.SelectedValue.ToEntero Else CveMarca = DdlMarca.SelectedValue.ToEntero
+ Dim TiempoCaducidad As Integer = -1
+ If ChkCaducidad.Checked Then
+ If TxtTiempoCaducidad.Text.Length > 0 AndAlso IsNumeric(TxtTiempoCaducidad.Text) Then
+ TiempoCaducidad = TxtTiempoCaducidad.Text.ToEntero()
+ Else
+ Alert("Falta indicar el tiempo de caducidad", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
+
If CvePS = -1 Then
Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
@@ -1204,7 +1218,7 @@ Partial Class ProductosyServicios
CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero,
CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
- ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked) > 0 Then
+ ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked, TiempoCaducidad:=TiempoCaducidad) > 0 Then
ViewState("CvePS") = ObjProductosServicios.CvePS
For Each GVR As GridViewRow In GvImpuestosLocales.Rows
If GVR.FCCheckBox("ChkDeduccion").Checked Then
@@ -1250,7 +1264,7 @@ Partial Class ProductosyServicios
CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked,
- AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked) Then
+ AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TiempoCaducidad) Then
If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then
TieneError = True
@@ -1411,7 +1425,7 @@ Partial Class ProductosyServicios
Dim ObjAliasDelete As New ClsProductosServicios
Dim TieneError = False
- If ObjAliasDelete.RemovePSAlias(GVAlias.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero, GVAlias.Rows(e.RowIndex).DataKey("PSAlias").ToString) Then
+ If ObjAliasDelete.RemovePSAlias(GVAlias.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero, GVAlias.Rows(e.RowIndex).DataKey("PSAlias").ToString, -1) Then
GVAlias.EditIndex = -1
CargarAlias()
UPGVAlias.Update()
@@ -2731,4 +2745,10 @@ Partial Class ProductosyServicios
End If
Return Existencia > 0
End Function
+
+ Protected Sub ChkCaducidad_CheckedChanged(sender As Object, e As EventArgs)
+ Dim Activar As Boolean = ChkCaducidad.Checked
+ DivTiempoCaducidad.Visible = Activar
+ RfvTxtTiempoCaducidad.Enabled = Activar
+ End Sub
End Class
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index e83a4b491..496abf10f 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -2330,11 +2330,9 @@ Partial Class Ventas
End If
'ENVIO DE FACTURA
- If Not UsuarioActual.CveEmpresa.Contiene(72, 80, 119) Then
- ChkEnviarFactura.Checked = EnviarCorreoCliente
- ChkEnviarFactura.Visible = True
- LblEnviarMail.Visible = True
- End If
+ ChkEnviarFactura.Checked = False
+ ChkEnviarFactura.Visible = True
+ LblEnviarMail.Visible = True
End If
'Modalidad Contrato
@@ -2565,9 +2563,17 @@ Partial Class Ventas
ChkEnviarFactura.Visible = False
LblEnviarMail.Visible = False
Else
- ChkEnviarFactura.Checked = EnviarCorreoCliente
- ChkEnviarFactura.Visible = True
- LblEnviarMail.Visible = True
+ If DdlTipoComprobante.SelectedValue.Contiene("Rem", "PeC", "PA", "Pd2") Then
+ 'ENVIO DE FACTURA
+ ChkEnviarFactura.Checked = False
+ ChkEnviarFactura.Visible = True
+ LblEnviarMail.Visible = True
+ Else
+ ChkEnviarFactura.Checked = EnviarCorreoCliente
+ ChkEnviarFactura.Visible = True
+ LblEnviarMail.Visible = True
+ End If
+
End If
CargaFletes()
@@ -5028,9 +5034,16 @@ Partial Class Ventas
ChkEnviarFactura.Visible = False
LblEnviarMail.Visible = False
Else
- ChkEnviarFactura.Visible = True
- ChkEnviarFactura.Checked = EnviarCorreoCliente
- LblEnviarMail.Visible = True
+ If DdlTipoComprobante.SelectedValue.Contiene("Rem", "PeC", "PA", "Pd2") Then
+ 'ENVIO DE FACTURA
+ ChkEnviarFactura.Checked = False
+ ChkEnviarFactura.Visible = True
+ LblEnviarMail.Visible = True
+ Else
+ ChkEnviarFactura.Checked = EnviarCorreoCliente
+ ChkEnviarFactura.Visible = True
+ LblEnviarMail.Visible = True
+ End If
End If
ViewState("Mail") = If(DdlTipoComprobante.SelectedValue = "Cot", ObjCliente.MailCotizacion, ObjCliente.Mail)
@@ -5633,6 +5646,24 @@ Partial Class Ventas
End If
End If
+ 'CUANDO SEA COTIZACION Y SEA COMPUPROVEEDORES (EMPRESA 72) NO DEBE ENVIAR CORREO AL CLIENTE
+ If UsuarioActual.CveEmpresa = 72 AndAlso DdlTipoComprobante.SelectedValue = "Cot" Then
+ ChkEnviarFactura.Checked = False
+ ChkEnviarFactura.Visible = False
+ LblEnviarMail.Visible = False
+ Else
+ If DdlTipoComprobante.SelectedValue.Contiene("Rem", "PeC", "PA", "Pd2") Then
+ 'ENVIO DE FACTURA
+ ChkEnviarFactura.Checked = False
+ ChkEnviarFactura.Visible = True
+ LblEnviarMail.Visible = True
+ Else
+ ChkEnviarFactura.Checked = EnviarCorreoCliente
+ ChkEnviarFactura.Visible = True
+ LblEnviarMail.Visible = True
+ End If
+ End If
+
End Sub
@@ -7462,7 +7493,7 @@ Partial Class Ventas
End If
If CveCicloComercial > 0 AndAlso ErrorList.Count = 0 Then
- If Not ObjContr.CicloComercialUpdate(CveCicloComercial, True, UsuarioActual.CveEmpresa) Then
+ If Not ObjContr.CicloComercialUpdate(CveCicloComercial, True, UsuarioActual.CveEmpresa, CveVenta:=ObjFactura.CveVenta) Then
ErrorList.Add("No se pudo actualizar ")
End If
End If
@@ -8063,6 +8094,7 @@ Partial Class Ventas
Drt("CveVenta") = ObjFactura.CveVenta
Drt("Importe") = 0
Drt("FolioFiscal") = ObjFactura.FolioFiscal
+ Drt("Folio") = ObjFactura.SerieFolio
DtVentasNC.Rows.Add(Drt)
DtVentasNC.AcceptChanges()
End If
@@ -8304,6 +8336,7 @@ Partial Class Ventas
Drt("CveVenta") = ObjFactura.CveVenta
Drt("Importe") = 0
Drt("FolioFiscal") = ObjFactura.FolioFiscal
+ Drt("Folio") = ObjFactura.SerieFolio
DtVentasNC.Rows.Add(Drt)
DtVentasNC.AcceptChanges()
End If
@@ -9055,6 +9088,7 @@ Partial Class Ventas
Drt("CveVenta") = gvr.DataKey("CveVenta")
Drt("Importe") = gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text
Drt("FolioFiscal") = gvr.DataKey("FolioFiscal")
+ Drt("Folio") = gvr.DataKey("Folio")
DtVentasNC.Rows.Add(Drt)
End If
Next
@@ -14845,11 +14879,10 @@ Partial Class Ventas
End If
'ENVIO DE FACTURA
- If Not UsuarioActual.CveEmpresa.Contiene(72, 80, 119) Then
- ChkEnviarFactura.Checked = EnviarCorreoCliente
- ChkEnviarFactura.Visible = True
- LblEnviarMail.Visible = True
- End If
+
+ ChkEnviarFactura.Checked = False
+ ChkEnviarFactura.Visible = True
+ LblEnviarMail.Visible = True
End If
@@ -14876,7 +14909,6 @@ Partial Class Ventas
End If
-
TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString
TabAlmacen.Enabled = DdlTipoComprobante.SelectedValue <> "Ant"
@@ -21907,7 +21939,14 @@ Partial Class Ventas
Dim Mensaje = UsuarioActual.Empresa.Funcionalidad(152)
If Mensaje = "" Then Return 0
- Dim Celular = ObjFactura.Cliente.CobranzaTelefono
+ Dim Celular As String = ""
+
+ Try
+ Celular = ObjFactura.Cliente.CobranzaTelefono
+ Catch ex As Exception
+
+ End Try
+
If Celular.Length <> 10 Then Return 3
'ARMA MENSAJE
@@ -24006,12 +24045,14 @@ Partial Class Ventas
DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "TC", .DataType = GetType(Decimal), .DefaultValue = 1})
DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "TCCambioValuacion", .DataType = GetType(Decimal), .DefaultValue = 1})
DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "CveEstatusFactura", .DataType = GetType(Integer), .DefaultValue = -1})
+ DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "Folio", .DataType = GetType(String), .DefaultValue = ""})
End Sub
Private Sub CargaNCDT(pCveVenta As Integer, Importe As Decimal, Optional FolioFiscal As String = "", Optional NuevaFactura As Integer = -1, Optional ByRef ObjVentas As ClsVentas = Nothing, Optional TC As Decimal = 1)
If (pCveVenta > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Egs")) OrElse (pCveVenta > 0 AndAlso NuevaFactura = 1) Then
Dim CveEstatusFacturaNC As Integer = -1
Dim TCCambioValuacion As Decimal = 1
+ Dim Folio As String = ""
If FolioFiscal = "" Then
Dim ObjVentasAplicar As ClsVentas
If ObjVentas IsNot Nothing Then
@@ -24020,6 +24061,7 @@ Partial Class Ventas
ObjVentasAplicar = New ClsVentas
End If
If ObjVentasAplicar.GetVenta(pCveVenta, UsuarioActual.CveEmpresa) AndAlso ObjVentasAplicar.DtResultados.Rows.Count > 0 Then
+ Folio = ObjVentasAplicar.DtResultados.FiltroPrimeroValor("SerieFolio").ToString()
FolioFiscal = ObjVentasAplicar.DtResultados.FiltroPrimeroValor("FolioFiscal").ToString()
TC = ObjVentasAplicar.DtResultados.FiltroPrimeroValor("TipoCambio").ToString().ToDecimal()
TCCambioValuacion = ObjVentasAplicar.DtResultados.FiltroPrimeroValor("TipoCambioValuacion").ToString().ToDecimal()
@@ -24040,6 +24082,7 @@ Partial Class Ventas
Dr("TC") = TC
Dr("TCCambioValuacion") = TCCambioValuacion
Dr("CveEstatusFactura") = CveEstatusFacturaNC
+ Dr("Folio") = Folio
DtVentasNC.Rows.Add(Dr)
End If