This commit is contained in:
Antonio Gonzalez
2020-10-26 13:54:33 -07:00
12 changed files with 2531 additions and 736 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -487,14 +487,14 @@
</asp:DropDownList>
</div>
</div>
<div class="row" id="TrPeriodo" runat="server" visible="False">
<%-- <div class="row" id="TrPeriodo" runat="server" visible="False">
<label class="col-md-2 truncate">
<asp:Label ID="Label5" runat="server" Text="Periodo:"></asp:Label></label><div class="col-md-10">
<asp:DropDownList ID="DdlPeriodo" runat="server" AppendDataBoundItems="True" DataTextField="Nombre" DataValueField="CvePeriodo" Class="table-group-action-input form-control input-inline input-sm select2me" Width="75%">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>--%>
<div class="row">
<label class="col-md-2 truncate">Fecha Inicial:</label>
@@ -575,14 +575,6 @@
<asp:TextBox ID="TxtTotal" runat="server" MaxLength="12" Width="100px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender8" runat="server" TargetControlID="TxtTotal" FilterType="Custom, Numbers" ValidChars=",." BehaviorID="_content_SoloNumeros" />
</div>
</div>
<div class="row" id="DvObservaciones" runat="server" visible="false">
<label class="col-md-2 truncate ">Observación de Facturación:</label>
<div class="col-md-10">
<asp:TextBox ID="TxtObservaciones" runat="server" Width="400px" TextMode="MultiLine" Rows="2"></asp:TextBox>
</div>
</div>
</div>
</div>
@@ -816,12 +808,6 @@
</div>
</div>
</div>
<div class="row" style="display: none;">
<label class="col-md-2 truncate">Importe:</label>
<div class="col-md-10">
@@ -1933,7 +1919,110 @@
</asp:GridView>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabFacCiclica" runat="server" HeaderText="Facturación Ciclica">
<ContentTemplate>
<asp:UpdatePanel ID="UpFacCiclica" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<br />
<div class="row">
<div class="col-md-6">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand" class=" collapse" data-original-title="" title=""></a><span class="hidden">
<input id="C_chkexpand" type="checkbox" name="ctl00$C$chkexpand" checked="checked"></span>
</div>
<div class="caption uppercase" style="position: relative;"><i class="fa fa-info-circle"></i>Datos de Facturación</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<label class="col-md-3 truncate ">Aplica Facturación Ciclica:</label>
<div class="col-md-9">
<asp:CheckBox ID="ChkAplicaFacCiclica" AutoPostBack="True" OnCheckedChanged="ChkAplicaFacCiclica_CheckedChanged" runat="server"></asp:CheckBox>
</div>
</div>
<div class="row" id="DivFacCiclica" runat="server" visible="false">
<div class="col-md-12">
<div class="row">
<label class="col-md-3 truncate">
<asp:Label ID="Label6" runat="server" Text="Periodo:"></asp:Label></label>
<div class="col-md-9">
<asp:DropDownList ID="DdlPeriodo" runat="server" AppendDataBoundItems="True" AutoPostBack="true" OnSelectedIndexChanged="DdlPeriodo_SelectedIndexChanged" DataTextField="Nombre" DataValueField="CvePeriodo" Class="table-group-action-input form-control input-inline input-sm select2me" Width="75%">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<br />
<div class="row">
<label class="col-md-3 truncate">
<asp:Label ID="Label5" runat="server" Text="Dia del mes:"></asp:Label></label>
<div class="col-md-9">
<asp:DropDownList ID="DdlDiaFact" runat="server" AppendDataBoundItems="True" Class="table-group-action-input form-control input-inline input-sm select2me" Width="75%">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<br />
<div class="row">
<label class="col-md-3 truncate ">Facturación Automatica:</label>
<div class="col-md-9">
<asp:CheckBox ID="ChkFacAutomatica" runat="server"></asp:CheckBox>
</div>
</div>
<br />
<div class="row">
<label class="col-md-3 truncate ">Observación de Facturación:</label>
<div class="col-md-9">
<asp:TextBox ID="TxtObservaciones" runat="server" Width="400px" TextMode="MultiLine" Rows="2"></asp:TextBox>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="portlet smmallpadding light bordered" id="DivCiclosComerciales" runat="server" visible="false">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand" class=" collapse" data-original-title="" title=""></a><span class="hidden">
<input id="C_chkexpand" type="checkbox" name="ctl00$C$chkexpand" checked="checked"></span>
</div>
<div class="caption uppercase" style="position: relative;"><i class="fa fa-info-circle"></i>Ciclos de facturación</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<div class="col-md-12" align="right">
<input type="text" id="TxtFiltraCiclos" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtFiltraCiclos','{0}')", GvCiclosComerciales.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtFiltraCiclos','{0}')", GvDatosAvance.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvCiclosComerciales" ClientIDMode="Static" ShowHeader="true" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron documentos." CssClass="table table-striped table-hover Widthall" BorderColor="#D3D3D3" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Fecha Vencimiento" DataField="FechaVenc" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField HeaderText="Fue Facturado" DataField="FueFacturadoTexto" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" />
<%-- <asp:BoundField HeaderText="Periodo" DataField="Periodo" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" />--%>
<asp:HyperLinkField HeaderText="Serie-Folio" DataTextField="VentaFacturada" Target="_blank" ItemStyle-Width="10%" ItemStyle-CssClass="Texto Izquierda" DataNavigateUrlFields="CveVentaFacturada" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" />
<asp:BoundField HeaderText="Moneda" DataField="MonedaVenta" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Fecha Facturación" DataField="FechaIngVenta" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<%-- <asp:BoundField HeaderText="SubTotal" DataField="SubTotalVenta" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField HeaderText="IVA" DataField="IVAVenta" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField HeaderText="IEPS" DataField="IVAVenta" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />--%>
<asp:BoundField HeaderText="Total" DataField="TotalVenta" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabSistema" runat="server" HeaderText="Sistema">
<ContentTemplate>

View File

@@ -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

View File

@@ -157,8 +157,30 @@
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpAccionesPresupuestos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkModalAddPSVentas" Visible="false" runat="server" OnClick="LnkModalAddPSVentas_Click"> <i class="fa fa-plus" style="font-weight:bold;" ></i>Agregar PS Venta</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkModalAddPSControl" Visible="false" runat="server" OnClick="LnkModalAddPSControl_Click"> <i class="fa fa-plus" style="font-weight:bold;"></i>Agregar PS Control</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkModalAddPresupuestoVentas" Visible="false" runat="server" OnClick="LnkModalAddPresupuestoVentas_Click"> <i class="fa fa-file-excel-o" style="font-weight:bold;"></i>Agregar Presupuesto Venta</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkModalAddPresupuestoControl" Visible="false" runat="server" OnClick="LnkModalAddPresupuestoControl_Click"> <i class="fa fa-file-excel-o" style="font-weight:bold;"></i>Agregar Presupuesto Control</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
@@ -890,71 +912,10 @@
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}');sumagvx();", Gv.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<table class="table Widthall">
<tr class="Titulos">
<td runat="server" id="thOcCliente" style="width: 75px">
<asp:Literal Text="OC <br/> Cliente" ID="tdOC" runat="server" />
</td>
<td style="width: 150px">Cantidad</td>
<td runat="server" id="thLimitar" style="width: 75px">
<asp:Literal Text="Limitar" runat="server" ID="tdLimitar" /></td>
<td runat="server" id="thNoIdentificacionv" style="width: 75px">
<asp:Literal Text="Clave Interna Cliente" ID="tdCveInterna" runat="server" /></td>
<td style="width: 400px">Producto/Servicio</td>
<td style="width: 100px">U. M.</td>
<td style="width: 150px" runat="server" id="TDObservacion" visible="false">Observación</td>
<td style="width: 150px">Precio Unitario</td>
<td style="width: 150px">Total</td>
<td style="width: 150px" id="THAvance" runat="server" visible="false">Permite Avance</td>
<%-- <td style="width: 150px" id="tdCol7" runat="server">Permite Estimación </td>--%>
<td style="width: 100px">Comandos</td>
</tr>
<tr class="Titulos">
<td runat="server" id="tdOcCliente">
<asp:TextBox ID="TxtOCInterna" runat="server" MaxLength="15" Width="70px"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TxtCantidad" runat="server" Width="70px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregar"></asp:RequiredFieldValidator><ajax:ValidatorCalloutExtender ID="CVECantidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td runat="server" id="tdLimitar2">
<asp:CheckBox ID="ChkLimitarVenta" runat="server" />
</td>
<td runat="server" id="tdNoIdentificacionv">
<asp:TextBox ID="TxtNoIdentificacionv" runat="server" MaxLength="15" Width="70px"></asp:TextBox>
</td>
<td>
<div style="max-width: 550px;">
<asp:DropDownList ID="DdlClasificacionAdd" runat="server" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" CssClass="table-group-action-input form-control input-inline input-sm select2me" Style="width: 100%;"></asp:DropDownList>
<br />
<ADS:Dropdownlost runat="server" ID="DdlProductows" CssStyle="width: 100%;" CssClassDdl="select2me" DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
</td>
<td>
<asp:DropDownList ID="DdlUM" runat="server" AutoPostBack="true" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="table-group-action-input form-control input-inline input-small input-sm" Style="width: 100px !important;"></asp:DropDownList>
</td>
<td runat="server" id="tdObservaciones" visible="false">
<asp:TextBox ID="TxtObservacionesDetalles" runat="server" Width="100px"></asp:TextBox>
</td>
<td style="width: 75px">
<asp:TextBox ID="TxtPU" runat="server" Width="70px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender2" runat="server" TargetControlID="TxtPU" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVPU" runat="server" ControlToValidate="TxtPU" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''P.U.''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregar"></asp:RequiredFieldValidator><ajax:ValidatorCalloutExtender ID="CVEPU" runat="server" HighlightCssClass="vco" TargetControlID="RFVPU" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td></td>
<td id="TDAvance" runat="server" visible="false"></td>
<td>
<asp:Button Text="Agregar" runat="server" ID="BtnAgregarDetalle" Width="100px" OnClick="BtnAgregarDetalle_Click" ValidationGroup="GrpAgregar" class="btn btn-default" /></td>
</tr>
</table>
</asp:Panel>
</ContentTemplate>
@@ -965,122 +926,134 @@
<asp:UpdatePanel ID="UpGV" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="Gv" ClientIDMode="Static" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron Conceptos" DataKeyNames="CveContratoDetalle,CveUM, CvePS, Cantidad, PU,CveTipoPresupuesto,CveClasificacion" ShowHeader="true" SelectedRowStyle-BackColor="#66CCFF" CssClass="table table-striped table-hover Widthall mysmallbtn" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="OC <br/> Cliente">
<ItemTemplate>
<asp:Literal ID="LbOCInternaEdit" Text='<%# Eval("OCInterna")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtOCInternaEdit" MaxLength="15" runat="server" Text='<%# Eval("OCInterna") %>' Width="70px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle Width="75px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:Literal ID="LtCantidad" Text='<%# Eval("CantidadContratada")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtCantidad" runat="server" Text='<%# Eval("CantidadContratada") %>' Width="90px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtenderCantidad" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
</EditItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Limitar">
<ItemTemplate>
<asp:Literal ID="LblLimitar" Text='<%# If(Eval("LimitarCantidad").ToString = "True", "Si", "No")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkLimitarCantidad" runat="server" Checked='<%# Eval("LimitarCantidad").ToString%>'></asp:CheckBox>
</EditItemTemplate>
<ItemStyle Width="75px" HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Clave <br/> Interna <br/> Cliente">
<ItemTemplate>
<asp:Literal ID="LblNoIdentificacion" Text='<%# Eval("NoIdentificacion")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtNoIdentificacion" MaxLength="15" runat="server" Text='<%# Eval("NoIdentificacion") %>' Width="70px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle Width="75px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Producto/Servicio" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LtPS" Text='<%# Eval("CodigoPS")%>' runat="server"></asp:Literal>
</ItemTemplate>
<ItemStyle Width="400px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="U.M.">
<ItemTemplate>
<asp:Literal ID="LtUM" Text='<%# Eval("UM")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DdlUMEdit" runat="server" AutoPostBack="true" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="table-group-action-input form-control input-inline input-small input-sm" Style="width: 75px !important;"></asp:DropDownList>
</EditItemTemplate>
<ItemStyle Width="100px" />
</asp:TemplateField>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="Gv" ClientIDMode="Static" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron Conceptos"
DataKeyNames="CveContratoDetalle,CveUM, CvePS, Cantidad, PU,CveTipoPresupuesto,CveClasificacion,CodigoPS,LimitarCantidad,PS,OCInterna,NoIdentificacion"
ShowHeader="true" SelectedRowStyle-BackColor="#66CCFF" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="OC <br/> Cliente">
<ItemTemplate>
<asp:Literal ID="LbOCInternaEdit" Text='<%# Eval("OCInterna")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtOCInternaEdit" MaxLength="15" runat="server" Text='<%# Eval("OCInterna") %>' Width="70px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle Width="75px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:Literal ID="LtCantidad" Text='<%# Eval("CantidadContratada")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtCantidad" runat="server" Text='<%# Eval("CantidadContratada") %>' Width="90px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtenderCantidad" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
</EditItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Limitar">
<ItemTemplate>
<asp:Literal ID="LblLimitar" Text='<%# If(Eval("LimitarCantidad").ToString = "True", "Si", "No")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkLimitarCantidad" runat="server" Checked='<%# Eval("LimitarCantidad").ToString%>'></asp:CheckBox>
</EditItemTemplate>
<ItemStyle Width="75px" HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Clave Int. Cliente">
<ItemTemplate>
<asp:Literal ID="LblNoIdentificacion" Text='<%# Eval("NoIdentificacion")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtNoIdentificacion" MaxLength="15" runat="server" Text='<%# Eval("NoIdentificacion") %>' Width="70px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle Width="75px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Producto/Servicio" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LtPS" Text='<%# Eval("CodigoPS")%>' runat="server"></asp:Literal>
</ItemTemplate>
<ItemStyle Width="400px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="U.M.">
<ItemTemplate>
<asp:Literal ID="LtUM" Text='<%# Eval("UM")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DdlUMEdit" runat="server" AutoPostBack="true" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="table-group-action-input form-control input-inline input-small input-sm" Style="width: 75px !important;"></asp:DropDownList>
</EditItemTemplate>
<ItemStyle Width="100px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Observacion" Visible="false">
<ItemTemplate>
<asp:Literal ID="LblObservacion" Text='<%# Eval("Observacion")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtObservacion" runat="server" Text='<%# Eval("Observacion") %>' Width="70px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle Width="75px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Observacion" Visible="false">
<ItemTemplate>
<asp:Literal ID="LblObservacion" Text='<%# Eval("Observacion")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtObservacion" runat="server" Text='<%# Eval("Observacion") %>' Width="70px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle Width="75px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Precio Unitario">
<ItemTemplate>
<asp:Literal ID="LtPU" Text='<%# Eval("PU", "{0:###,###,##0.00##}")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtPU" runat="server" Text='<%# Eval("PU", "{0:###,###,##0.00##}")%>' Width="90px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtenderPU" runat="server" TargetControlID="TxtPU" FilterType="Custom, Numbers" ValidChars=".," />
</EditItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="LtTotal" CssClass="ltltotalgvx" data-value='<%# Eval("Total")%>' Text='<%# Eval("Total", "{0:###,###,##0.00##}")%>' runat="server"></asp:Label>
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Avance" Visible="false">
<ItemTemplate>
<asp:CheckBox ID="CHKPAvance" Enabled="false" AutoPostBack="true" OnCheckedChanged="AvaClick" runat="server" />
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<%-- <asp:TemplateField HeaderText="Estimacion">
<ItemTemplate>
<asp:CheckBox ID="CHKPEstimacion" Enabled="false" AutoPostBack="true" OnCheckedChanged="EstClick" runat="server" />
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>--%>
<asp:TemplateField HeaderText="Editar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<div style="width: 65px;">
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update"
CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpGV" /><asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel"
CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</div>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CommandName="Edit"
CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Eliminar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red"
Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Esta seguro de eliminar el concepto?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:TemplateField HeaderText="Precio Unitario">
<ItemTemplate>
<asp:Literal ID="LtPU" Text='<%# Eval("PU", "{0:###,###,##0.00##}")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtPU" runat="server" Text='<%# Eval("PU", "{0:###,###,##0.00##}")%>' Width="90px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtenderPU" runat="server" TargetControlID="TxtPU" FilterType="Custom, Numbers" ValidChars=".," />
</EditItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="LtTotal" CssClass="ltltotalgvx" data-value='<%# Eval("Total")%>' Text='<%# Eval("Total", "{0:###,###,##0.00##}")%>' runat="server"></asp:Label>
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Avance" Visible="false">
<ItemTemplate>
<asp:CheckBox ID="CHKPAvance" Enabled="false" AutoPostBack="true" OnCheckedChanged="AvaClick" runat="server" />
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Editar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="LnkEditarPresupuestoVentaDetalle" OnClick="LnkEditarPresupuestoVentaDetalle_Click" runat="server" AlternateText="Editar" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField HeaderText="Editar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<div style="width: 65px;">
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update"
CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpGV" /><asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel"
CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</div>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CommandName="Edit"
CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>--%>
<asp:TemplateField HeaderText="Eliminar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red"
Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Esta seguro de eliminar el concepto?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<table class="table Widthall">
@@ -1117,10 +1090,10 @@
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabPVInsumos" runat="server" HeaderText="Suministros">
<ajax:TabPanel ID="TabPVInsumos" runat="server" HeaderText="Control">
<ContentTemplate>
<asp:UpdatePanel ID="UpTitulosInsumos" runat="server" UpdateMode="Conditional">
<%-- <asp:UpdatePanel ID="UpTitulosInsumos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="PanelContratosInsumos" runat="server">
@@ -1140,7 +1113,7 @@
<td style="width: 150px">Precio Unitario</td>
<td style="width: 150px">Total</td>
<td style="width: 150px" id="THAvanceInsumos" runat="server" visible="false">Permite Avance</td>
<%-- <td style="width: 150px" id="tdCol7" runat="server">Permite Estimación </td>--%>
<td style="width: 100px">Comandos</td>
</tr>
<tr class="Titulos">
@@ -1180,109 +1153,126 @@
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</asp:UpdatePanel>--%>
<div class="row col-md-12" align="right">
<input type="text" id="TxtBusqueda3" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda3','{0}');sumagvx();", GvInsumos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda3','{0}');sumagvx();", GvInsumos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpGVInsumos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvInsumos" ClientIDMode="Static" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron Conceptos" DataKeyNames="CveContratoDetalle,CveUM, CvePS, Cantidad, PU,CveTipoPresupuesto,CveClasificacion" ShowHeader="true" SelectedRowStyle-BackColor="#66CCFF" CssClass="table table-striped table-hover Widthall mysmallbtn" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:Literal ID="LtCantidad" Text='<%# Eval("CantidadContratada")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtCantidad" runat="server" Text='<%# Eval("CantidadContratada") %>' Width="90px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtenderCantidad" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
</EditItemTemplate>
<ItemStyle Width="150px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Limitar">
<ItemTemplate>
<asp:Literal ID="LblLimitar" Text='<%# If(Eval("LimitarCantidad").ToString = "True", "Si", "No")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkLimitarCantidad" runat="server" Checked='<%# Eval("LimitarCantidad").ToString%>'></asp:CheckBox>
</EditItemTemplate>
<ItemStyle Width="75px" HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Clave <br/> Interna">
<ItemTemplate>
<asp:Literal ID="LblNoIdentificacion" Text='<%# Eval("NoIdentificacion")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtNoIdentificacion" MaxLength="15" runat="server" Text='<%# Eval("NoIdentificacion") %>' Width="70px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle Width="75px" />
</asp:TemplateField>
<div class="row">
<div class="col-md-12">
<asp:TemplateField HeaderText="Producto/Servicio" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LtPS" Text='<%# Eval("CodigoPS")%>' runat="server"></asp:Literal>
</ItemTemplate>
<ItemStyle Width="400px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="U.M.">
<ItemTemplate>
<asp:Literal ID="LtUM" Text='<%# Eval("UM")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DdlUMEdit" runat="server" AutoPostBack="true" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="table-group-action-input form-control input-inline input-small input-sm" Style="width: 75px !important;"></asp:DropDownList>
</EditItemTemplate>
<ItemStyle Width="100px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Precio Unitario">
<ItemTemplate>
<asp:Literal ID="LtPU" Text='<%# Eval("PU", "{0:###,###,##0.00##}")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtPU" runat="server" Text='<%# Eval("PU", "{0:###,###,##0.00##}")%>' Width="90px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtenderPU" runat="server" TargetControlID="TxtPU" FilterType="Custom, Numbers" ValidChars="." />
</EditItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:GridView ID="GvInsumos" ClientIDMode="Static" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron Conceptos"
DataKeyNames="CveContratoDetalle,CveUM, CvePS, Cantidad, PU,CveTipoPresupuesto,CveClasificacion,CodigoPS,LimitarCantidad,PS,NoIdentificacion" ShowHeader="true" SelectedRowStyle-BackColor="#66CCFF"
CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None">
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="LtTotal" CssClass="ltltotalgvx2" data-value='<%# Eval("Total")%>' Text='<%# Eval("Total", "{0:###,###,##0.00##}")%>' runat="server"></asp:Label>
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<Columns>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:Literal ID="LtCantidad" Text='<%# Eval("CantidadContratada")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtCantidad" runat="server" Text='<%# Eval("CantidadContratada") %>' Width="90px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtenderCantidad" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
</EditItemTemplate>
<ItemStyle Width="150px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Limitar">
<ItemTemplate>
<asp:Literal ID="LblLimitar" Text='<%# If(Eval("LimitarCantidad").ToString = "True", "Si", "No")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkLimitarCantidad" runat="server" Checked='<%# Eval("LimitarCantidad").ToString%>'></asp:CheckBox>
</EditItemTemplate>
<ItemStyle Width="75px" HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Clave <br/> Interna">
<ItemTemplate>
<asp:Literal ID="LblNoIdentificacion" Text='<%# Eval("NoIdentificacion")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtNoIdentificacion" MaxLength="15" runat="server" Text='<%# Eval("NoIdentificacion") %>' Width="70px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle Width="75px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Producto/Servicio" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LtPS" Text='<%# Eval("CodigoPS")%>' runat="server"></asp:Literal>
</ItemTemplate>
<ItemStyle Width="400px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="U.M.">
<ItemTemplate>
<asp:Literal ID="LtUM" Text='<%# Eval("UM")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DdlUMEdit" runat="server" AutoPostBack="true" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="table-group-action-input form-control input-inline input-small input-sm" Style="width: 75px !important;"></asp:DropDownList>
</EditItemTemplate>
<ItemStyle Width="100px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Precio Unitario">
<ItemTemplate>
<asp:Literal ID="LtPU" Text='<%# Eval("PU", "{0:###,###,##0.00##}")%>' runat="server"></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtPU" runat="server" Text='<%# Eval("PU", "{0:###,###,##0.00##}")%>' Width="90px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtenderPU" runat="server" TargetControlID="TxtPU" FilterType="Custom, Numbers" ValidChars="." />
</EditItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Avance" Visible="false">
<ItemTemplate>
<asp:CheckBox ID="CHKPAvance" Enabled="false" AutoPostBack="true" OnCheckedChanged="AvaClick" runat="server" />
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<%-- <asp:TemplateField HeaderText="Estimacion">
<ItemTemplate>
<asp:CheckBox ID="CHKPEstimacion" Enabled="false" AutoPostBack="true" OnCheckedChanged="EstClick" runat="server" />
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>--%>
<asp:TemplateField HeaderText="Editar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<div style="width: 65px;">
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update"
CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpGV" /><asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel"
CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</div>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CommandName="Edit"
CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Eliminar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red"
Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Esta seguro de eliminar el concepto?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="LtTotal" CssClass="ltltotalgvx2" data-value='<%# Eval("Total")%>' Text='<%# Eval("Total", "{0:###,###,##0.00##}")%>' runat="server"></asp:Label>
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Avance" Visible="false">
<ItemTemplate>
<asp:CheckBox ID="CHKPAvance" Enabled="false" AutoPostBack="true" OnCheckedChanged="AvaClick" runat="server" />
</ItemTemplate>
<ItemStyle Width="150px" HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Editar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="LnkEditarPresupuestoControlDetalle" OnClick="LnkEditarPresupuestoControlDetalle_Click" runat="server" AlternateText="Editar" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField HeaderText="Editar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<div style="width: 65px;">
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update"
CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpGV" /><asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel"
CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</div>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CommandName="Edit"
CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>--%>
<asp:TemplateField HeaderText="Eliminar" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red"
Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Esta seguro de eliminar el concepto?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<table class="table Widthall">
<tr class="Titulos">
@@ -2233,6 +2223,7 @@
<%--MODAL UPLOAD--%>
<div id="ModalUpload" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
@@ -2449,13 +2440,6 @@
<div class="form-group form-md-line-input input-iconright date date-picker date date-picker" style="position: relative;">
<div class="row ">
<div class="col-md-5" style="position: relative; margin-left: 10px!important">
<asp:TextBox ID="txtFechaI4" Style="margin-top: 10px!important" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
@@ -2519,6 +2503,222 @@
</div>
<%-- Modal Ventas presupuestos Agregar--%>
<div id="ModalVentasAddPS" class="modal ADS fade" role="dialog">
<div class="modal-dialog" style="width: 450px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModalVentasAddPS" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal ID="LtlModalVentasPSTitulo" runat="server"></asp:Literal></h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtOCInterna" CssClass="form-control" runat="server" MaxLength="100" CausesValidation="true"></asp:TextBox>
<label for="<%= TxtOCInterna.ClientID.ToString()%>">OC:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCantidad" runat="server" CssClass="form-control" ></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="TxtCantidad" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddPSVentas"> </asp:RequiredFieldValidator>
<label for="<%= TxtCantidad.ClientID.ToString()%>">Cantidad:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:CheckBox ID="ChkLimitarVenta" runat="server" CssClass="form-control" />
<label for="<%= ChkLimitarVenta.ClientID.ToString()%>">Limitar:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtNoIdentificacionv" runat="server" MaxLength="15" CssClass="form-control" ></asp:TextBox>
<label for="<%= TxtNoIdentificacionv.ClientID.ToString()%>">Clave Interna Cliente:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlClasificacionAdd" runat="server" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" CssClass="table-group-action-input form-control input-inline input-sm select2me" Style="width: 100%;"></asp:DropDownList>
<label for="<%= DdlClasificacionAdd.ClientID.ToString()%>">Clasificación:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<ADS:Dropdownlost runat="server" ID="DdlProductows" CssStyle="width: 100%;" CssClassDdl="form-control select2me" DataTextField="PSCodigo" DataValueField="CvePS" />
<label for="<%= DdlProductows.ClientID.ToString()%>">Producto:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlUM" runat="server" AutoPostBack="true" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="form-control select2me" ></asp:DropDownList>
<label for="<%= DdlUM.ClientID.ToString()%>">U. M.:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtPU" runat="server" Width="70px" CssClass="form-control"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender2" runat="server" TargetControlID="TxtPU" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVPU" runat="server" ControlToValidate="TxtPU" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''P.U.''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddPSVentas"></asp:RequiredFieldValidator>
<label for="<%= TxtPU.ClientID.ToString()%>">P.U.:</label>
</div>
<div class="form-group form-md-line-input input-iconright" style="text-align:right!important">
<asp:CheckBox ID="ChkContinualAgregandoVentas" runat="server" TextAlign="Left" Text="Continuar agregando" CssClass="form-control" Checked="true" />
</div>
<br />
<td id="TDAvance" runat="server" visible="false"></td>
</div>
<div class="modal-footer">
<asp:Button Text="Guardar" runat="server" ID="BtnAgregarDetalle" Width="100px" OnClick="BtnAgregarDetalle_Click" ValidationGroup="GrpAddPSVentas" class="btn btn-success" /></td>
<button id="Button5" runat="server" type="button" class="btn default" data-dismiss="modal">Cancelar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<%--MODAL CONTROL PRESUPUESTOS AGREGAR--%>
<div id="ModalControlAddPS" class="modal ADS fade" role="dialog">
<div class="modal-dialog" style="width: 450px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModalControlAddPS" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal ID="LtlModalControlPSTitulo" runat="server"></asp:Literal></h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCantidadInsumos" runat="server" CssClass="form-control" ></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FETxtCantidadInsumos" runat="server" TargetControlID="TxtCantidadInsumos" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVTxtCantidadInsumos" runat="server" ControlToValidate="TxtCantidadInsumos" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddPSControl"> </asp:RequiredFieldValidator>
<label for="<%= TxtCantidadInsumos.ClientID.ToString()%>">Cantidad:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:CheckBox ID="ChkLimitarInsumos" runat="server" CssClass="form-control" />
<label for="<%= ChkLimitarInsumos.ClientID.ToString()%>">Limitar:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtNoIdentificacionvInsumos" runat="server" MaxLength="15" CssClass="form-control" ></asp:TextBox>
<label for="<%= TxtNoIdentificacionvInsumos.ClientID.ToString()%>">Clave Interna:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlClasificacionAddInsumos" runat="server" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" CssClass="table-group-action-input form-control input-inline input-sm select2me" Style="width: 100%;"></asp:DropDownList>
<label for="<%= DdlClasificacionAddInsumos.ClientID.ToString()%>">Clasificación:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<label for="<%= DdlProductowsInsumos.ClientID.ToString()%>">Producto:</label>
<ADS:Dropdownlost runat="server" ID="DdlProductowsInsumos" CssStyle="width: 100%;" CssClassDdl="form-control select2me" DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlUMInsumos" runat="server" AutoPostBack="true" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="form-control select2me" ></asp:DropDownList>
<label for="<%= DdlUMInsumos.ClientID.ToString()%>">U. M.:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtPUInsumos" runat="server" Width="70px" CssClass="form-control"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FETxtPUInsumos" runat="server" TargetControlID="TxtPUInsumos" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVTxtPUInsumos" runat="server" ControlToValidate="TxtPUInsumos" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''P.U.''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddPSControl"></asp:RequiredFieldValidator>
<label for="<%= TxtPUInsumos.ClientID.ToString()%>">P.U.:</label>
</div>
<div class="form-group form-md-line-input input-iconright" style="text-align:right!important">
<asp:CheckBox ID="ChkContinualAgregandoControl" runat="server" TextAlign="Left" Text="Continuar agregando" CssClass="form-control" Checked="true" />
</div>
<br />
<td id="TD1" runat="server" visible="false"></td>
</div>
<div class="modal-footer">
<asp:Button Text="Guardar" runat="server" ID="BtnAgregarDetalleInsumos" Width="100px" OnClick="BtnAgregarDetalleInsumos_Click" ValidationGroup="GrpAddPSControl" class="btn btn-success" />
<button id="Button4" runat="server" type="button" class="btn default" data-dismiss="modal">Cancelar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<%--Modal Carga Presupuesto--%>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="UpModalCargaPresupuesto">
<ContentTemplate>
<div id="ModalUploadPresupuesto" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title"><asp:Label runat="server" ID="LnlModalcargaPresupuestoTitulo"></asp:Label></h4>
</div>
<div class="modal-body">
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-12">
<asp:TextBox ID="TxtModalCargaPresupuesto" CssClass="ADSdropzone hidden" data-maxFile="1" Text="" runat="server"></asp:TextBox>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnCargaPresupuesto" runat="server" ClientIDMode="Static" Text="Guardar" CssClass="btn btn-primary" OnClick="BtnCargaPresupuesto_Click" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<iframe id="my_iframe" style="display: none;"></iframe>
</asp:Content>

View File

@@ -394,7 +394,17 @@ Partial Class Contratos_ContratoObra
'Configuración de Modalidad Update
BtnGuardar.Text = "Guardar Cambios"
If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then TAB.ActiveTabIndex = Request("Opt").ToEntero
If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then Tab.ActiveTabIndex = Request("Opt").ToEntero
If CveContrato > 0 Then
LnkModalAddPSVentas.Visible = True
LnkModalAddPSControl.Visible = True
LnkModalAddPresupuestoVentas.Visible = True
LnkModalAddPresupuestoControl.Visible = True
End If
Else
'Configuración de Modalidad Insert
LblFechaCaptura.Text = Now.ToShortDateString()
@@ -1001,30 +1011,30 @@ Partial Class Contratos_ContratoObra
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")
'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")
'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
'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)
@@ -1768,6 +1778,9 @@ Partial Class Contratos_ContratoObra
DdlProductows.SelectedText = "Seleccione"
DdlProductows.SelectedValue = "-1"
End If
UpModalVentasAddPS.Update()
End Sub
Private Sub CargaPSInsumos()
@@ -1852,53 +1865,123 @@ Partial Class Contratos_ContratoObra
End Sub
Protected Sub BtnAgregarDetalle_Click(sender As Object, e As EventArgs)
Dim Row As DataRow = TmpDT.NewRow()
Row("Cantidad") = TxtCantidad.Text.ToDouble.FormatoNumero
Row("CantidadContratada") = TxtCantidad.Text.ToDouble.FormatoNumero
Row("CveUM") = DdlUM.SelectedValue.ToEntero
Row("UM") = DdlUM.SelectedItem
Row("CveClasificacion") = DdlClasificacionAdd.SelectedValue
Row("Clasificacion") = DdlClasificacionAdd.SelectedItem
Row("CvePS") = DdlProductows.SelectedValue.ToEntero
Row("PS") = DdlProductows.SelectedText
Row("CodigoPS") = DdlProductows.SelectedText
Row("PU") = TxtPU.Text.ToDouble.FormatoNumero
Row("Total") = (TxtCantidad.Text.ToDouble * TxtPU.Text.ToDouble).FormatoNumero
Row("CveTipoPresupuesto") = 2
Row("NoIdentificacion") = TxtNoIdentificacionv.Text.Trim
Row("OCInterna") = TxtOCInterna.Text.Trim
Row("LimitarCantidad") = If(ChkLimitarVenta.Checked, 1, 0)
Row("Observacion") = TxtObservacionesDetalles.Text
Dim ObjContratos As New ClsContratos
If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), Row("OCInterna").ToString, Observacion:=Row("Observacion").ToString) Then
If Autorizado Then
Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"))
guardarBitacora(msj)
End If
Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
TmpDT.Rows.Add(Row)
TmpDT.AcceptChanges()
Dim TotalRow = Row("Total").ToString.ToDouble
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
UpGV.Update()
TxtCantidad.Text = ""
TxtOCInterna.Text = ""
TxtNoIdentificacionv.Text = ""
TxtObservacionesDetalles.Text = ""
TxtPU.Text = ""
DdlClasificacionAdd.SelectedValue = "-1"
LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero
LblImporte.Text = LbTotalGeneral.Text
TxtCantidad.Focus()
UpGral.Update()
Else
Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
If CveContratoDetalleEditar = -1 Then
Dim Row As DataRow = TmpDT.NewRow()
Row("Cantidad") = TxtCantidad.Text.ToDouble.FormatoNumero
Row("CantidadContratada") = TxtCantidad.Text.ToDouble.FormatoNumero
Row("CveUM") = DdlUM.SelectedValue.ToEntero
Row("UM") = DdlUM.SelectedItem
Row("CveClasificacion") = DdlClasificacionAdd.SelectedValue
Row("Clasificacion") = DdlClasificacionAdd.SelectedItem
Row("CvePS") = DdlProductows.SelectedValue.ToEntero
Row("PS") = DdlProductows.SelectedText
Row("CodigoPS") = DdlProductows.SelectedText
Row("PU") = TxtPU.Text.ToDouble.FormatoNumero
Row("Total") = (TxtCantidad.Text.ToDouble * TxtPU.Text.ToDouble).FormatoNumero
Row("CveTipoPresupuesto") = 2
Row("NoIdentificacion") = TxtNoIdentificacionv.Text.Trim
Row("OCInterna") = TxtOCInterna.Text.Trim
Row("LimitarCantidad") = If(ChkLimitarVenta.Checked, 1, 0)
Row("Observacion") = "" 'TxtObservacionesDetalles.Text
Dim ObjContratos As New ClsContratos
If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), Row("OCInterna").ToString, Observacion:=Row("Observacion").ToString) Then
If Autorizado Then
Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"))
guardarBitacora(msj)
End If
Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
TmpDT.Rows.Add(Row)
TmpDT.AcceptChanges()
Dim TotalRow = Row("Total").ToString.ToDouble
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
UpGV.Update()
LimpiarModalVentas()
LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero
LblImporte.Text = LbTotalGeneral.Text
TxtCantidad.Focus()
UpGral.Update()
If Not ChkContinualAgregandoVentas.Checked Then
RegistraScript("$('#ModalVentasAddPS').modal('hide')")
End If
Else
Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
Else
Dim Cantidad, PU As Double : Dim CvePS, CveUM As Integer
Dim NoIdentificacion As String = ""
Dim OCInterna As String = ""
Dim LimitarCantidad As Boolean
Dim Observaciones As String = ""
Cantidad = TxtCantidad.Text.ToDouble
PU = TxtPU.Text.ToDouble
CvePS = DdlProductows.SelectedValue.ToEntero
CveUM = DdlUM.SelectedValue.ToEntero
NoIdentificacion = TxtNoIdentificacionv.Text.Trim
OCInterna = TxtOCInterna.Text.Trim
LimitarCantidad = If(ChkLimitarVenta.Checked, True, False)
Observaciones = ""
Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalleEditar))(0)
Dim LimitarCantidadValidator As Boolean = row("LimitarCantidad").ToString = "True"
Dim ObjContratos As New ClsContratos
If ObjContratos.UpdateContratosDetalle(CveContratoDetalleEditar, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, NoIdentificacion, LimitarCantidad, OCInterna, Observaciones) Then
If Autorizado Then
Dim msj As String = String.Format("Se realizaron los siguientes cambios, el Presupuesto Interno se modificó: {1} {0} {2:C2} a {3} {0} {4:C2}",
row("PS").ToString, row("Cantidad").ToString, row("PU").ToString, Cantidad, PU)
guardarBitacora(msj)
End If
row("Cantidad") = Cantidad
row("CantidadContratada") = Cantidad
row("PU") = PU
row("Total") = Cantidad * PU
row("CveUM") = CveUM
row("UM") = DdlUM.SelectedItem.Text
row("NoIdentificacion") = NoIdentificacion
row("OCInterna") = OCInterna
row("LimitarCantidad") = LimitarCantidad
row("Observacion") = Observaciones
TmpDT.AcceptChanges()
Alert("Cambios realizados correctamente.", TipoMensaje.MsgInformacion)
RegistraScript("$('#ModalVentasAddPS').modal('hide')")
Else
Alert("Error al Actualizar Detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
Gv.EditIndex = -1
LbTotalGeneral.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero
LblImporte.Text = LbTotalGeneral.Text
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
End If
End Sub
Private Sub CargaDatosPresup()
@@ -2069,7 +2152,8 @@ Partial Class Contratos_ContratoObra
If ObjContratos.RemoveContratosDetalle(CveContratoDetalle, CveContrato) Then
TmpDT.Rows.Remove(DbRow)
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
LbTotalGeneral.Text = Gv.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLabel("LtTotal").Text.ToDouble).ToString.FormatoNumero
LbTotalGeneral.Text = Gv.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLabel("LtTotal").Text.ToDouble).ToString.FormatoNumero
Alert("Detalle eliminado eliminado correctamente.")
Else
Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgError)
End If
@@ -2100,48 +2184,112 @@ Partial Class Contratos_ContratoObra
UpGVInsumos.Update()
End Sub
Protected Sub BtnAgregarDetalleInsumos_Click(sender As Object, e As EventArgs)
Dim Row As DataRow = TmpDT.NewRow()
Row("Cantidad") = TxtCantidadInsumos.Text.ToDouble.FormatoNumero
Row("CantidadContratada") = TxtCantidadInsumos.Text.ToDouble.FormatoNumero
Row("CveUM") = DdlUMInsumos.SelectedValue.ToEntero
Row("UM") = DdlUMInsumos.SelectedItem
Row("CveClasificacion") = DdlClasificacionAddInsumos.SelectedValue
Row("Clasificacion") = DdlClasificacionAddInsumos.SelectedItem
Row("CvePS") = DdlProductowsInsumos.SelectedValue.ToEntero
Row("PS") = DdlProductowsInsumos.SelectedText
Row("CodigoPS") = DdlProductowsInsumos.SelectedText
Row("PU") = TxtPUInsumos.Text.ToDouble.FormatoNumero
Row("Total") = (TxtCantidadInsumos.Text.ToDouble * TxtPUInsumos.Text.ToDouble).FormatoNumero
Row("CveTipoPresupuesto") = 1
Row("NoIdentificacion") = TxtNoIdentificacionvInsumos.Text.Trim
Row("LimitarCantidad") = If(ChkLimitar.Checked, 1, 0)
Protected Sub BtnAgregarDetalleInsumos_Click(sender As Object, e As EventArgs)
If CveContratoDetalleEditar = -1 Then
Dim Row As DataRow = TmpDT.NewRow()
Row("Cantidad") = TxtCantidadInsumos.Text.ToDouble.FormatoNumero
Row("CantidadContratada") = TxtCantidadInsumos.Text.ToDouble.FormatoNumero
Row("CveUM") = DdlUMInsumos.SelectedValue.ToEntero
Row("UM") = DdlUMInsumos.SelectedItem
Row("CveClasificacion") = DdlClasificacionAddInsumos.SelectedValue
Row("Clasificacion") = DdlClasificacionAddInsumos.SelectedItem
Row("CvePS") = DdlProductowsInsumos.SelectedValue.ToEntero
Row("PS") = DdlProductowsInsumos.SelectedText
Row("CodigoPS") = DdlProductowsInsumos.SelectedText
Row("PU") = TxtPUInsumos.Text.ToDouble.FormatoNumero
Row("Total") = (TxtCantidadInsumos.Text.ToDouble * TxtPUInsumos.Text.ToDouble).FormatoNumero
Row("CveTipoPresupuesto") = 1
Row("NoIdentificacion") = TxtNoIdentificacionvInsumos.Text.Trim
Row("LimitarCantidad") = If(ChkLimitarInsumos.Checked, 1, 0)
Dim ObjContratos As New ClsContratos
If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), "") Then
If Autorizado Then
Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"))
guardarBitacora(msj)
End If
Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
TmpDT.Rows.Add(Row)
Dim TotalRow = Row("Total").ToString.ToDouble
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
UpGVInsumos.Update()
LimpiarModalControl()
LbTotalGeneralInsumos.Text = (LbTotalGeneralInsumos.Text.ToDouble + TotalRow).ToString.FormatoNumero
'LblImporte.Text = LbTotalGeneral.Text
TxtCantidadInsumos.Focus()
UpGral.Update()
If Not ChkContinualAgregandoControl.Checked Then
RegistraScript("$('#ModalControlAddPS').modal('hide')")
End If
Else
Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
Else
Dim Cantidad, PU As Double
Dim CvePS, CveUM As Integer
Dim NoIdentificacion As String = ""
Dim LimitarCantidad As Boolean
Cantidad = TxtCantidadInsumos.Text.ToDouble
PU = TxtPUInsumos.Text.ToDouble
CvePS = DdlProductowsInsumos.SelectedValue.ToEntero
CveUM = DdlUMInsumos.SelectedValue.ToEntero
NoIdentificacion = TxtNoIdentificacionvInsumos.Text.Trim
LimitarCantidad = If(ChkLimitarInsumos.Checked, True, False)
Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalleEditar))(0)
Dim ObjContratos As New ClsContratos
If ObjContratos.UpdateContratosDetalle(CveContratoDetalleEditar, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, NoIdentificacion, LimitarCantidad, "") Then
If Autorizado Then
Dim msj As String = String.Format("Se realizaron los siguientes cambios, el Presupuesto Interno se modificó: {1} {0} {2:C2} a {3} {0} {4:C2}",
row("PS").ToString, row("Cantidad").ToString, row("PU").ToString, Cantidad, PU)
guardarBitacora(msj)
End If
row("Cantidad") = Cantidad
row("CantidadContratada") = Cantidad
row("PU") = PU
row("Total") = Cantidad * PU
row("CveUM") = CveUM
row("UM") = DdlUMInsumos.SelectedItem.Text
row("NoIdentificacion") = NoIdentificacion
row("LimitarCantidad") = LimitarCantidad
TmpDT.AcceptChanges()
Alert("Cambios realizados correctamente.", TipoMensaje.MsgInformacion)
RegistraScript("$('#ModalControlAddPS').modal('hide')")
Else
Alert("Error al Actualizar Detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
GvInsumos.EditIndex = -1
LbTotalGeneralInsumos.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
End If
Dim ObjContratos As New ClsContratos
If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), "") Then
If Autorizado Then
Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"))
guardarBitacora(msj)
End If
Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
TmpDT.Rows.Add(Row)
Dim TotalRow = Row("Total").ToString.ToDouble
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
UpGVInsumos.Update()
TxtCantidadInsumos.Text = ""
TxtPUInsumos.Text = ""
DdlClasificacionAddInsumos.SelectedValue = "-1"
LbTotalGeneralInsumos.Text = (LbTotalGeneralInsumos.Text.ToDouble + TotalRow).ToString.FormatoNumero
'LblImporte.Text = LbTotalGeneral.Text
TxtCantidadInsumos.Focus()
UpGral.Update()
Else
Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
End Sub
#Region "GV PRESUPUESTOS"
@@ -2251,7 +2399,8 @@ Partial Class Contratos_ContratoObra
If ObjContratos.RemoveContratosDetalle(CveContratoDetalle, CveContrato) Then
TmpDT.Rows.Remove(DbRow)
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
LbTotalGeneralInsumos.Text = GvInsumos.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLiteral("LtTotal").Text.ToDouble).ToString.FormatoNumero
LbTotalGeneralInsumos.Text = GvInsumos.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLabel("LtTotal").Text.ToDouble).ToString.FormatoNumero
Alert("Detalle eliminado eliminado correctamente.")
Else
Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgError)
End If
@@ -2284,7 +2433,7 @@ Partial Class Contratos_ContratoObra
Row("Total") = (TxtCantidadInt.Text.ToDouble * TxtPUInt.Text.ToDouble).FormatoNumero
Row("CveTipoPresupuesto") = 1
Row("NoIdentificacion") = TxtNoIdentificacionv.Text.Trim
Row("LimitarCantidad") = ChkLimitar.Checked
Row("LimitarCantidad") = False 'ChkLimitar.Checked <-- Estaba usando un checkbox de un logar muy diferente a donde esta ese formilario, posiblemente se copio codigo y se fue por equivocacion
Dim ObjContratos As New ClsContratos
If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Row("LimitarCantidad").ToString.ToEntero = 1, "") Then
@@ -4408,6 +4557,473 @@ Partial Class Contratos_ContratoObra
Property ModalVentasPSAdd As Boolean
Get
If ViewState("ModalVentasAdd") Is Nothing Then
Return False
Else
Return Boolean.Parse(ViewState("ModalVentasAdd").ToString)
End If
End Get
Set(value As Boolean)
ViewState("ModalVentasAdd") = value
End Set
End Property
Property ModalControlPSAdd As Boolean
Get
If ViewState("ModalControlPSAdd") Is Nothing Then
Return False
Else
Return Boolean.Parse(ViewState("ModalControlPSAdd").ToString)
End If
End Get
Set(value As Boolean)
ViewState("ModalControlPSAdd") = value
End Set
End Property
Property Carga As Boolean
Get
If ViewState("ModalControlPSAdd") Is Nothing Then
Return False
Else
Return Boolean.Parse(ViewState("ModalControlPSAdd").ToString)
End If
End Get
Set(value As Boolean)
ViewState("ModalControlPSAdd") = value
End Set
End Property
Enum EnumTipoCargaPresupuesto
Ventas
Control
End Enum
Property TipoCargaPresupuesto As EnumTipoCargaPresupuesto
Get
If ViewState("TipoCargaPresupuesto") Is Nothing Then
Return EnumTipoCargaPresupuesto.Ventas
Else
Return DirectCast(ViewState("TipoCargaPresupuesto"), EnumTipoCargaPresupuesto)
End If
End Get
Set(value As EnumTipoCargaPresupuesto)
ViewState("TipoCargaPresupuesto") = value
End Set
End Property
Property CveContratoDetalleEditar As Integer
Get
If ViewState("CveContratoDetalleEditar") Is Nothing Then
Return -1
Else
Return ViewState("CveContratoDetalleEditar").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("CveContratoDetalleEditar") = value
End Set
End Property
Protected Sub LnkModalAddPresupuestoVentas_Click(sender As Object, e As EventArgs)
LnlModalcargaPresupuestoTitulo.Text = "Carga Presupuesto Ventas"
UpModalCargaPresupuesto.Update()
RegistraScript("$('#ModalUploadPresupuesto').modal('show')")
TipoCargaPresupuesto = EnumTipoCargaPresupuesto.Ventas
End Sub
Protected Sub LnkModalAddPresupuestoControl_Click(sender As Object, e As EventArgs)
LnlModalcargaPresupuestoTitulo.Text = "Carga Presupuesto Control"
UpModalCargaPresupuesto.Update()
RegistraScript("$('#ModalUploadPresupuesto').modal('show')")
TipoCargaPresupuesto = EnumTipoCargaPresupuesto.Control
End Sub
Protected Sub LnkModalAddPSVentas_Click(sender As Object, e As EventArgs)
ModalVentasPSAdd = True
ChkContinualAgregandoVentas.Visible = True
ChkContinualAgregandoVentas.Checked = True
LimpiarModalVentas()
RegistraScript("$('#ModalVentasAddPS').modal('show')")
End Sub
Protected Sub LnkModalAddPSControl_Click(sender As Object, e As EventArgs)
ModalControlPSAdd = True
ChkContinualAgregandoControl.Visible = True
ChkContinualAgregandoControl.Checked = True
LimpiarModalControl()
RegistraScript("$('#ModalControlAddPS').modal('show')")
End Sub
Protected Sub LnkEditarPresupuestoVentaDetalle_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
LimpiarModalVentas()
'CveContratoDetalle,CveUM,CvePS,Cantidad,PU,CveTipoPresupuesto,CveClasificacion,CodigoPS,LimitarCantidad
CveContratoDetalleEditar = GvRow.DataKey("CveContratoDetalle").ToEntero
TxtOCInterna.Text = GvRow.DataKey("OCInterna")
TxtCantidad.Text = GvRow.DataKey("Cantidad").ToDouble.ToString
ChkLimitarVenta.Checked = Boolean.Parse(GvRow.DataKey("LimitarCantidad"))
TxtNoIdentificacionv.Text = GvRow.DataKey("NoIdentificacion").ToDouble.ToString
DdlClasificacionAdd.SelectedValueExist(GvRow.DataKey("CveClasificacion").ToEntero)
DdlProductows.txtText.Value = GvRow.DataKey("PS").ToString
DdlProductows.txtValue.Value = GvRow.DataKey("CvePS").ToString
DdlUM.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductows.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa)
DdlUM.DataBind()
DdlUM.SelectedValueExist(GvRow.DataKey("CveUM").ToDouble.ToString)
TxtPU.Text = GvRow.DataKey("PU").ToDouble.ToString
ModalVentasPSAdd = False
ChkContinualAgregandoVentas.Visible = False
ChkContinualAgregandoVentas.Checked = False
RegistraScript("$('#ModalVentasAddPS').modal('show')")
End Sub
Protected Sub LnkEditarPresupuestoControlDetalle_Click(sender As Object, e As EventArgs)
Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
LimpiarModalControl()
CveContratoDetalleEditar = gvRow.DataKey("CveContratoDetalle").ToEntero
TxtCantidadInsumos.Text = gvRow.DataKey("Cantidad").ToDouble.ToString
ChkLimitarInsumos.Checked = Boolean.Parse(gvRow.DataKey("LimitarCantidad"))
TxtNoIdentificacionvInsumos.Text = gvRow.DataKey("NoIdentificacion")
DdlClasificacionAddInsumos.SelectedValueExist(gvRow.DataKey("CveClasificacion").ToEntero)
DdlProductowsInsumos.txtText.Value = gvRow.DataKey("PS").ToString
DdlProductowsInsumos.txtValue.Value = gvRow.DataKey("CvePS").ToString
DdlUMInsumos.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductowsInsumos.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa)
DdlUMInsumos.DataBind()
DdlUMInsumos.SelectedValueExist(gvRow.DataKey("CveUM").ToDouble.ToString)
TxtPUInsumos.Text = gvRow.DataKey("PU").ToDouble.ToString
ModalControlPSAdd = False
ChkContinualAgregandoControl.Visible = False
ChkContinualAgregandoControl.Checked = False
RegistraScript("$('#ModalControlAddPS').modal('show')")
End Sub
Private Sub LimpiarModalVentas()
TxtOCInterna.Text = ""
TxtCantidad.Text = ""
ChkLimitarVenta.Checked = False
TxtNoIdentificacionv.Text = ""
DdlClasificacionAdd.SelectedValueExist(-1)
DdlProductows.txtText.Value = ""
DdlProductows.txtValue.Value = ""
DdlUM.SelectedValueExist(-1)
TxtPU.Text = ""
If ModalVentasPSAdd = True Then
LtlModalVentasPSTitulo.Text = "Agregar Producto Presupuesto de Ventas"
Else
LtlModalVentasPSTitulo.Text = "Editar Producto Presupuesto de Ventas"
End If
UpModalVentasAddPS.Update()
End Sub
Private Sub LimpiarModalControl()
TxtCantidadInsumos.Text = ""
ChkLimitarInsumos.Checked = False
TxtNoIdentificacionvInsumos.Text = ""
DdlClasificacionAddInsumos.SelectedValueExist(-1)
DdlProductowsInsumos.txtText.Value = ""
DdlProductowsInsumos.txtValue.Value = ""
DdlUMInsumos.SelectedValueExist(-1)
TxtPUInsumos.Text = ""
If ModalControlPSAdd = True Then
LtlModalControlPSTitulo.Text = "Agregar Producto Presupuesto Control"
Else
LtlModalControlPSTitulo.Text = "Editar Producto Presupuesto Control"
End If
UpModalControlAddPS.Update()
End Sub
Protected Sub BtnCargaPresupuesto_Click(sender As Object, e As EventArgs)
Dim DTCargaPresupuesto As New DataTable
DTCargaPresupuesto = CargaPreSupuestoExcel()
If DTCargaPresupuesto.Rows.Count > 0 Then
ProcesaDatosCargaPresupuesto(DTCargaPresupuesto)
Else
Alert("No se encintraron partidas en el documento", TipoMensaje.MsgAdvertencia)
End If
End Sub
Private Function CargaPreSupuestoExcel() As DataTable
Dim FileExtension As String = "-1"
Dim Filesgral As List(Of Archivo) = TxtModalCargaPresupuesto.getfiles().Archivos
Dim Filename As String = ""
Dim DTPS = New DataTable
For Each fileItem As Archivo In Filesgral
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
If Not FileExtension.ToUpper.Contiene("XLSX", "XSL") Then
Alert("El archivo no es una archivo de Excel", TipoMensaje.MsgAdvertencia)
Exit For
End If
Dim tempArray() As String
tempArray = fileItem.filename.ToString().Split("-".ToCharArray())
SpreadsheetInfo.SetLicense(Extensiones.SerialGemBoxSpreadsheet)
Dim workbook = ExcelFile.Load(fileItem.FileUrl)
Dim worksheet = workbook.Worksheets(0)
DTPS = worksheet.CreateDataTable(New CreateDataTableOptions() With
{
.ColumnHeaders = True,
.StartRow = 0,
.NumberOfColumns = 4,
.NumberOfRows = worksheet.Rows.Count,
.Resolution = ColumnTypeResolution.AutoPreferStringCurrentCulture
})
Next
TxtModalCargaPresupuesto.Text = ""
RegistraScript("$('#ModalUploadPresupuesto').modal('hide')")
UpModalCargaPresupuesto.Update()
Return DTPS
End Function
Private Sub ProcesaDatosCargaPresupuesto(DTPresupuesto As DataTable)
Dim DTPS = New DataTable
DTPS.Columns.Add("CveContratoDetalle", GetType(Integer))
DTPS.Columns.Add("Cantidad", GetType(Double))
DTPS.Columns.Add("CantidadContratada", GetType(Double))
DTPS.Columns.Add("CveUM", GetType(Integer))
DTPS.Columns.Add("UM", GetType(String))
DTPS.Columns.Add("CveClasificacion", GetType(Integer))
DTPS.Columns.Add("Clasificacion", GetType(String))
DTPS.Columns.Add("CvePS", GetType(Integer))
DTPS.Columns.Add("PS", GetType(String))
DTPS.Columns.Add("CodigoPS", GetType(String))
DTPS.Columns.Add("PU", GetType(Double))
DTPS.Columns.Add("Total", GetType(Double))
DTPS.Columns.Add("CveTipoPresupuesto", GetType(Integer))
DTPS.Columns.Add("PermitirAvance", GetType(Integer))
DTPS.Columns.Add("PermitirEstimacion", GetType(Integer))
DTPS.Columns.Add("UsuarioAvance", GetType(Integer))
DTPS.Columns.Add("Cantidad_Original", GetType(Double))
DTPS.Columns.Add("PU_Original", GetType(Double))
DTPS.Columns.Add("Total_Original", GetType(Double))
DTPS.Columns.Add("NoIdentificacion", GetType(String))
DTPS.Columns.Add("LimitarCantidad", GetType(Integer))
DTPS.Columns.Add("OCInterna", GetType(String))
DTPS.Columns.Add("Observacion", GetType(String))
Dim RowNoEncontrados As String = ""
For Each DrowPS As DataRow In DTPresupuesto.Rows
Dim StrArray() As String = GetPS("PS", DrowPS("PS").ToString).Split("|"c)
Dim CvePS As Integer
Dim CveUM As Integer
If StrArray.Length > 0 Then
If CBool(StrArray(0)) = True Then
CvePS = StrArray(1).ToEntero
Else
RowNoEncontrados &= StrArray(1) & "<\BR>"
End If
End If
If CvePS > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 Then
CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero
Dim Row As DataRow = DTPS.NewRow()
Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble
Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble
Row("CveUM") = CveUM
Row("UM") = ""
Row("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero
Row("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{ Row("CveClasificacion").ToString }'").ToString
Row("CvePS") = CvePS
Row("PS") = DrowPS("PS").ToString
Row("CodigoPS") = DrowPS("PS").ToString
Row("PU") = DrowPS("PU").ToString.ToDouble
Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble
Select Case TipoCargaPresupuesto
Case EnumTipoCargaPresupuesto.Ventas
Row("CveTipoPresupuesto") = 2
Exit Select
Case EnumTipoCargaPresupuesto.Control
Row("CveTipoPresupuesto") = 1
Exit Select
Case Else
Row("CveTipoPresupuesto") = 1
End Select
Row("NoIdentificacion") = ""
Row("OCInterna") = ""
Row("LimitarCantidad") = 0
Row("Observacion") = ""
DTPS.Rows.Add(Row)
End If
Next
Dim ErrorProceso = False
Dim ObjContratos As New ClsContratos
Dim TotalRow As Double = 0
ObjContratos.IniciaTransacSQL()
For Each Row As DataRow In DTPS.Rows
If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), Row("OCInterna").ToString, Observacion:=Row("Observacion").ToString) Then
If Autorizado Then
Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"))
guardarBitacora(msj)
End If
Dim NrowTmpDT As DataRow = TmpDT.NewRow
NrowTmpDT("Cantidad") = Row("Cantidad")
NrowTmpDT("CantidadContratada") = Row("CantidadContratada")
NrowTmpDT("CveUM") = Row("CveUM")
NrowTmpDT("UM") = Row("UM")
NrowTmpDT("CveClasificacion") = Row("CveClasificacion")
NrowTmpDT("Clasificacion") = Row("Clasificacion")
NrowTmpDT("CvePS") = Row("CvePS")
NrowTmpDT("PS") = Row("PS")
NrowTmpDT("CodigoPS") = Row("CodigoPS")
NrowTmpDT("PU") = Row("PU")
NrowTmpDT("Total") = Row("Total")
NrowTmpDT("CveTipoPresupuesto") = Row("CveTipoPresupuesto")
NrowTmpDT("NoIdentificacion") = Row("NoIdentificacion")
NrowTmpDT("OCInterna") = Row("OCInterna")
NrowTmpDT("LimitarCantidad") = Row("LimitarCantidad")
NrowTmpDT("Observacion") = Row("Observacion")
NrowTmpDT("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
TmpDT.Rows.Add(NrowTmpDT)
TmpDT.AcceptChanges()
TotalRow = TotalRow + NrowTmpDT("Total").ToString.ToDouble
Else
ErrorProceso = True
Exit For
End If
Next
If ErrorProceso Then
ObjContratos.RollBack()
Alert("Se presento un error al cargar el presupuesto.", TipoMensaje.MsgError)
Else
ObjContratos.Commit()
Alert("Presupuesto Cargado correctamente")
Select Case TipoCargaPresupuesto
Case EnumTipoCargaPresupuesto.Ventas
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
UpGV.Update()
Exit Select
Case EnumTipoCargaPresupuesto.Control
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
UpGVInsumos.Update()
Exit Select
Case Else
End Select
LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero
LblImporte.Text = LbTotalGeneral.Text
UpGral.Update()
End If
ObjContratos.Dispose()
If RowNoEncontrados.Length > 0 Then
Alert($"Productos no encontrados <br> {RowNoEncontrados} ")
End If
End Sub
End Class

View File

@@ -195,7 +195,10 @@ Partial Class Contratos_FacturacionMasiva
End Sub
Protected Sub btnConsultar_Click(sender As Object, e As EventArgs) Handles BtnCargaAsignados.Click
CargaDatos(DdlContrato.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero)
Dim CveContrato As Integer = If(DdlContrato.SelectedValue.ToEntero <= 0, -1, DdlContrato.SelectedValue.ToEntero)
Dim CveCliente As Integer = If(DdlCliente.SelectedValue.ToEntero <= 0, -1, DdlCliente.SelectedValue.ToEntero)
CargaDatos(CveContrato, CveCliente)
RegistraScript("$('#ex').removeClass('expand');$('#ex').addClass('collapse');$('.portlet-body').css('display', '');")
End Sub
@@ -232,7 +235,10 @@ Partial Class Contratos_FacturacionMasiva
Alert("No se generaron facturas", TipoMensaje.MsgAdvertencia)
End If
CargaDatos(DdlContrato.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero)
Dim CveContrato As Integer = If(DdlContrato.SelectedValue.ToEntero <= 0, -1, DdlContrato.SelectedValue.ToEntero)
Dim CveCliente As Integer = If(DdlCliente.SelectedValue.ToEntero <= 0, -1, DdlCliente.SelectedValue.ToEntero)
CargaDatos(CveContrato, CveCliente)
RegistraScript("$('#divAgregar').modal('hide')")
UpBodyEstatus.Update()
End Sub
@@ -245,6 +251,7 @@ Partial Class Contratos_FacturacionMasiva
Dim Resp As New Modelos.Factura.MMensajeFactura
ViewState("CveCicloComercial") = pCveCicloComercial
CreaObjetosVenta()
If ObjFactura Is Nothing Or ObjFactura.Cliente Is Nothing Then
Alert("Ocurrió un error al procesar los datos de la Venta.", TipoMensaje.MsgError)
ObjFactura = Nothing
@@ -253,7 +260,7 @@ Partial Class Contratos_FacturacionMasiva
If ObjFactura.CveCliente > 0 Then
If DTDetalle.Rows.Count > 0 Then
If ObjFactura.DtDetalle.Rows.Count > 0 Then
Resp = ObjFactura.EmitirFactura()
@@ -468,9 +475,7 @@ Partial Class Contratos_FacturacionMasiva
TmpDT.Columns.Add("EsCargo", GetType(Boolean))
End Sub
Private Sub CreaObjetosVenta(Optional VistaPrevia As Boolean = False)
Dim ObjFolios As New ClsGralFolios()
Dim Folio As String = ""
Dim Serie As String = ""
Dim CveProyecto As String = ""
Dim CveSubProyecto As String = ""
Dim Proyecto As String = ""
@@ -479,21 +484,21 @@ Partial Class Contratos_FacturacionMasiva
ObjFactura = New Modelos.Factura(UsuarioActual)
ObjFactura.DirectorioServidor = Server.MapPath("/")
ObjFactura.CveCicloComercial = CveCicloComercial
Dim DR As DataRow = DTCicloComercial.FiltroPrimero($"CveCicloComercial = {CveCicloComercial}")
ObjFactura.Version = "3.3"
ObjFactura.CveUsuario = UsuarioActual.CveUsuario
ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa
ObjFactura.TipoCambio = 20
ObjFactura.TipoCambio = 1
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.TipoDocto = "Ing"
ObjFactura.RefDocto = ""
ObjFactura.Folio = Folio.ToEntero
'ObjFactura.Folio = If(ExFolioFactura, FolioXML.ToEntero, -1)
ObjFactura.Serie = Serie
ObjFactura.Folio = -1
ObjFactura.Serie = "-1"
ObjFactura.CveMesa = -1
ObjFactura.Fecha = DR("FechaVenc").ToString.ToDate
ObjFactura.CvePrePoliza = -1
@@ -533,18 +538,7 @@ Partial Class Contratos_FacturacionMasiva
ObjFactura.CveSubProyectoEjecucion = CveSubProyecto.ToEntero
SubProyecto = DR("SubProyectoContrato").ToString
If ObjFolios.GetFolios("Ing", UsuarioActual.CveEmpresa) Then
Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros(String.Format($" Estado = 'Activo' AND CveSubProyecto = {CveSubProyecto} "))
If DT.Rows.Count > 0 Then
Serie = DT.Rows(0)("Serie").ToString
Folio = DT.Rows(0)("FActual").ToString
End If
DT.Dispose()
End If
ObjFolios.Dispose()
SubProyecto = DR("SubProyectoContrato").ToString
Dim objContratos As New ClsContratos
If objContratos.GetContratosDetalle(DR("CveContrato").ToString.ToEntero) Then
@@ -561,8 +555,6 @@ Partial Class Contratos_FacturacionMasiva
ObjFactura.RetISR = SUM(DTDetalle, "ImporteRetISR").ToDecimal
ObjFactura.IEPS = SUM(DTDetalle, "ImporteIEPS").ToDecimal
ObjFactura.Total = ObjFactura.SubTotal + ObjFactura.IVA + ObjFactura.IEPS - (ObjFactura.RetIVA + ObjFactura.RetISR)
ObjFactura.Serie = Serie
ObjFactura.Folio = Folio.ToEntero
For Each row As DataRow In DTDetalle.Rows
Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=row("CvePS").ToString().ToEntero()).FiltroPrimero("")

View File

@@ -205,7 +205,7 @@ public class TareasJam : IHttpHandler
DataTable dtCloned = DTVentas.Clone();
dtCloned.Columns[3].DataType = typeof(string);
dtCloned.Columns[3].DataType = typeof(DateTime);
foreach (DataRow row in DTVentas.Rows)
{
@@ -215,7 +215,7 @@ public class TareasJam : IHttpHandler
DTVentas = dtCloned;
foreach (DataRow dRow in DTVentas.Rows)
{
string tmpDate = dRow[3].ToString().ToDate().ToString("yyyy/MM/dd");
DateTime tmpDate = dRow[3].ToString().ToDate().ToString("yyyy/MM/dd").ToDate();
dRow[3] = tmpDate;
}
@@ -223,7 +223,7 @@ public class TareasJam : IHttpHandler
dtCloned = DTAlmacenes.Clone();
dtCloned.Columns[3].DataType = typeof(string);
dtCloned.Columns[3].DataType = typeof(DateTime);
foreach (DataRow row in DTAlmacenes.Rows)
{
@@ -233,7 +233,7 @@ public class TareasJam : IHttpHandler
DTAlmacenes = dtCloned;
foreach (DataRow dRow in DTAlmacenes.Rows)
{
string tmpDate = dRow[3].ToString().ToDate().ToString("yyyy/MM/dd");
DateTime tmpDate = dRow[3].ToString().ToDate().ToString("yyyy/MM/dd").ToDate();
dRow[3] = tmpDate;
}
DTAlmacenes.AcceptChanges();
@@ -249,8 +249,6 @@ public class TareasJam : IHttpHandler
if (!ErrorProceso)
{
//////////////////////////////////////////////////////////////
int count = 2;
var wbVentas = new ClosedXML.Excel.XLWorkbook(FormatoVentas);
@@ -261,7 +259,7 @@ public class TareasJam : IHttpHandler
wsVentas.Cell(count, 1).Value = "'" + DRow["systemId"].ToString();
wsVentas.Cell(count, 2).Value = DRow["Branch"].ToString();
wsVentas.Cell(count, 3).Value = "'" + DRow["Code"].ToString();
wsVentas.Cell(count, 4).Value = "'" + DRow["Sale Date"].ToString();
wsVentas.Cell(count, 4).Value = DRow["Sale Date"].ToString();
wsVentas.Cell(count, 5).Value = DRow["Quantity"].ToString();
wsVentas.Cell(count, 6).Value = DRow["Amount"].ToString();
wsVentas.Cell(count, 7).Value = DRow["Transaction ID"].ToString();
@@ -279,7 +277,7 @@ public class TareasJam : IHttpHandler
wsAlmacenes.Cell(count, 1).Value = "'" + DRow["Code"].ToString();
wsAlmacenes.Cell(count, 2).Value = DRow["Quantity"].ToString();
wsAlmacenes.Cell(count, 3).Value = DRow["Description"].ToString();
wsAlmacenes.Cell(count, 4).Value = "'" + DRow["Stock Date"].ToString();
wsAlmacenes.Cell(count, 4).Value = DRow["Stock Date"].ToString();
count++;
}
wbAlmacenes.SaveAs(RutaAlmacenes);
@@ -455,7 +453,7 @@ public class TareasJam : IHttpHandler
Ventas.Ruta = RutaVentas;
Clientes.Ruta = RutaClientes;
Almacenes.Ruta = RutaAlmacenes;
ListaArchivos.Add(Productos);
ListaArchivos.Add(Ventas);
ListaArchivos.Add(Clientes);
@@ -479,7 +477,7 @@ public class TareasJam : IHttpHandler
private bool CargarArchivos(FileInfo FInfo, string FTPServer, string FTPUsr, string FTPPass )
{
bool Respuesta;
if (FInfo.Exists)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"{FTPServer}/{FInfo.Name}");

View File

@@ -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