Files
SIG/Contratos/Contrato.aspx.vb
Antonio Gonzalez f5a5debe7d -
2020-08-12 15:00:37 -07:00

4337 lines
202 KiB
VB.net

Option Explicit On
Option Strict On
Imports Extensiones
Imports System.IO
Imports System.Data
Imports Microsoft.Reporting.WebForms
Imports System.Globalization
Imports GemBox.Spreadsheet
Partial Class Contratos_Default
Inherits ClsPaginas
#Region " PROPIEDADES "
Private Property CveContrato As Integer
Get
If ViewState("CveContrato") Is Nothing Then
Return 0
Else
Return ViewState("CveContrato").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("CveContrato") = value
End Set
End Property
Private Property CveTipoContrato As Integer
Get
If ViewState("CveTipoContrato") Is Nothing Then
Return 0
Else
Return ViewState("CveTipoContrato").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("CveTipoContrato") = value
End Set
End Property
Private Property CveMovimiento As Integer
Get
Return ViewState("CveMovimiento").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveMovimiento") = value
End Set
End Property
Private Property CveMovimientoDevolucion As Integer
Get
Return ViewState("CveMovimientoDevolucion").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveMovimientoDevolucion") = value
End Set
End Property
Private Property FolioSugerido As String
Get
Return ViewState("FolioSugerido").ToString
End Get
Set(value As String)
ViewState("FolioSugerido") = value
End Set
End Property
Private Property CveVenta As Integer
Get
Return ViewState("CveVenta").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveVenta") = value
End Set
End Property
Public Property Autorizado As Boolean
Get
Return DirectCast(ViewState("Autorizado"), Boolean)
End Get
Set(value As Boolean)
ViewState("Autorizado") = value
End Set
End Property
Private Property ArchivoUpdate As String
Get
Return ViewState("ArchivoUpdate").ToString
End Get
Set(value As String)
ViewState("ArchivoUpdate") = value
End Set
End Property
Private Property TipoContrato As Integer
Get
Return ViewState("TipoContrato").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("TipoContrato") = value
End Set
End Property
Private Property DtDatos As DataTable
Get
Return CType(ViewState("DtDatos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatos") = value
End Set
End Property
Private Property DtPlantillasContratos As DataTable
Get
Return CType(ViewState("DtPlantillasContratos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtPlantillasContratos") = value
End Set
End Property
Private Property DtPeriodo As DataTable
Get
Return CType(ViewState("DtPeriodo"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtPeriodo") = value
End Set
End Property
Private Property TmpDT As DataTable
Get
Return CType(ViewState("TmpDT"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDT") = value
End Set
End Property
Private Property ModalidadDetalle As Integer
Get
Return DirectCast(ViewState(" ModalidadDetalle"), Integer)
End Get
Set(value As Integer)
ViewState(" ModalidadDetalle") = value
End Set
End Property
Public Property DtMovimientos() As DataTable
Get
Return CType(ViewState("DtMovimientos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtMovimientos") = value
End Set
End Property
Public Property DtGastos() As DataTable
Get
Return CType(ViewState("DtGastos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtGastos") = value
End Set
End Property
Public Property DtSuministros() As DataTable
Get
Return CType(ViewState("DtSuministros"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtSuministros") = value
End Set
End Property
Public Property DtAvance() As DataTable
Get
Return CType(ViewState("DtAvance"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtAvance") = value
End Set
End Property
Public Property DtPresupuestos() As DataTable
Get
Return CType(ViewState("DtPresupuestos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtPresupuestos") = value
End Set
End Property
Private Property FechaI As DateTime
Get
Return CType(ViewState("FechaI"), DateTime)
End Get
Set(value As DateTime)
ViewState("FechaI") = value
End Set
End Property
Private Property FechaF As DateTime
Get
Return CType(ViewState("FechaF"), DateTime)
End Get
Set(value As DateTime)
ViewState("FechaF") = value
End Set
End Property
Public Property DtActivosFijos() As DataTable
Get
Return CType(ViewState("DtActivosFijos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtActivosFijos") = value
End Set
End Property
Private Property CvePSSerieLote As Integer
Get
Return CType(ViewState("CvePSSerieLote"), Integer)
End Get
Set(value As Integer)
ViewState("CvePSSerieLote") = value
End Set
End Property
Private Property CveUMSerieLote As Integer
Get
Return CType(ViewState("CveUMSerieLote"), Integer)
End Get
Set(value As Integer)
ViewState("CveUMSerieLote") = value
End Set
End Property
Private Property DtAvanceDocumento As DataTable
Get
Return CType(ViewState("DtAvanceDocumento"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtAvanceDocumento") = value
End Set
End Property
Private Property Titulo As String
Get
Return ViewState("Titulo").ToString
End Get
Set(value As String)
ViewState("Titulo") = value
End Set
End Property
Private Property TituloCorto As String
Get
Return ViewState("TituloCorto").ToString
End Get
Set(value As String)
ViewState("TituloCorto") = value
End Set
End Property
Private Property TipoDocumento As String
Get
Return ViewState("TipoDocumento").ToString
End Get
Set(value As String)
ViewState("TipoDocumento") = value
End Set
End Property
Private Property Contratante As String
Get
Return ViewState("Contratante").ToString
End Get
Set(value As String)
ViewState("Contratante") = value
End Set
End Property
Private Property SumaAvance As Double
Get
Return If(ViewState("SumaAvance") IsNot Nothing, ViewState("SumaAvance").ToString.ToDouble, 0)
End Get
Set(value As Double)
ViewState("SumaAvance") = value
End Set
End Property
Private Property SumaUtilidad As Double
Get
Return If(ViewState("SumaUtilidad") IsNot Nothing, ViewState("SumaUtilidad").ToString.ToDouble, 0)
End Get
Set(value As Double)
ViewState("SumaUtilidad") = value
End Set
End Property
Private Property SumaGasto As Double
Get
Return If(ViewState("SumaGasto") IsNot Nothing, ViewState("SumaGasto").ToString.ToDouble, 0)
End Get
Set(value As Double)
ViewState("SumaGasto") = value
End Set
End Property
Private Property NumRow As Integer
Private Property EsEditarFianza As Boolean
Get
Return CType(ViewState("EsEditarFianza"), Boolean)
End Get
Set(value As Boolean)
ViewState("EsEditarFianza") = value
End Set
End Property
Private Property IndexFianzaEditar As Integer
Get
Return CType(ViewState("IndexFianzaEditar"), Integer)
End Get
Set(value As Integer)
ViewState("IndexFianzaEditar") = value
End Set
End Property
Public Property DtTmpFianzas() As DataTable
Get
Return CType(ViewState("DtTmpFianzas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtTmpFianzas") = value
End Set
End Property
Public Property DtTmpFianzasInicial() As DataTable
Get
Return CType(ViewState("DtTmpFianzasInicial"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtTmpFianzasInicial") = value
End Set
End Property
Private Property MensajeAlert As StringBuilder
Get
Return CType(ViewState("MensajeAlert"), StringBuilder)
End Get
Set(value As StringBuilder)
ViewState("MensajeAlert") = value
End Set
End Property
Private Property DsDatosPedDev As DataSet
Get
DsDatosPedDev = DirectCast(ViewState("DsDatosPedDev"), DataSet)
End Get
Set(ByVal value As DataSet)
ViewState("DsDatosPedDev") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaValoresIniciales()
CreaDtTmpFianzas()
If Request("CveCliente") IsNot Nothing Then
cargaClientes()
End If
If Request("CveContrato") IsNot Nothing AndAlso IsNumeric(Request("CveContrato")) AndAlso Request("CveContrato").ToEntero > 0 Then
ViewState("CveContrato") = Request("CveContrato")
DvBitacora.Visible = True
DdlEstatus.Enabled = False
If UsuarioActual.TienePermisoProceso(126) Then
BtnAutorizar.Visible = True
End If
DivContent.Visible = True
' DivTipoContrato.Visible = False
'TxtArchivo.Visible = True
CargaDatos()
CargaDatosAvance()
CargaDatosAvancePorDocumento()
CargaInventarios()
'12/04/2018 - Si el tipo de contrato es convenio de precio fijo configura campos
If CveTipoContrato = 28 Then
CargaConvenioPrecioFijo()
End If
'Configuración de Modalidad Update
BtnGuardar.Text = "Guardar Cambios"
If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then Tab.ActiveTabIndex = Request("Opt").ToEntero
Else
'Configuración de Modalidad Insert
LblFechaCaptura.Text = Now.ToShortDateString()
LblUsuarioCapturo.Text = UsuarioActual.Usuario
ViewState("CveContrato") = -1
DvBitacora.Visible = False
TabContratosGastos.Visible = False
TabAF.Visible = False
TabReporteAvance.Visible = False
TabAvanveDocumento.Visible = False
Tab.ActiveTabIndex = 0
If UsuarioActual.Empresa.CvePlataforma = 3 Then
rdventa.Checked = True
rdventa_CheckedChanged(Nothing, Nothing)
If (DdlTipoContrato.Items.FindByValue("14") Is Nothing) Then
DdlTipoContrato.Items.Insert(1, New ListItem("Contrato de Cuenta y Equipo", "14"))
End If
DdlTipoContrato.SelectedValue = "14"
TipoContrato = 14
BtnTipoContrato_Click(Nothing, Nothing)
End If
End If
'carga combos
CargaClasificaciones()
CargaPS()
CargaPSInsumos()
ConfiguraTipos()
CargaDatosEncabezado()
CargaImpuestosLocales()
End If
'[IPP] PORQUE ESTA TODO ESTO EN TODOS LOS POSTBACK ??? - REVISEN BIEN DONDE PONEN EL CODIGO
If UsuarioActual.TienePermisoProceso(165) Then
BtnGuardar.Visible = True
Else
BtnGuardar.Visible = False
End If
If CveContrato > 0 Then
If UsuarioActual.TienePermisoProceso(164) Then
BtnEliminar.Visible = True
Gv.Columns(11).Visible = True
GvInsumos.Columns(9).Visible = True
Else
BtnEliminar.Visible = False
Gv.Columns(11).Visible = False
GvInsumos.Columns(9).Visible = False
End If
'If CveTipoContrato.Contiene(11, 25) Then 'ciclo comercial
' Gv.Columns(9).Visible = False
' GvInsumos.Columns(8).Visible = False
'End If
Else
TabPres.Visible = False
Gv.Columns(11).Visible = True
GvInsumos.Columns(9).Visible = True
End If
End Sub
#Region " CARGA VALORES INICIALES "
Private Sub CargaValoresIniciales()
CveContrato = -1
ViewState("TipoContrato") = 0
CveVenta = -1
Autorizado = False
BtnAutorizar.Visible = False
Session("FileUpload") = ""
Session("FileExtension") = ""
Session("FileFolder") = ""
ArchivoUpdate = ""
ModalidadDetalle = 1
FolioSugerido = ""
CargaProyecto()
CargaContratista()
CargaVendedores()
DdlUM.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa)
DdlUM.DataBind()
DdlMoneda.DataSource = GlobalDTMonedas
DdlMoneda.DataBind()
CargaContratoPadre()
CargaContratosEstatus()
CreaDT()
DdlAlmacenOrigen.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1"))
If UsuarioActual.TienePermisoProceso(172) Then
RowPorcentajeComision.Visible = True
End If
If UsuarioActual.CveEmpresa.Contiene(72, 80) Then divResponsable.Visible = False
End Sub
Public Sub CargaDireccionesEnvios(CveCliente As Integer)
Dim ObjVentas As New ClsClientes
If ObjVentas.DireccionEnvioGet(-1, CveCliente, -1) Then
If ObjVentas.DtResultados.Rows.Count > 0 Then
DdlClienteDireccionEnvio.DataSource = ObjVentas.DtResultados
DdlClienteDireccionEnvio.DataBind()
DivClienteDireccion.Visible = True
Else
DivClienteDireccion.Visible = False
End If
End If
ObjVentas.Dispose()
UpGral.Update()
End Sub
Protected Sub DdlMoneda_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlMoneda.SelectedIndexChanged
If DdlMoneda.SelectedIndex = 0 Then
tipoCambio.Visible = False
TxtTipoCambio.Text = ""
UpGral.Update()
Else
tipoCambio.Visible = True
TxtTipoCambio.Text = ""
UpGral.Update()
End If
End Sub
Public Function isWithFamily() As Boolean
Return UsuarioActual.CveEmpresa = 66
End Function
Private Sub cargaClientes()
TrCliente.Visible = True
TrProveedor.Visible = False
DdlCliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
DdlCliente.DataBind()
End Sub
Private Sub CreaDT()
TmpDT = New DataTable
TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer))
TmpDT.Columns.Add("Cantidad", GetType(Double))
TmpDT.Columns.Add("CantidadContratada", GetType(Double))
TmpDT.Columns.Add("CveUM", GetType(Integer))
TmpDT.Columns.Add("UM", 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("PU", GetType(Double))
TmpDT.Columns.Add("Total", GetType(Double))
TmpDT.Columns.Add("CveTipoPresupuesto", GetType(Integer))
TmpDT.Columns.Add("PermitirAvance", GetType(Integer))
TmpDT.Columns.Add("PermitirEstimacion", GetType(Integer))
TmpDT.Columns.Add("UsuarioAvance", GetType(Integer))
TmpDT.Columns.Add("Cantidad_Original", GetType(Double))
TmpDT.Columns.Add("PU_Original", GetType(Double))
TmpDT.Columns.Add("Total_Original", GetType(Double))
TmpDT.Columns.Add("NoIdentificacion", GetType(String))
TmpDT.Columns.Add("LimitarCantidad", GetType(Integer))
TmpDT.Columns.Add("OCInterna", GetType(String))
TmpDT.Columns.Add("Observacion", GetType(String))
End Sub
Protected Sub Limpiar()
TxtNumeroContrato.Text = ""
TxtDescripcionContrato.Text = ""
DdlContratista.SelectedValue = "-1"
DdlCliente.SelectedValue = "-1"
TxtFechaInicial.Text = ""
TxtFechaFinal.Text = ""
TxtPorIVA.Text = ""
txtMinimo.Text = ""
txtMaximo.Text = ""
'TxtArchivo.Text = ""
DdlProyecto.SelectedValue = "-1"
DdlSubProyectoContrato.SelectedValue = "-1"
DdlContratoPadre.SelectedValue = "-1"
'Tab Presupuesto
TxtCantidad.Text = ""
TxtPU.Text = ""
TmpDT.Clear()
CargaGVPresupuestos(TmpDT)
CargaGVPresupuestosInsumos(TmpDT)
LbTotalGeneral.Text = "0.00"
End Sub
#End Region
#Region " CONFIGURA TIPOS CONTRATO "
Private Sub ConfiguraTipos()
If Not TipoContrato.Contiene({7, 9, 13, 16, 18, 21}) Then
TabAF.Visible = False
End If
'TabContratosGastos.Visible = False
'DONDE OCUPA ALMACEN
Dim CveTipoAlmacenOrigen = "12"
Dim CveTipoAlmacenDestino = "11,12"
If TipoContrato.Contiene({7, 9, 13, 16, 18, 21, 27}) Then
RowAlmacen.Visible = True
If TipoContrato.Contiene(7, 9, 13, 21, 27) Then
If TipoContrato.Contiene(27) Then
CveTipoAlmacenOrigen = "1"
CveTipoAlmacenDestino = "17"
End If
RowAlmacenOrigen.Visible = True
End If
End If
Dim CveOrigen = DdlAlmacenOrigen.SelectedValue
DdlAlmacenOrigen.Items.Clear()
DdlAlmacenOrigen.SelectedValue = "-1"
DdlAlmacenOrigen.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlAlmacenOrigen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen IN ({CveTipoAlmacenOrigen})") ' GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacenOrigen.DataBind()
DdlAlmacenOrigen.SelectedValueExist(CveOrigen)
'SI EL ALMACEN ANTERIOR DEL CONTRATO NO ESTA EN LOS ALMACENES ACTUALES LO INSERTA A FUERZAS
If DdlAlmacenOrigen.SelectedValue <> CveOrigen Then
DdlAlmacenOrigen.Items.Insert(1, New ListItem(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {CveOrigen}"), CveOrigen))
DdlAlmacenOrigen.SelectedValueExist(CveOrigen)
End If
Dim CveDestino = DdlAlmacenDestino.SelectedValue
DdlAlmacenDestino.Items.Clear()
DdlAlmacenDestino.SelectedValue = "-1"
DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlAlmacenDestino.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen In ({CveTipoAlmacenDestino})") 'GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1)
DdlAlmacenDestino.DataBind()
DdlAlmacenDestino.SelectedValueExist(CveDestino)
'SI EL ALMACEN ANTERIOR DEL CONTRATO NO ESTA EN LOS ALMACENES ACTUALES LO INSERTA A FUERZAS
If DdlAlmacenDestino.SelectedValue <> CveDestino Then
DdlAlmacenDestino.Items.Insert(1, New ListItem(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {CveDestino}"), CveDestino))
DdlAlmacenDestino.SelectedValueExist(CveDestino)
End If
End Sub
Private Sub MuestraPermiteAvance()
'If Not TipoContrato.Contiene({4, 5, 25, 11}) Then
' Gv.Columns(9).Visible = False
' GvInsumos.Columns(7).Visible = False
' THAvance.Style.Add("display", "none")
' TDAvance.Style.Add("display", "none")
' THAvance.Visible = False
' THAvanceInsumos.Visible = False
' ' tdCol7.Visible = False
' TDAvance.Visible = False
' TDAvanceInsumos.Visible = False
'Else
' Gv.Columns(9).Visible = True
' GvInsumos.Columns(6).Visible = True
' THAvance.Visible = True
' THAvanceInsumos.Visible = True
' 'tdCol7.Visible = True
' TDAvance.Visible = True
' TDAvanceInsumos.Visible = True
'End If
'UpTitulos.Update()
'UpGral.Update()
End Sub
#End Region
#Region " PANTALLA INICIAL"
Protected Sub rpCompra_CheckedChanged(sender As Object, e As EventArgs) Handles rpCompra.CheckedChanged
loadComboTipoContrato(False)
End Sub
Protected Sub rdventa_CheckedChanged(sender As Object, e As EventArgs) Handles rdventa.CheckedChanged
loadComboTipoContrato(True)
End Sub
Private Sub loadComboTipoContrato(venta As Boolean)
Try
If venta Then
DdlTipoContrato.DataSource = GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros(" TipoMovimiento = 1")
Else
DdlTipoContrato.DataSource = GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros(" TipoMovimiento = 0")
End If
dvDetContrato.Visible = True
' DdlTipoContrato.Visible = True
DdlTipoContrato.DataBind()
DdlTipoContrato.Items.Insert(0, New ListItem("Seleccione una opción", "-1"))
If UsuarioActual.CveEmpresa.Contiene(1, 11, 4, 12) And venta Then
DdlTipoContrato.Items.Insert(1, New ListItem("Contrato con facturación ciclica", "25"))
End If
UPTipo.Update()
Catch ex As Exception
Alert(ex.Message, TipoMensaje.MsgError)
End Try
End Sub
#End Region
#Region " INICIO DE PAGINA "
Protected Sub DdlTipoContrato_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaTipoContrato()
'12/04/2018 - Se configuran campos de convenio de precio fijo
If DdlTipoContrato.SelectedValue = "28" Then
CargaConvenioPrecioFijo()
End If
If UsuarioActual.CveEmpresa = 72 And DdlTipoContrato.SelectedValue.Contiene("7", "8", "10", "13", "28") Then
GetNoContratoNuevo()
End If
End Sub
Private Sub CargaTipoContrato()
If DdlTipoContrato.SelectedIndex = 0 Then
TxtDescripcionTipoContrato.Text = ""
Exit Sub
End If
TipoContrato = DdlTipoContrato.SelectedValue.ToEntero
TxtDescripcionTipoContrato.Text = GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros("CveContratoTipo = " & DdlTipoContrato.SelectedValue)(0)("Descripcion").ToString()
TxtDescripcionTipoContrato.Visible = True
CargaContratoPadre()
UpProyecto.Update()
End Sub
Private Sub modalidades(modalidadDetalleInt As Integer)
If modalidadDetalleInt = 1 Then
ModalidadDetalle = 1
DvMax.Visible = True
DvMin.Visible = True
DvTotal.Visible = True
If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then
TableDatosCabecera.Visible = True
End If
ElseIf modalidadDetalleInt = 2 Then
ModalidadDetalle = 2
DvMax.Visible = True
DvMin.Visible = True
DvTotal.Visible = True
'TxtCantidad.Visible = False
If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then
TableDatosCabecera.Visible = True
End If
End If
UpGral.Update()
End Sub
Protected Sub chkDetalleContrato_CheckedChanged(sender As Object, e As EventArgs)
If chkDetalleContrato.Checked = False Then
modalidades(1)
Else
modalidades(2)
End If
End Sub
Protected Sub BtnTipoContrato_Click(sender As Object, e As EventArgs) Handles BtnTipoContrato.Click
If DdlTipoContrato.SelectedIndex = 0 Then
Alert("Tiene que seleccionar un tipo de Contrato.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
'Dim TipoMov = GlobalDTContratosTipos.FiltroPrimeroValor("TipoMovimiento", $"CveContratoTipo='{CveTipoContrato}'").ToEntero
If rpCompra.Checked Then
Dim CveContratoTipo = DdlTipoContrato.SelectedValue.ToEntero
Response.Redirect($"/Contratos/Presupuestos.aspx?CveContrato=-1&CveContratoTipo={CveContratoTipo}")
'RegistraScript("window.location='/Contratos/Presupuestos.aspx")
Else
modalidades(1)
DivTipoContrato.Visible = False
If rdventa.Checked Then
DdlCliente.Visible = True
TrCliente.Visible = True
DdlContratista.Visible = False
TrProveedor.Visible = False
Else
DdlCliente.Visible = False
TrCliente.Visible = False
TrProveedor.Visible = True
DdlContratista.Visible = True
End If
If rdventa.Checked Then
cargaClientes()
Else
CargaContratista()
End If
If DdlTipoContrato.SelectedValue = "14" Then
TrCtaEquipo.Visible = True
TrPeriodo.Visible = True
RFVEstatus.ValidationGroup = ""
RequiredFieldValidator1.ValidationGroup = ""
DvMin.Visible = True
DvMax.Visible = True
DvTotal.Visible = True
RowFlexible.Visible = False
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
Dim CveTipoContrato = DdlTipoContrato.SelectedValue
'Dim TipoMov = GlobalDTContratosTipos.AsEnumerable().Where(Function(a) a("CveContratoTipo").ToString = CveTipoContrato).FirstOrDefault()("TipoMovimiento")
DivContent.Visible = True
ConfiguraTipos()
UpGral.Update()
UPTipo.Update()
End If
End Sub
Protected Sub DdlSubProyectoContrato_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyectoContrato.SelectedIndexChanged
Dim ObjFolios As New ClsGralFolios
If ObjFolios.GetFolios("Con", UsuarioActual.CveEmpresa) Then
If ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {DdlSubProyectoContrato.SelectedValue}").Rows.Count > 0 Then
FolioSugerido = $"{GlobalDTSubProyectos(-1, DdlSubProyectoContrato.SelectedValue.ToEntero).FiltroPrimeroValor("Serie")}-{ObjFolios.DtResultados.FiltroPrimeroValor("FActual", $"CveSubProyecto = {DdlSubProyectoContrato.SelectedValue}")}"
TxtNumeroContrato.Text = FolioSugerido
Else
Alert("La sucursal no cuenta con folios de contratos", TipoMensaje.MsgAdvertencia)
End If
End If
ObjFolios.Dispose()
UpGral.Update()
End Sub
#End Region
#Region " CARGA DATOS "
Private Sub CargaDatos()
Dim ObjContratos As New ClsContratos()
Dim Ruta = Request.ApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
DivTipoContrato.Visible = False
If ObjContratos.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then
If ObjContratos.DtResultados.Rows.Count > 0 Then
GRidsPresupuestos.Visible = True
msjpresupuestos.Visible = False
If ArchivoUpdate = ObjContratos.Archivo.ToString Then
LinkArchivo.Visible = True
LinkArchivo.HRef = String.Format("{0}{1}", Ruta, ObjContratos.Archivo.ToString)
End If
Titulo = $"{ObjContratos.NumeroContrato} - {ObjContratos.DescripcionContrato} ({ObjContratos.DtResultados.Rows(0)("ContratoTipo")})"
TituloCorto = $"{ObjContratos.NumeroContrato} - {ObjContratos.DescripcionContrato} "
TipoDocumento = ObjContratos.DtResultados.Rows(0)("ContratoTipo").ToString
LtlTitulo.Text = $"Contrato: {Titulo})"
'Pestaña Datos Generales
TxtObservaciones.Text = ObjContratos.Observaciones
TxtDescripcionContrato.Text = ObjContratos.DescripcionContrato
TxtNumeroContrato.Text = ObjContratos.NumeroContrato
TxtNumeroLicitacion.Text = ObjContratos.NumeroLicitacion
TipoContrato = ObjContratos.CveContratoTipo
TxtPorcentajeComision.Text = ObjContratos.PorcentajeComision.ToString
CveTipoContrato = ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero
TxtCorreoNotificacion.Text = ObjContratos.DtResultados.Rows(0)("CorreoNotificacionPedDev").ToString
If ObjContratos.CveProveedor > 0 Then
TrProveedor.Visible = True
TrCliente.Visible = False
CargaContratista()
DdlContratista.SelectedValue = ObjContratos.CveProveedor.ToString
Else
cargaClientes()
DdlCliente.SelectedValueExist(ObjContratos.CveCliente.ToString)
UpGral.Update()
CargaSucursalCliente()
DdlSucursalCliente.SelectedValue = ObjContratos.CveSucursalCliente.ToString
End If
If DdlCliente.SelectedValue.ToEntero > 0 Then
CargaDireccionesEnvios(DdlCliente.SelectedValue.ToEntero)
DdlClienteDireccionEnvio.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveDireccionEnvio").ToString.ToEntero)
End If
CargaContratoPadre()
CargaContratoAddendum()
If ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero = 14 Then
CargaPeriodos()
TrCtaEquipo.Visible = True
TrPeriodo.Visible = True
RFVEstatus.ValidationGroup = ""
RequiredFieldValidator1.ValidationGroup = ""
DvMin.Visible = True
DvMax.Visible = True
DvTotal.Visible = True
RowFlexible.Visible = False
RowPorcentajeComision.Visible = False
RowEstatus.Visible = False
dvAddendum.Visible = False
liImprimir.Visible = True
CargaPlantillas()
TrContratoPlantilla.Visible = True
DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo"))
DdlCuentaEquipo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveCuentaEquipo"))
DdlPlantillaContrato.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveContratoPlantilla"))
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)("CveVendedor").ToString.ToEntero > 0 Then
DdlVendedor.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveVendedor"))
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))
If dr IsNot Nothing Then
DdlAlmacenDestino.Items.Insert(1, New ListItem(dr("Almacen").ToString, dr("CveAlmacen").ToString)) ' lo genera Obj.SelectedValue = Valor.ToString
End If
End If
DdlAlmacenDestino.SelectedValue = ObjContratos.CveAlmacen.ToString
If (DdlAlmacenOrigen.Items.FindByValue(ObjContratos.CveAlmacenOrigen.ToString()) Is Nothing) Then
Dim dr As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", ObjContratos.CveAlmacenOrigen))
If dr IsNot Nothing Then
DdlAlmacenOrigen.Items.Insert(1, New ListItem(dr("Almacen").ToString, dr("CveAlmacen").ToString)) ' lo genera Obj.SelectedValue = Valor.ToString
End If
End If
DdlAlmacenOrigen.SelectedValue = ObjContratos.CveAlmacenOrigen.ToString
FechaF = ObjContratos.FechaFinal
FechaI = ObjContratos.FechaInicial
TxtFechaFinal.Text = ObjContratos.FechaFinal.ToShortDateString
TxtFechaInicial.Text = ObjContratos.FechaInicial.ToShortDateString
TxtUbicacion.Text = ObjContratos.Ubicacion
TxtResponsable.Text = ObjContratos.Responsable
TxtPorAnticipo.Text = ObjContratos.PorAmortizacionAnticipo.FormatoNumero
TxtPorAmortizacionAnticipo.Text = ObjContratos.PorAmortizacionAnticipo.FormatoNumero
TxtPorGarantia.Text = ObjContratos.PorGarantia.FormatoNumero
DdlProyecto.SelectedValue = ObjContratos.CveProyecto.ToString
CargaSubProyectoContrato(DdlProyecto.SelectedValue.ToEntero)
DdlSubProyectoContrato.SelectedValue = ObjContratos.CveSubProyecto.ToString
TxtPorIVA.Text = ObjContratos.PorIVA.ToString
txtMinimo.Text = ObjContratos.Minimo.FormatoNumero
txtMaximo.Text = ObjContratos.Maximo.FormatoNumero
TxtTotal.Text = ObjContratos.Importe.FormatoNumero
'TxtArchivo.Text = ObjContratos.Archivo
DdlTipoGarantia.SelectedValueExist(ObjContratos.TipoGarantia)
DdlEstatusFianza.SelectedValueExist(ObjContratos.EstatusFianza)
TxtFolio.Text = ObjContratos.Folio.ToString
txtFechaVenc.Text = ObjContratos.FechaVenc.ToString
DdlEstatus.SelectedValueExist(ObjContratos.CveContratosEstatus.ToString)
CargarFianzas()
If ObjContratos.TipoEstatus = 2 Then
DdlEstatus.Enabled = False
If UsuarioActual.TienePermisoProceso(173) Then
liVigenteContrato.Visible = True
LBVigenteContrato.Visible = True
End If
Else
DdlEstatus.Items.Clear()
'Se esta ocultando concluido'
DdlEstatus.DataSource = CType(DdlEstatus.DataSource, DataTable).FiltraParametros("TipoEstatus NOT IN (2)")
DdlEstatus.DataBind()
Select Case ObjContratos.TipoEstatus
Case 1
If UsuarioActual.TienePermisoProceso(173) Then
liTerminarContrato.Visible = True
LBTerminarContrato.Visible = True
liCancelarContrato.Visible = True
LBCancelarContrato.Visible = True
End If
Case 2, 3 ' reactivar el contrato
If UsuarioActual.TienePermisoProceso(173) Then
liVigenteContrato.Visible = True
LBVigenteContrato.Visible = True
End If
End Select
End If
TxtTipoCambio.Text = ObjContratos.TipoCambio.ToString
ModalidadDetalle = ObjContratos.ModalidadDetalle
chkDetalleContrato.Checked = If(ModalidadDetalle = 2, True, False)
ChkImpuestosLocales.Checked = ObjContratos.AplicaImpuestosLocales
GvImpuestosLocales.Visible = ObjContratos.AplicaImpuestosLocales
modalidades(ModalidadDetalle)
CargaGVGastos()
DdlMoneda.SelectedValue = ObjContratos.CveMoneda.ToString
If DdlMoneda.SelectedIndex > 0 Then
tipoCambio.Visible = True
End If
If ObjContratos.CveProveedor > 0 Then
Contratante = ObjContratos.RazonSocial.ToString
Else
Contratante = ObjContratos.NombreComercial.ToString
End If
'AFU.Visible = False
'TxtArchivo.Text = ObjContratos.Archivo.ToString
'ChkEstatusContrato.Checked = CBool(ObjContratos.EstatusContrato)
DdlContratoPadre.SelectedValue = ObjContratos.CveContratoPadre.ToString
LblFechaCaptura.Text = ObjContratos.FechaIng.ToShortDateString
'HplSecciones.NavigateUrl = "/Contratos/ContratosSecciones.aspx?CveContrato=" & CveContrato
'CargaDatosPresup()
CargaPresupuesto()
' MuestraPermiteAvance()
cargarBitacora()
If LblImporte.Text.ToDecimal <= 0 Then
LblImporte.Text = ObjContratos.ImporteTotal.ToString.FormatoNumero
End If
If Not IsDBNull(ObjContratos.Archivo) AndAlso ObjContratos.Archivo <> "" AndAlso ObjContratos.Archivo <> "-1" AndAlso ObjContratos.Archivo <> $"{ObjContratos.CveContrato}." Then
ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "CONTRATOS", ObjContratos.Archivo)
'A2.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CONTRATO&CveEmpresa={0}&Archivo={1}", ObjContratos.CveEmpresa, ViewState("FUrl").ToString)))
BtnDescargar.Visible = True
Else
BtnDescargar.Visible = False
A1.Visible = True
End If
Else
CveContrato = -1
Alert("El Contrato Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia)
BtnGuardar.Enabled = False
End If
Else
CveContrato = -1
Alert("Ocurrió un error al cargar el Contrato. Por favor vuelva a intentar.", TipoMensaje.MsgError)
BtnGuardar.Enabled = False
End If
UpGral.Update()
UPAFUL.Update()
UpProyecto.Update()
UpImpuestos.Update()
UpTitulos.Update()
ObjContratos.Dispose()
End Sub
Private Sub CargaContratoAddendum()
Dim ObjContratos As New ClsContratos
If ObjContratos.GetContratosAddendum(CveContrato) Then
If ObjContratos.DtResultados.Rows.Count > 0 Then
TabAddendum.Visible = True
GvAddendum.DataSource = ObjContratos.DtResultados
GvAddendum.DataBind()
End If
End If
End Sub
Private Sub CargaPresupuesto()
Dim ObjContratos As New ClsContratos
TabPres.Visible = True
If TipoContrato = 4 Then
TabPI.Visible = True
End If
If ObjContratos.GetContratosDetalle(CveContrato) Then
TmpDT = ObjContratos.DtResultados
If TmpDT.MAX("Cantidad_Original").ToString.ToEntero > 0 OrElse TmpDT.MAX("PU_Original").ToString.ToEntero > 0 Then
BtnAutorizar.Visible = False
Autorizado = True
BtnAgregarDetalle.Visible = False
AgregarInt.Visible = UsuarioActual.TienePermisoProceso(129)
End If
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1")
GvInt.DataBind()
UpGV.Update()
UpGVInsumos.Update()
UPGVInt.Update()
LbTotalGeneral.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero()
LbTotalGeneralInsumos.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero()
LbTotalGeneralInt.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero()
LblImporte.Text = "$" & TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero()
End If
End Sub
Private Sub CargarFianzas()
DivFianzas.Visible = True
Dim ObjContrato As ClsContratos = New ClsContratos()
If ObjContrato.GetContratoFianza(CveContrato, -1, "-1", "-1", UsuarioActual.CveEmpresa, -1) Then
DtTmpFianzas = ObjContrato.DtResultados
GvFianzas.DataSource = ObjContrato.DtResultados
DtTmpFianzasInicial = DtTmpFianzas.Copy()
End If
ObjContrato.Dispose()
GvFianzas.DataBind()
UpGvFianzas.Update()
End Sub
#End Region
#Region " GUARDAR "
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
Dim ObjContratos As New ClsContratos
Dim ObjInventarios As New ClsInventarios(ObjContratos.IniciaTransacSQL)
Dim TieneError = False
Dim Modificado = False
' Dim Extension = Session("FileExtension").ToString
Dim Archivo = Session("FileUpload").ToString
Dim Ruta = Session("FileFolder").ToString
Dim Minimo, Maximo, Total As Double
'If txtMinimo.Text.ToDouble > 0 Then Minimo = txtMinimo.Text.ToDouble Else Minimo = -1
'If txtMaximo.Text.ToDouble > 0 Then Maximo = txtMaximo.Text.ToDouble Else Maximo = -1
'If TxtTotal.Text.ToDouble > 0 Then Total = TxtTotal.Text.ToDouble Else Total = -1
Minimo = txtMinimo.Text.ToDouble
Maximo = txtMaximo.Text.ToDouble
Total = TxtTotal.Text.ToDouble
If DdlMoneda.SelectedIndex > 0 Then
If TxtTipoCambio.Text.Trim.Length = 0 Or TxtTipoCambio.Text.Trim.ToDouble = 0.0 Then
Alert("Cuando seleccione una moneda diferente a peso debe especificar el tipo de cambio.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
'Crear Contrato
If Not CveContrato > 0 Then
If DdlContratista.SelectedValue.ToEntero = -1 And DdlCliente.SelectedValue.ToEntero = -1 Then
Alert("Debe seleccionar con quién está haciendo el contrato. Proveedor o Cliente", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
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
If DdlContratista.SelectedValue.ToEntero = -1 And DdlCliente.SelectedValue.ToEntero = -1 Then
Alert("Debe seleccionar con quién está haciendo el contrato. Proveedor o Cliente", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
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 Not TieneError Then
' TieneError = GuardarAlmacen(ObjInventarios)
'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))
Else
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()
ObjContratos.Dispose()
End Sub
#End Region
#Region " ELIMINAR "
Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs) Handles BtnEliminar.Click
Dim objContratos As New ClsContratos
If objContratos.RemoveContrato(CveContrato, UsuarioActual.Empresa.CveEmpresa) Then
Response.Redirect("./Contratos.aspx")
Else
' Alert("Ocurrio un error al eliminar el contrato", TipoMensaje.MsgError)
End If
End Sub
#End Region
#Region " TERMINAR/CANCELAR CONTRATO "
Protected Sub LBTerminarContrato_Click(sender As Object, e As EventArgs)
Dim ObjContratos As New ClsContratos
If ObjContratos.TerminarContrato(CveContrato, 2, UsuarioActual.CveEmpresa) > 0 Then
Alert("El Contrato fue terminado Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato))
End If
ObjContratos.Dispose()
End Sub
Protected Sub LBCancelarContrato_Click(sender As Object, e As EventArgs)
Dim ObjContratos As New ClsContratos
If ObjContratos.TerminarContrato(CveContrato, 3, UsuarioActual.CveEmpresa) > 0 Then
Alert("El Contrato fue cancelado Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato))
End If
ObjContratos.Dispose()
End Sub
Protected Sub LBVigenteContrato_Click(sender As Object, e As EventArgs)
Dim ObjContratos As New ClsContratos
If ObjContratos.TerminarContrato(CveContrato, 1, UsuarioActual.CveEmpresa) > 0 Then
Alert("El Contrato fue cancelado Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato))
End If
ObjContratos.Dispose()
End Sub
#End Region
#Region " TABS "
#Region " TAB: INFORMACION GENERAL"
#Region "COMBOS - INFO GENERAL"
Private Sub CargaProyecto()
CargarCentrosDeCosto(DdlProyecto, DdlSubProyectoContrato, LblProyecto, lblsubproyecto)
trddlproyecto.Visible = LblProyecto.Visible
'If UsuarioActual.Empresa.GralSoloProyecto Then
' CargaSubProyectoContrato(-1)
' lblsubproyecto.Text = "Proyecto"
'Else
' DdlProyecto.DataSource = GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa).FiltraParametros("", "", {"CveProyecto", "Proyecto"})
' DdlProyecto.DataBind()
'End If
End Sub
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged
CargaSubProyectoContrato(DdlProyecto.SelectedValue.ToEntero)
End Sub
Protected Sub CargaSubProyectoContrato(CveProyecto As Integer)
DdlSubProyectoContrato.Items.Clear()
DdlSubProyectoContrato.DataSource = GlobalDTSubProyectos(CveProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "", {"CveSubproyecto", "SubProyecto2"})
DdlSubProyectoContrato.DataBind()
DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione un Proyecto", "-1"))
End Sub
Private Sub CargaContratista()
DdlContratista.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlContratista.DataBind()
End Sub
Private Sub CargaVendedores()
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
DdlVendedor.DataBind()
End Sub
Private Sub CargaContratoPadre()
DdlContratoPadre.Items.Clear()
DdlContratoPadre.DataSource = GlobalDTContratos.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveContratoTipo = {TipoContrato} {If(DdlCliente.SelectedValue.ToEntero > 0, $"AND CveCliente = {DdlCliente.SelectedValue}", "")} {If(CveContrato > 0, $"AND CveContrato <> {CveContrato}", "")} ")
DdlContratoPadre.DataBind()
DdlContratoPadre.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Private Sub CargaContratosEstatus()
Dim ObjContratos As New ClsContratos
ObjContratos.GetContratosEstatus(UsuarioActual.CveEmpresa)
DdlEstatus.DataSource = ObjContratos.DtResultados
DdlEstatus.DataBind()
ObjContratos.Dispose()
End Sub
Protected Sub DdlCliente_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaSucursalCliente()
CargaDireccionesEnvios(DdlCliente.SelectedValue.ToEntero)
UPPDatos.Update()
End Sub
Private Sub CargaSucursalCliente()
TrClienteSucursal.Visible = False
Dim ObjCliente As New ClsClientes()
If DdlCliente.SelectedValue.ToEntero > 0 Then
If ObjCliente.GetSucursales(DdlCliente.SelectedValue.ToEntero) Then
DdlSucursalCliente.DataSource = ObjCliente.DtResultados
If ObjCliente.DtResultados.Rows.Count > 0 Then
TrClienteSucursal.Visible = True
End If
DdlSucursalCliente.DataBind()
DdlTipoContrato.Items.Insert(0, New ListItem("Matriz", "-1"))
End If
If UsuarioActual.Empresa.CvePlataforma = 3 Then ' QUITAR
CargaCuentasEquipos()
End If
End If
ObjCliente.Dispose()
CargaContratoPadre()
UpProyecto.Update()
End Sub
#End Region
#Region " ARCHIVO "
Private Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click
DescargarArchivo()
End Sub
Private Sub DescargarArchivo()
Dim File As New FileInfo(ViewState("FUrl").ToString)
If File.Exists Then 'set appropriate headers
Response.Clear()
Response.ClearHeaders()
Response.ClearContent()
Response.AddHeader("Content-Disposition", "attachment; filename=" & TxtNumeroContrato.Text & ".pdf")
Response.AddHeader("Content-Length", File.Length.ToString())
'Response.ContentType = "text/plain"
Response.ContentType = "application/octet-stream"
Response.Flush()
' Response.TransmitFile(File.FullName)
Response.WriteFile(File.FullName)
Response.End()
'if file does not exist
Alert("Descargado Correctamente.", TipoMensaje.MsgInformacion)
Else
Alert("Ocurrio un error al descargar el archivo", TipoMensaje.MsgAdvertencia, "window.close()")
End If 'nothing in the URL as HTTP GET
End Sub
Protected Sub BtnGuardarArchivo_Click1(sender As Object, e As EventArgs) Handles BtnGuardarArchivo.Click
Dim FileExtension As String = "-1"
Dim Filesgral As List(Of Archivo) = Anexo.getfiles().Archivos
Dim Filename As String = ""
Dim folderContratosPath As String = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos")
If Not Directory.Exists(folderContratosPath) Then
Directory.CreateDirectory(folderContratosPath)
End If
If Not Directory.Exists(Path.Combine(folderContratosPath, "Temp")) Then
Directory.CreateDirectory(Path.Combine(folderContratosPath, "Temp"))
End If
For Each fileItem As Archivo In Filesgral
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
Session("FileExtension") = FileExtension
Dim tempArray() As String
tempArray = fileItem.filename.ToString().Split("-".ToCharArray())
ViewState("extencion") = FileExtension
ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", fileItem.filename)
File.Move(fileItem.FileUrl, ViewState("FUrl").ToString)
TxtArchivo.Text = tempArray(1)
' imgFileOk.Visible = True
'ImgArchivo.Src = "/imagenes/accept.png"
Next
UPAFUL.Update()
RegistraScript("$('#ModalUpload').modal('hide')", "hidemodal1")
A1.Visible = True
If Not FileExtension = "-1" Then
BtnDescargar.Visible = True
End If
End Sub
#End Region
#End Region
#Region " TAB: PRESUPUESTOS "
#Region "C O M B O S - PRESUPUESTOS"
Private Function isWhitFamily() As Boolean
Return (UsuarioActual.CveEmpresa = 66)
End Function
Private Sub CargaClasificaciones()
DdlClasificacionAdd.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) ' GlobalDTClasificacionesPresupuestos(UsuarioActual.CveEmpresa)
DdlClasificacionAdd.DataBind()
DdlClasificacionAdd.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlClasificacionAddInsumos.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) ' GlobalDTClasificacionesPresupuestos(UsuarioActual.CveEmpresa)
DdlClasificacionAddInsumos.DataBind()
DdlClasificacionAddInsumos.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlClasificacionInt.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) 'GlobalDTSubFamilias(UsuarioActual.CveEmpresa)
DdlClasificacionInt.DataBind()
DdlClasificacionInt.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
#Region " FUNCIONALIDAD 105 "
Private Sub CargaPS()
DdlProductows.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If Not DdlProductows.UsaWebService AndAlso CType(DdlProductows.DataSource, DataTable) Is Nothing Then
DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlProductows.DataBind()
Else
DdlProductows.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionAdd.SelectedValue)
End If
ElProductoChange()
End Sub
Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductows.selectedindexchange
ElProductoChange()
End Sub
Private Sub ElProductoChange()
DdlUM.Items.Clear()
DdlUM.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductows.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa)
DdlUM.DataBind()
UpTitulos.Update()
End Sub
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacionAdd.SelectedIndexChanged
ChangeDdlProducto()
End Sub
Private Sub ChangeDdlProducto()
If UsuarioActual.Empresa.Funcionalidad(105) = "" Then
DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionAdd.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo")
DdlProductows.DataBind()
DdlProductows.ddl.Items.Insert(0, New ListItem("Seleccione", "-1"))
Else
DdlProductows.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionAdd.SelectedValue)
DdlProductows.SelectedText = "Seleccione"
DdlProductows.SelectedValue = "-1"
End If
End Sub
Private Sub CargaPSInsumos()
DdlProductowsInsumos.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If Not DdlProductowsInsumos.UsaWebService AndAlso CType(DdlProductowsInsumos.DataSource, DataTable) Is Nothing Then
DdlProductowsInsumos.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlProductowsInsumos.DataBind()
End If
ElProductoChangeInsumos()
End Sub
Protected Sub DdlProductoInsumos_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductowsInsumos.selectedindexchange
ElProductoChangeInsumos()
End Sub
Private Sub ElProductoChangeInsumos()
DdlUMInsumos.Items.Clear()
DdlUMInsumos.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductowsInsumos.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa)
DdlUMInsumos.DataBind()
UpTitulos.Update()
End Sub
Protected Sub DdlClasificacionInsumos_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacionAddInsumos.SelectedIndexChanged
ChangeDdlProductoInsumos()
End Sub
Private Sub ChangeDdlProductoInsumos()
If UsuarioActual.Empresa.Funcionalidad(105) = "" Then
'Dim filtro As String = ""
'If Not (DdlClasificacionAddInsumos.SelectedValue = "-1") Then
' If isWhitFamily() Then
' filtro = String.Format("CveSubFamilia={0}", DdlClasificacionAddInsumos.SelectedValue)
' Else
' filtro = String.Format("CveClasificacion={0}", DdlClasificacionAddInsumos.SelectedValue)
' End If
'End If
DdlProductowsInsumos.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionAddInsumos.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo")
DdlProductowsInsumos.DataBind()
DdlProductowsInsumos.ddl.Items.Insert(0, New ListItem("Seleccione", "-1"))
Else
'If isWhitFamily() Then
' DdlProductowsInsumos.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacionAddInsumos.SelectedValue)
'Else
DdlProductowsInsumos.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacionAddInsumos.SelectedValue)
'End If
End If
End Sub
#End Region
#End Region
#Region " TAB PRESUPUESTOS VENTAS "
Private Sub CargaGVPresupuestos(DtTemp As DataTable)
Gv.DataSource = DtTemp
DtPresupuestos = DtTemp
Gv.DataBind()
If CveTipoContrato = 25 Then
Gv.Columns(0).Visible = False
Gv.Columns(2).Visible = False
Gv.Columns(3).Visible = False
Gv.Columns(9).Visible = False
End If
'If (Gv.Rows.Count > 0) Then
' Gv.UseAccessibleHeader = True
' Gv.HeaderRow.TableSection = TableRowSection.TableHeader
' RegistraScript("OrdenarGVPresupuestos();")
'End If
UpGV.Update()
End Sub
Protected Sub BtnAutorizar_Click(sender As Object, e As EventArgs) Handles BtnAutorizar.Click
Dim pinterno = TmpDT.SUM("Total", "CveTipoPresupuesto=1").ToString.ToDouble
Dim pventas = TmpDT.SUM("Total", "CveTipoPresupuesto=2").ToString.ToDouble
If (pinterno < pventas) Then
Dim objContrato As New ClsContratos
If objContrato.AutorizarContratos(CveContrato, UsuarioActual.CveUsuario) Then
BtnAutorizar.Visible = False
Autorizado = True
Alert("Contrato Autorizado", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato))
End If
objContrato.Dispose()
Else
Alert("el presupuesto de ventas debe ser mayor al presupuesto interno!", TipoMensaje.MsgAdvertencia)
End If
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()
End Sub
Private Sub CargaDatosPresup()
Dim ContratosSecciones As New ClsContratos()
If ContratosSecciones.GetContratosSecciones(-1, CveContrato, -1, -1, -1, UsuarioActual.CveEmpresa) Then
'If ContratosSecciones.GetContratosSecciones(-1, DdlEstatus.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlContrato.SelectedValue.ToEntero, -1, -1, FechaI, FechaF) Then
DtDatos = ContratosSecciones.DtResultados
' DtDatos.Rows.RemoveAt(0)
CargaGVPresupuestos(DtDatos)
LblImporte.Text = "$" & DtDatos.MAX("Total").FormatoNumero()
Else
Gv.DataSource = Nothing
End If
ContratosSecciones.Dispose()
UpGral.Update()
End Sub
#Region "GV PRESUPUESTOS"
Protected Sub EstClick(sender As Object, e As System.EventArgs)
'Get the button that raised the event
Dim btn As CheckBox = DirectCast(sender, CheckBox)
Dim gvr As GridViewRow = DirectCast(btn.NamingContainer, GridViewRow)
Dim CveContratoDetalle As Integer = gvr.DataKey("CveContratoDetalle").ToString.ToEntero
Dim objContrato As New ClsContratos
If objContrato.UpdateContratosDetalleEstimacion(CveContratoDetalle, IIf(btn.Checked, 1, 0).ToString.ToEntero) Then
Dim row = TmpDT.Select(String.Format("CveContratoDetalle={0}", CveContratoDetalle))(0)
row("PermitirEstimacion") = IIf(btn.Checked, 1, 0).ToString.ToEntero
Alert("Se ha permitido estimar", TipoMensaje.MsgInformacion)
Else
Alert("no se pudo permitir avance")
End If
objContrato.Dispose()
End Sub
Protected Sub AvaClick(sender As Object, e As System.EventArgs)
'Get the button that raised the event
Dim btn As CheckBox = DirectCast(sender, CheckBox)
Dim gvr As GridViewRow = DirectCast(btn.NamingContainer, GridViewRow)
Dim CveContratoDetalle As Integer = gvr.DataKey("CveContratoDetalle").ToString.ToEntero
Dim objContrato As New ClsContratos
If objContrato.UpdateContratosDetalleAvance(CveContratoDetalle, IIf(btn.Checked, 1, 0).ToString.ToEntero) Then
Dim row = TmpDT.Select(String.Format("CveContratoDetalle={0}", CveContratoDetalle))(0)
row("PermitirAvance") = IIf(btn.Checked, 1, 0).ToString.ToEntero
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
Alert("Se ha permitido levantar avance", TipoMensaje.MsgInformacion)
Else
Alert("no se pudo permitir avance", TipoMensaje.MsgAdvertencia)
End If
objContrato.Dispose()
End Sub
Protected Sub GV_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles Gv.RowDataBound
If e.Row.RowIndex > -1 Then
e.Row.FCCheckBox("CHKPAvance").Visible = Autorizado
'e.Row.FCCheckBox("CHKPEstimacion").Visible = Autorizado
If UsuarioActual.TienePermisoProceso(124) Then
e.Row.FCCheckBox("CHKPAvance").Enabled = True
End If
If e.Row.DBCampo("PermitirAvance").ToString = "1" Then
e.Row.FCCheckBox("CHKPAvance").Checked = True
' If UsuarioActual.TienePermisoProceso(125) Then : e.Row.FCCheckBox("CHKPEstimacion").Enabled = True : End If
End If
If e.Row.DBCampo("PermitirEstimacion").ToString = "1" Then
' e.Row.FCCheckBox("CHKPEstimacion").Checked = True
End If
If Autorizado Then
e.Row.FCLinkButton("imgE").Visible = False
e.Row.FCLinkButton("imgD").Visible = False
End If
If CveTipoContrato = 25 Then
e.Row.Cells(1).Width = Unit.Pixel(10)
e.Row.Cells(6).Width = Unit.Pixel(250)
End If
End If
If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
e.Row.FCDropDownList("DdlUMEdit").DataSource = GlobalDTProductosServiciosEquivalencias(e.Row.DataKey("CvePS").ToString.ToEntero, -1, UsuarioActual.CveEmpresa)
e.Row.FCDropDownList("DdlUMEdit").DataBind()
e.Row.FCDropDownList("DdlUMEdit").SelectedValue = e.Row.DataKey("CveUM")
End If
End Sub
Protected Sub GV_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles Gv.RowEditing
Gv.EditIndex = e.NewEditIndex
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
End Sub
Protected Sub Gv_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles Gv.RowUpdating
Dim Cantidad, PU As Double : Dim CvePS, CveContratoDetalle, CveUM As Integer
Dim NoIdentificacion As String = ""
Dim OCInterna As String = ""
Dim LimitarCantidad As Boolean
Dim Observaciones As String = ""
CveContratoDetalle = Gv.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero
Cantidad = Gv.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.Trim.ToDouble
PU = Gv.Rows(e.RowIndex).FCTextBox("TxtPU").Text.Trim.ToDouble
CvePS = Gv.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero
CveUM = Gv.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedValue.ToEntero
NoIdentificacion = Gv.Rows(e.RowIndex).FCTextBox("TxtNoIdentificacion").Text.ToString
OCInterna = Gv.Rows(e.RowIndex).FCTextBox("TxtOCInternaEdit").Text.ToString
LimitarCantidad = Gv.Rows(e.RowIndex).FCCheckBox("ChkLimitarCantidad").Checked
Observaciones = Gv.Rows(e.RowIndex).FCTextBox("TxtObservacion").Text.ToString
Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0)
Dim LimitarCantidadValidator As Boolean = row("LimitarCantidad").ToString = "True"
If row("CantidadContratada").ToString.ToEntero <> Cantidad OrElse row("PU").ToString.ToEntero <> PU OrElse CveUM <> row("CveUM").ToString.ToEntero OrElse row("NoIdentificacion").ToString <> NoIdentificacion OrElse row("OCInterna").ToString <> OCInterna OrElse LimitarCantidadValidator <> LimitarCantidad Then
Dim ObjContratos As New ClsContratos
If ObjContratos.UpdateContratosDetalle(CveContratoDetalle, 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") = Gv.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedItem.Text
row("NoIdentificacion") = NoIdentificacion
row("OCInterna") = OCInterna
row("LimitarCantidad") = LimitarCantidad
row("Observacion") = Observaciones
TmpDT.AcceptChanges()
Alert("Cambios realizados correctamente.", TipoMensaje.MsgInformacion)
Else
Alert("Error al Actualizar Detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
Else
Alert("Cambios realizados correctamente")
End If
Gv.EditIndex = -1
LbTotalGeneral.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero
LblImporte.Text = LbTotalGeneral.Text
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
End Sub
Protected Sub GV_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles Gv.RowCancelingEdit
Gv.EditIndex = -1
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
End Sub
Protected Sub GV_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles Gv.RowDeleting
Dim ObjContratos As New ClsContratos
Dim DbRow As DataRow = Nothing
Dim CveContratoDetalle As Integer = Gv.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero
DbRow = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0)
If Autorizado Then
Dim msj As String = String.Format("Se eliminaron {0} {1} producto {2} con el precio {3}", DbRow("Cantidad"), DbRow("UM"), DbRow("PS"), DbRow("PU"))
guardarBitacora(msj)
End If
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
Else
Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
End Sub
Protected Sub GV_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles Gv.RowCommand
If e.CommandName = "Sel" Then
' Seleccionado = e.CommandArgument.ToString
Gv.SelectRow(e.CommandArgument.ToString.ToEntero - 1)
End If
End Sub
#End Region
#End Region
#Region " TAB PRESUPUESTOS INSUMOS "
Private Sub CargaGVPresupuestosInsumos(DtTemp As DataTable)
GvInsumos.DataSource = DtTemp
DtSuministros = DtTemp
GvInsumos.DataBind()
'If (GvInsumos.Rows.Count > 0) Then
' GvInsumos.UseAccessibleHeader = True
' GvInsumos.HeaderRow.TableSection = TableRowSection.TableHeader
' RegistraScript("OrdenarGVPresupuestosInsumos();")
'End If
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)
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"
Protected Sub GVInsumos_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GvInsumos.RowDataBound
If e.Row.RowIndex > -1 Then
e.Row.FCCheckBox("CHKPAvance").Visible = Autorizado
'e.Row.FCCheckBox("CHKPEstimacion").Visible = Autorizado
If UsuarioActual.TienePermisoProceso(124) Then
e.Row.FCCheckBox("CHKPAvance").Enabled = True
End If
If e.Row.DBCampo("PermitirAvance").ToString = "1" Then
e.Row.FCCheckBox("CHKPAvance").Checked = True
' If UsuarioActual.TienePermisoProceso(125) Then : e.Row.FCCheckBox("CHKPEstimacion").Enabled = True : End If
End If
If e.Row.DBCampo("PermitirEstimacion").ToString = "1" Then
' e.Row.FCCheckBox("CHKPEstimacion").Checked = True
End If
If Autorizado Then
e.Row.FCLinkButton("imgE").Visible = False
e.Row.FCLinkButton("imgD").Visible = False
End If
End If
If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
e.Row.FCDropDownList("DdlUMEdit").DataSource = GlobalDTProductosServiciosEquivalencias(e.Row.DataKey("CvePS").ToString.ToEntero, -1, UsuarioActual.CveEmpresa)
e.Row.FCDropDownList("DdlUMEdit").DataBind()
e.Row.FCDropDownList("DdlUMEdit").SelectedValue = e.Row.DataKey("CveUM")
End If
End Sub
Protected Sub GVInsumos_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvInsumos.RowEditing
GvInsumos.EditIndex = e.NewEditIndex
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
End Sub
Protected Sub GvInsumos_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvInsumos.RowUpdating
Dim Cantidad, PU As Double
Dim CvePS, CveContratoDetalle, CveUM As Integer
Dim NoIdentificacion As String = ""
Dim LimitarCantidad As Boolean
CveContratoDetalle = GvInsumos.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero
Cantidad = GvInsumos.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.Trim.ToDouble
PU = GvInsumos.Rows(e.RowIndex).FCTextBox("TxtPU").Text.Trim.ToDouble
CvePS = GvInsumos.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero
CveUM = GvInsumos.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedValue.ToEntero
NoIdentificacion = GvInsumos.Rows(e.RowIndex).FCTextBox("TxtNoIdentificacion").Text.ToString
LimitarCantidad = GvInsumos.Rows(e.RowIndex).FCCheckBox("ChkLimitarCantidad").Checked
Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0)
If row("Cantidad").ToString.ToEntero <> Cantidad OrElse row("PU").ToString.ToEntero <> PU OrElse CveUM <> row("CveUM").ToString.ToEntero OrElse row("NoIdentificacion").ToString <> NoIdentificacion OrElse (row("LimitarCantidad").ToString = "True") <> LimitarCantidad Then
Dim ObjContratos As New ClsContratos
If ObjContratos.UpdateContratosDetalle(CveContratoDetalle, 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") = GvInsumos.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedItem.Text
row("NoIdentificacion") = NoIdentificacion
row("LimitarCantidad") = LimitarCantidad
TmpDT.AcceptChanges()
Alert("Cambios realizados correctamente.", TipoMensaje.MsgInformacion)
Else
Alert("Error al Actualizar Detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
Else
Alert("Cambios realizados correctamente")
End If
GvInsumos.EditIndex = -1
LbTotalGeneralInsumos.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero
'LblImporte.Text = LbTotalGeneral.Text
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
End Sub
Protected Sub GVInsumos_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvInsumos.RowCancelingEdit
GvInsumos.EditIndex = -1
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
End Sub
Protected Sub GVInsumos_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvInsumos.RowDeleting
Dim ObjContratos As New ClsContratos
Dim DbRow As DataRow = Nothing
Dim CveContratoDetalle As Integer = GvInsumos.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero
DbRow = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0)
If Autorizado Then
Dim msj As String = String.Format("Se eliminaron {0} {1} producto {2} con el precio {3}", DbRow("Cantidad"), DbRow("UM"), DbRow("PS"), DbRow("PU"))
guardarBitacora(msj)
End If
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
Else
Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
End Sub
Protected Sub GVInsumos_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvInsumos.RowCommand
If e.CommandName = "Sel" Then
' Seleccionado = e.CommandArgument.ToString
GvInsumos.SelectRow(e.CommandArgument.ToString.ToEntero - 1)
End If
End Sub
#End Region
#End Region
#Region " TAB PRESUPUESTOS INTERNOS"
Protected Sub AgregarInt_Click(sender As Object, e As EventArgs) Handles AgregarInt.Click
Dim Row As DataRow = TmpDT.NewRow()
Row("Cantidad") = TxtCantidadInt.Text.ToDouble.FormatoNumero
Row("CveUM") = DdlUMInt.SelectedValue.ToEntero
Row("UM") = DdlUMInt.SelectedItem
Row("CveClasificacion") = DdlClasificacionInt.SelectedValue
Row("Clasificacion") = DdlClasificacionInt.SelectedItem
Row("CvePS") = HFProductoInt.Value
Row("PS") = HFTProductoInt.Value
Row("PU") = TxtPUInt.Text.ToDouble.FormatoNumero
Row("Total") = (TxtCantidadInt.Text.ToDouble * TxtPUInt.Text.ToDouble).FormatoNumero
Row("CveTipoPresupuesto") = 1
Row("NoIdentificacion") = TxtNoIdentificacionv.Text.Trim
Row("LimitarCantidad") = ChkLimitar.Checked
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
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
GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1")
GvInt.DataBind()
HFProductoInt.Value = ""
HFTProductoInt.Value = ""
TxtCantidadInt.Text = ""
TxtPUInt.Text = ""
DdlClasificacionInt.SelectedValue = "-1"
LbTotalGeneralInt.Text = (LbTotalGeneralInt.Text.ToDouble + TotalRow).ToString.FormatoNumero
TxtCantidad.Focus()
UPGVInt.Update()
Else
'Alert("No se pudo agregar el detalle")
End If
ObjContratos.Dispose()
End Sub
#Region "GVInternos"
Protected Sub GVInt_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvInt.RowEditing
GvInt.EditIndex = e.NewEditIndex
GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1")
GvInt.DataBind()
UPGVInt.Update()
End Sub
Protected Sub GvInt_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvInt.RowUpdating
Dim Cantidad, PU As Double : Dim CvePS, CveContratoDetalle, CveUM As Integer
CveContratoDetalle = GvInt.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero
Dim NoIdentificacion As String = ""
Dim LimitarCantidad As Boolean
'Row("NoIdentificacion") = txtNoIdentificacion.Text.Trim
Cantidad = GvInt.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.Trim.ToDouble
PU = GvInt.Rows(e.RowIndex).FCTextBox("TxtPU").Text.Trim.ToDouble
LimitarCantidad = False
CvePS = GvInt.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero
CveUM = GvInt.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedValue.ToEntero
'NoIdentificacion = GvInt.Rows(e.RowIndex).FCDropDownList("NoIdentificacion").ToString
Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0)
Dim c1 = row("Cantidad").ToString.ToEntero
Dim p1 = row("PU").ToString.ToEntero
Dim cvum1 = row("CveUM").ToString.ToEntero
If c1 <> Cantidad OrElse p1 <> PU OrElse CveUM <> cvum1 Then
Dim ObjContratos As New ClsContratos
If ObjContratos.UpdateContratosDetalle(CveContratoDetalle, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, Nothing, 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"), row("PU").ToString, Cantidad, PU)
guardarBitacora(msj)
End If
row("Cantidad") = Cantidad
row("PU") = PU
row("Total") = Cantidad * PU
row("CveUM") = CveUM
row("UM") = GvInt.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedItem.Text
Else
End If
ObjContratos.Dispose()
Else
Alert("No realizaste ningun Cambio")
End If
GvInt.EditIndex = -1
GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1")
GvInt.DataBind()
LbTotalGeneralInt.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero
End Sub
Protected Sub GVInt_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvInt.RowCancelingEdit
GvInt.EditIndex = -1
GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1")
GvInt.DataBind()
UPGVInt.Update()
End Sub
Protected Sub GVInt_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvInt.RowDeleting
Dim ObjContratos As New ClsContratos
Dim DbRow As DataRow = Nothing
Dim CveContratoDetalle As Integer = GvInt.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero
If ObjContratos.RemoveContratosDetalle(CveContratoDetalle, CveContrato) Then
DbRow = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0)
If Autorizado Then
Dim msj As String = String.Format("Se eliminaron {0} {1} {2} con el precio {3:C2}", DbRow("Cantidad"), DbRow("UM"), DbRow("PS"), DbRow("PU"))
guardarBitacora(msj)
End If
TmpDT.Rows.Remove(DbRow)
GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1")
GvInt.DataBind()
UPGVInt.Update()
LbTotalGeneralInt.Text = GvInt.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLabel("LtTotal").Text.ToDouble).ToString.FormatoNumero
Else
Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgAdvertencia)
End If
ObjContratos.Dispose()
End Sub
Protected Sub GVInt_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvInt.RowCommand
If e.CommandName = "Sel" Then
' Seleccionado = e.CommandArgument.ToString
GvInt.SelectRow(e.CommandArgument.ToString.ToEntero - 1)
End If
End Sub
#End Region
#End Region
#End Region
#Region " TAB: REPORTE AVANCES "
Private Sub CargaDatosAvance()
If CveContrato <= 0 Then
Exit Sub
End If
TabReporteAvance.Visible = True
lbImprimirAvance.Visible = True
Dim Modalidad = IfNull(Request("Tipo"), 1, 2)
If Modalidad.ToString.ToEntero = 2 Then
Tab.ActiveTabIndex = 2
End If
Dim ObjContratos As New ClsContratos
If ObjContratos.GetReporteContratosAvancesDetalleCP(CveContrato, UsuarioActual.CveEmpresa) Then
GvDatosAvance.DataSource = ObjContratos.DtResultados
SumaAvance = ObjContratos.DtResultados.SUM("AvanceImporte", "CveClasificacion IS NULL")
SumaUtilidad = ObjContratos.DtResultados.SUM("AvanceUtilidad", "CveClasificacion IS NULL")
DtAvance = ObjContratos.DtResultados
Else
Alert("Ocurrió un Error al obtener el Reporte de Avances. Por favor vuelva a intentar", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
GvDatosAvance.DataBind()
If (GvDatosAvance.Rows.Count > 0) Then
GvDatosAvance.UseAccessibleHeader = True
GvDatosAvance.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
UpGral.Update()
End Sub
Protected Sub GvDatosAvance_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatosAvance.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CveClasificacion").ToString.ToEntero = 0 Then
e.Row.CssClass = "Totales white"
ElseIf e.Row.DBCampo("CvePS").ToString.ToEntero = 0 Then
e.Row.CssClass = "SubTotales"
End If
Dim Liga1 = $"{e.Row.DBCampo("CveClasificacion").ToEntero}|{e.Row.DBCampo("Clasificacion")}|{e.Row.DBCampo("CvePS").ToEntero}|{e.Row.DBCampo("CodigoPS")}|1"
e.Row.FCLinkButton("LBAvanceCantidad").CommandArgument = Liga1
e.Row.FCLinkButton("LBAvanceImporte").CommandArgument = Liga1
Dim Liga2 = $"{e.Row.DBCampo("CveClasificacion").ToEntero}|{e.Row.DBCampo("Clasificacion")}|{e.Row.DBCampo("CvePS").ToEntero}|{e.Row.DBCampo("CodigoPS")}|2"
e.Row.FCLinkButton("LBAvanceXFacturarCantidad").CommandArgument = Liga2
e.Row.FCLinkButton("LBAvanceXFacturarImporte").CommandArgument = Liga2
End If
End Sub
Protected Sub MuestaModalVentasAvance(sender As Object, e As EventArgs)
Dim Btn = CType(sender, LinkButton)
Dim Parametros = Btn.CommandArgument.Split("|"c)
Dim ObjContratos As New ClsContratos
If ObjContratos.GetVentasAvance(CveContrato, If(Parametros(0).ToEntero > 0, Parametros(0).ToEntero, -1), If(Parametros(2).ToEntero > 0, Parametros(2).ToEntero, -1), If(Parametros(4).ToEntero > 0, Parametros(4).ToEntero, -1)) Then
GvDatosVentasAvance.DataSource = ObjContratos.DtResultados
RegistraScript("$('#ModalVentasAvance').modal('show');RecargaAvances = true;")
Else
Alert("Ocurrió un error al obtener el Listado de Ventas/Remisiones de Avance. Por favor vuelva a intentar", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
GvDatosVentasAvance.DataBind()
LbTituloModalVentasAvance.Text = If(Parametros(4).ToEntero = 1, "Ventas de Avance", "Remisiones de Avance")
LbClasificacionVentasAvance.Text = Parametros(1)
LbPSVentasAvance.Text = If(Parametros(2).ToEntero > 0, Parametros(3), "")
UpVentasAvance.Update()
End Sub
#End Region
#Region " TAB: REPORTE AVANCES POR DOCUMENTO "
Protected Sub RBLTipoDocto_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaDatosAvancePorDocumento()
End Sub
Private Sub CargaDatosAvancePorDocumento()
If CveContrato <= 0 Then
Exit Sub
End If
Dim ObjContratos As New ClsContratos
If ObjContratos.GetContratosAvancePorDocumento(CveContrato, RBLTipoDocto.SelectedValue, UsuarioActual.CveEmpresa) Then
GVAvanceXDocumento.DataSource = ObjContratos.DtResultados
DtAvanceDocumento = ObjContratos.DtResultados
If DtAvanceDocumento.Rows.Count > 0 Then
LBImprimir.Visible = True
End If
LBImprimirInformacionG.Visible = True
Else
Alert("Ocurrió un error al obtener el Reporte de Avances por Documento. Por favor vuelva a intentar", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
GVAvanceXDocumento.DataBind()
If (GVAvanceXDocumento.Rows.Count > 0) Then
GVAvanceXDocumento.UseAccessibleHeader = True
GVAvanceXDocumento.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGVPorDocumento();")
End If
UpGral.Update()
End Sub
Private Sub GVAvanceXDocumento_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVAvanceXDocumento.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If Not e.Row.DBCampo("CveVenta").ToEntero > 0 Then
e.Row.Cells(2).Text = "TOTAL: "
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right
e.Row.Cells(0).Text = e.Row.DBCampo("Cantidad").FormatoNumero(0)
e.Row.CssClass = "Totales"
End If
End If
End Sub
#End Region
#Region " TAB: CONTRATO GASTOS "
Private Sub MandaCorreo(Para As String, Asunto As String, Body As String)
Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para)
Dim Mail As New ClsSisMail()
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body)
End Sub
Protected Sub EnvioCorreo(Dr As DataRow)
Dim Body As String = GeneraCorreoContratoGasto(Dr)
Dim Asunto As String = $"Se agrego un gasto en el {LtlTitulo.Text}"
Dim Correo As String = ""
If UsuarioActual.CveEmpresa = 72 Then
Correo = "anamartinez@compuproveedores.com;benjamincarrillo@compuproveedores.com"
Else
Correo = "signotificaciones@adssistemas.mx"
End If
Try
Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo(Correo, Asunto, Body))
Hilo.Start()
Catch ex As Exception
OnError("Ocurrió error al mandar MAIL", ex)
End Try
End Sub
Public Function GeneraCorreoContratoGasto(Dr As DataRow) As String
Dim strBody As New StringBuilder
strBody.Append("<html xmlns=""http://www.w3.org/1999/xhtml""> ")
strBody.Append("<head> ")
strBody.Append(" <style type=""text/css""> ")
strBody.Append(" body ")
strBody.Append(" { ")
strBody.Append(" margin:0px; ")
strBody.Append(" padding:0px 0px 0px 0px; ")
strBody.Append(" font-family: Verdana, Arial, Helvetica, sans-serif; ")
strBody.Append(" font-size: 10px; ")
strBody.Append(" background-color:#F0F0F0; ")
strBody.Append(" } ")
strBody.Append(" a.Texto ")
strBody.Append(" { ")
strBody.Append(" font-size:11px; ")
strBody.Append(" background-color:#F7F6F3; ")
strBody.Append(" text-decoration:none; ")
strBody.Append(" font-weight:bold; ")
strBody.Append(" } ")
strBody.Append(" .Texto ")
strBody.Append(" { ")
strBody.Append(" background-color:#F7F6F3; color:Black; font-family:Verdana; font-size:10px; text-align:left; vertical-align:middle; height:20px;")
strBody.Append(" } ")
strBody.Append(" .TextoAlterno ")
strBody.Append(" { ")
strBody.Append(" background-color:White; color:Black; font-family:Verdana; font-size:10px; text-align:left; ")
strBody.Append(" vertical-align:middle; height:20px;")
strBody.Append(" } ")
strBody.Append(" .BarraIdentidad ")
strBody.Append(" { ")
strBody.Append(" color:#FFFFFF; ")
strBody.Append(" background:#F0F0F0; ")
strBody.Append(" font-weight:bold; ")
strBody.Append(" font-size:19px; ")
strBody.Append(" font-style:oblique; ")
strBody.Append(" } ")
strBody.Append(" .Titulos ")
strBody.Append(" { ")
strBody.Append(" background-color: Gray;")
strBody.Append(" color:White; ")
strBody.Append(" font-family:Verdana; font-size:12px; text-align:center; ")
strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ")
strBody.Append(" text-decoration:none; ")
strBody.Append(" } ")
strBody.Append(" .Contenido2 ")
strBody.Append(" { ")
strBody.Append(" background-color: White;")
strBody.Append(" font-family:Verdana; font-size:12px; text-align:left; ")
strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ")
strBody.Append(" text-decoration:none; ")
strBody.Append(" } ")
strBody.Append(" .Verde {color: #00CC00;} ")
strBody.Append(" .Negro {color: #000000;} ")
strBody.Append(" .Rojo {color: #FF0000;} ")
strBody.Append(" </style> ")
strBody.Append("</head> ")
strBody.Append("<body> ")
strBody.Append("<div class='Contenido2' style='display: table!important'>")
strBody.AppendFormat(" <div id=""C_divOP"" style=""width: 800px""> <fieldset> <legend><b>Datos {0}</b></legend> ", "del contrato")
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td style=""width: 90px""> No. Contrato:</td><td colspan=""3""> <a href=" + "http://sig.adssistemas.mx/" + "Contratos/Contrato.aspx?CveContrato=" + CveContrato.ToString + "> <b>" + Dr("NumeroContrato").ToString + "</b><a/></td>")
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Descripcion:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", Dr("DescripcionContrato").ToString)
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Cliente:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", Dr("NombreComercial").ToString)
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Monto Adjudicado:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", Dr("Monto").ToString.FormatoNumero)
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>SubProyecto:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", Dr("SubProyectoContrato"))
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Fecha Inicio:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", Dr("FechaInicial"))
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Fecha Final:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", Dr("FechaFinal"))
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Avance:</td><td><b>{0}%</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", Dr("ContratoAvance").ToString.FormatoNumero)
strBody.Append(" </tr> ")
strBody.Append(" </table> ")
strBody.Append(" </fieldset> ")
strBody.Append(" </div> ")
strBody.AppendFormat(" <div id=""C_divOC"" style=""width: 300px""> <fieldset> <legend><b>Datos {0}</b></legend> ", "del gasto")
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Descripción:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", TxtDescripcion.Text)
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Importe:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", TxtImporteC.Text.FormatoNumero)
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Fecha:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", TxtFecha.Text.ToDate.ToShortDateString)
strBody.Append(" </tr> ")
strBody.Append(" </table> ")
strBody.Append(" </fieldset> ")
strBody.Append(" </div> ")
strBody.Append(" <br> ")
strBody.AppendFormat("<a href={0}Contratos/Contrato.aspx?CveContrato={1}> Ir al contrato <a/>", "http://sig.adssistemas.mx/", CveContrato)
strBody.Append("</div>")
strBody.Append("</body></html>")
Return strBody.ToString
End Function
Protected Sub LBAgregar_Click(sender As Object, e As EventArgs) Handles LBAgregar.Click
Dim ObjContrato As New ClsContratos
If ObjContrato.AddContratoGasto(CveContrato, TxtDescripcion.Text, TxtImporteC.Text.ToDecimal, TxtFecha.Text.ToDate, UsuarioActual.CveUsuario) Then
MensajeAlert = New StringBuilder
MensajeAlert.AppendFormat("El Gasto del contrato se guardó correctamente.")
MensajeAlert.AppendFormat("<br><ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Gasto</a></li></ul><br/>", Encripta(String.Format("OP=CONG&CVECONTRATO={0}&CVECONTRATOGASTO={1}", CveContrato, ObjContrato.CveContratoGasto)))
If ObjContrato.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then
If ObjContrato.DtResultados.Rows.Count > 0 Then
EnvioCorreo(ObjContrato.DtResultados.Rows(0))
End If
End If
TxtDescripcion.Text = ""
TxtImporteC.Text = ""
TxtFecha.Text = ""
Alert(MensajeAlert.ToString, TipoMensaje.MsgInformacion)
CargaGVGastos()
RegistraScript("$('#ModalAgregarGastos').modal('hide');")
MensajeAlert = Nothing
End If
ObjContrato.Dispose()
End Sub
Private Sub CargaGVGastos()
Dim objContrato As New ClsContratos
If objContrato.GetContratoGastos(CveContrato) Then
DtGastos = objContrato.DtResultados
GvContratosGastos.DataSource = DtGastos
SumaGasto = objContrato.DtResultados.SUM("Importe", "CveContratoGasto IS NULL")
Else
GvContratosGastos.DataSource = Nothing
End If
objContrato.Dispose()
GvContratosGastos.DataBind()
If GvContratosGastos.Rows.Count > 0 Then
GvContratosGastos.HeaderRow.CssClass = "SinColor"
LBImprimirGastos.Visible = True
End If
UpContratoGasto.Update()
End Sub
Protected Sub GvContratoGastos_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GvContratosGastos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CveContrato").ToString.ToEntero = 0 Or e.Row.DBCampo("CveVenta").ToString.ToEntero > 0 Then
If e.Row.DBCampo("CveContrato").ToString.ToEntero = 0 Then e.Row.CssClass = "SubTotales" : e.Row.Cells(0).Text = e.Row.DBCampo("Cantidad").FormatoNumero(0)
e.Row.FCLinkButton("imgE").Visible = False
e.Row.FCLinkButton("imgD").Visible = False
e.Row.FCLinkButton("LnkDescargar").Visible = False
Else
Dim lb As LinkButton = CType(e.Row.FindControl("LnkDescargar"), LinkButton)
ScriptManager.GetCurrent(Me).RegisterAsyncPostBackControl(lb)
End If
End If
End Sub
Protected Sub GvContratoGastos_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) Handles GvContratosGastos.RowDeleting
Dim objContrato As New ClsContratos
If objContrato.RemoveContratoGasto(GvContratosGastos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then
GvContratosGastos.EditIndex = -1
Alert("Se eliminó correctamente el gasto del contrato")
CargaGVGastos()
End If
objContrato.Dispose()
End Sub
Protected Sub GvContratosGastos_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles GvContratosGastos.RowEditing
GvContratosGastos.EditIndex = e.NewEditIndex
CargaGVGastos()
End Sub
Protected Sub GvContratosGastos_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) Handles GvContratosGastos.RowUpdating
Dim objContrato As New ClsContratos
Dim CveContratoGasto As Integer = GvContratosGastos.DataKeys(e.RowIndex).Value.ToString.ToEntero
Dim Observaciones As String = GvContratosGastos.Rows(e.RowIndex).FCTextBox("TxtDescripcion").Text.Trim
Dim Importe As Decimal = GvContratosGastos.Rows(e.RowIndex).FCTextBox("TxtImporteC").Text.Trim.ToDecimal
Dim Fecha As Date = GvContratosGastos.Rows(e.RowIndex).FCTextBox("TxtFecha").Text.Trim.ToDate
If objContrato.UpdateContratoGasto(CveContratoGasto, Observaciones, Importe, Fecha, UsuarioActual.CveUsuario) Then
GvContratosGastos.EditIndex = -1
CargaGVGastos()
End If
objContrato.Dispose()
End Sub
Protected Sub GvContratosGastos_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvContratosGastos.RowCancelingEdit
GvContratosGastos.EditIndex = -1
CargaGVGastos()
End Sub
Protected Sub LnkDescargar_Click1(sender As Object, e As EventArgs)
Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
RegistraScript($"window.location.href = '/Compras/PopUpVerFactura.aspx?P={Encripta(String.Format("OP=CONG&CVECONTRATO={0}&CVECONTRATOGASTO={1}", CveContrato, gvRow.DataKey("CveContratoGasto").ToString))}'")
End Sub
#End Region
#Region "TAB: PEDIDOS / DEVOLUCIONES"
Private Sub CargaDatosPedDev()
Dim ObjContratos As New ClsContratos
If ObjContratos.GetRepDevolucionesPedidos(Me.CveContrato, MinFecha, MaxFecha, -1, -1, UsuarioActual.CveEmpresa) Then
DsDatosPedDev = ObjContratos.DsResultados
GvPedidos.DataSource = DsDatosPedDev.Tables(0)
GvDevs.DataSource = DsDatosPedDev.Tables(1)
End If
ObjContratos.Dispose()
GvPedidos.DataBind()
GvDevs.DataBind()
UpPedidosDevoluciones.Update()
End Sub
Protected Sub ImgExcelPedDev_Click(sender As Object, e As EventArgs) Handles LbImprimirPedDevExcel.Click
GenerarPDFPedDev("Excel")
End Sub
Protected Sub ImgImprimirPedDev_Click(sender As Object, e As EventArgs) Handles LbImprimirPedDev.Click
GenerarPDFPedDev()
End Sub
Private Sub GenerarPDFPedDev(Optional Formato As String = "PDF")
If DsDatosPedDev Is Nothing Then
Alert("No se pudieron consultar los pedidos y devoluciones", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("FechaInicio", "-1"))
params.Add(New ReportParameter("FechaFin", "-1"))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Contrato", Me.Titulo))
params.Add(New ReportParameter("Estatus", ""))
params.Add(New ReportParameter("Tipo", "-1"))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
Dim lrds As New List(Of ReportDataSource)
lrds.Add(New ReportDataSource("DataSet1", DsDatosPedDev.Tables(0)))
lrds.Add(New ReportDataSource("DataSet2", DsDatosPedDev.Tables(1)))
ImprimirPDF("Empresas/Grales/Formatos/RepPedDevolucionesXContrato.rdlc", lrds, params, "ReportePedidosDevoluciones", Formato)
End Sub
Protected Sub GvPedidos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
'CABECERA
If e.Row.DBCampo("CodigoPS") = "" Then
e.Row.CssClass = "SubTotales2"
e.Row.Attributes.Add("style", "background-color:#B9B5B4 !important;")
e.Row.Cells(0).Text = ""
e.Row.Cells(4).Text = ""
e.Row.Cells(5).Text = ""
Dim Texto = $"Pedido: <b><a href='/Ventas/Ventas.aspx?CveVenta={e.Row.DBCampo("CveVenta")}' target='_blank'>{e.Row.DBCampo("SerieFolio")}</a></b> | "
Texto += If(e.Row.DBCampo("CveMovimiento").ToString = "", " SIN MOVIMIENTO DE ALMACÉN", $"Folio Almacén: <b><a href ='/Inventarios/EntradasSalidas.aspx?CveMovimiento={e.Row.DBCampo("CveMovimiento")}' target='_blank'>{e.Row.DBCampo("Folio")}</a></b>")
e.Row.Cells(0).ColumnSpan = 2
e.Row.Cells(1).Visible = False
e.Row.Cells(0).Text = Texto
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
Else
If e.Row.DBCampo("CveMovimiento").ToString = "" Then
e.Row.Cells(1).Text = "SIN MOVIMIENTO DE ALMACÉN"
End If
End If
End If
End Sub
Protected Sub GvDevs_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
'CABECERA
If e.Row.DBCampo("CodigoPS") = "" Then
e.Row.CssClass = "SubTotales2"
e.Row.Attributes.Add("style", "background-color:#B9B5B4 !important;")
e.Row.Cells(0).Text = ""
e.Row.Cells(4).Text = ""
e.Row.Cells(5).Text = ""
Dim Texto = $"Devolución: <b><a href='/Ventas/Ventas.aspx?CveVenta={e.Row.DBCampo("CveVenta")}' target='_blank'>{e.Row.DBCampo("SerieFolio")}</a></b> | "
Texto += If(e.Row.DBCampo("CveMovimiento").ToString = "", " SIN MOVIMIENTO DE ALMACÉN", $"Folio Almacén: <b><a href ='/Inventarios/EntradasSalidas.aspx?CveMovimiento={e.Row.DBCampo("CveMovimiento")}' target='_blank'>{e.Row.DBCampo("Folio")}</a></b>")
e.Row.Cells(0).ColumnSpan = 2
e.Row.Cells(1).Visible = False
e.Row.Cells(0).Text = Texto
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
Else
If e.Row.DBCampo("CveMovimiento").ToString = "" Then
e.Row.Cells(1).Text = "SIN MOVIMIENTO DE ALMACÉN"
End If
End If
End If
End Sub
#End Region
#Region " TAB: ALMACEN - ACTIVOS FIJBtnAlmacenEsInterno_ClickOS "
Private Sub CargaInventarios()
Dim ObjInventarios As New ClsInventarios
'cargar también los movimentos detalle
If ObjInventarios.GetMovimientosDetalleContrato(CveContrato, UsuarioActual.CveEmpresa, DdlEsinternoExternoFiltro.SelectedValue.ToEntero) Then
DtMovimientos = ObjInventarios.DtResultados
Else
Alert("Ocurrió un error al cargar la información de los Activos Fijos. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
ObjInventarios.Dispose()
If DtMovimientos.Rows.Count > 0 Then
CargaGVDatosInventarios()
CargaDatosPedDev()
'BtnDevolucionAlmacen.Visible = True
CveMovimientoDevolucion = -1
If CveMovimientoDevolucion > 0 Then
HLSurtirAF.Visible = False
BtnDevolucionAlmacen.Visible = False
End If
Else
DivSinRegistrosAlmacen.Visible = True
GvDatosAlmacen.DataSource = Nothing
GvDatosAlmacen.DataBind()
End If
'CARGA MODALIDAD ALMACEN
If TipoContrato.Contiene(8, 17) Then ' cuando es consignacion
HLSurtirAF.Visible = False
HLSurtirMercancia.NavigateUrl = $"/Ventas/Ventas.aspx?CveContrato={CveContrato}&Tipo=1"
Else
HLSurtirMercancia.Visible = False
HLSurtirAF.NavigateUrl = $"/Ventas/Ventas.aspx?CveContrato={CveContrato}&Tipo=0"
End If
UpAlmacen.Update()
End Sub
Protected Sub RBLAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaGVDatosInventarios()
End Sub
Private Sub CargaGVDatosInventarios()
Select Case RBLAlmacen.SelectedValue
Case "-1"
GvDatosAlmacen.DataSource = DtMovimientos
Actualiza(DtMovimientos)
Case "Vig"
GvDatosAlmacen.DataSource = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)")
Actualiza(DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)"))
Case "Dev"
GvDatosAlmacen.DataSource = DtMovimientos.FiltraParametros($"SerieFolioDevolucion IS NOT NULL")
Actualiza(DtMovimientos.FiltraParametros($"SerieFolioDevolucion IS NOT NULL"))
Case Else
End Select
GvDatosAlmacen.DataBind()
End Sub
Public Sub Actualiza(DT As DataTable)
LblAFInternos.Text = DT.SUM("Cantidad", "CveMovimientoDetalle > 0 AND EsInterno = 1 ").ToString
LblAFExternos.Text = DT.SUM("Cantidad", "CveMovimientoDetalle > 0 AND (EsInterno = 0 OR EsInterno IS NULL)").ToString
'Dim ValorAF = DT.SUM("ValorImporte", "CveMovimientoDetalle > 0 AND TipoDocto = 'Ped'") - DT.SUM("ValorImporte", "TipoDocto = 'DPe'")
LBLAFValorActivo.Text = DT.SUM("ValorImporte", "CveMovimientoDetalle > 0").ToString("###,###,###.00")
Dim Total = DT.SUM("Cantidad", "CveMovimientoDetalle > 0 AND TipoDocto = 'Ped'") - DT.SUM("Cantidad", "TipoDocto = 'DPe'")
LBLAFTotal.Text = DT.SUM("Cantidad", "CveMovimientoDetalle > 0").ToString()
UPAFResumen.Update()
End Sub
Protected Sub GvDatosAlmacen_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatosAlmacen.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'CABECERA
If e.Row.DBCampo("CodigoPS") = "" Then
e.Row.CssClass = "SubTotales2"
e.Row.Attributes.Add("style", "background-color:#B9B5B4 !important;")
e.Row.Cells(0).Text = ""
e.Row.Cells(4).Text = ""
e.Row.Cells(5).Text = ""
Dim Texto = $"{If(e.Row.DBCampo("TipoDocto") = "Ped", "Pedido", "Devolución") }: <b><a href='/Ventas/Ventas.aspx?CveVenta={e.Row.DBCampo("CveVenta")}' target='_blank'>{e.Row.DBCampo("SerieFolio")}</a></b> | "
Texto += If(e.Row.DBCampo("CveMovimiento").ToString = "", " SIN MOVIMIENTO DE ALMACÉN", $"Folio Almacén: <b><a href ='/Inventarios/EntradasSalidas.aspx?CveMovimiento={e.Row.DBCampo("CveMovimiento")}' target='_blank'>{e.Row.DBCampo("Folio")}</a></b>")
e.Row.Cells(0).ColumnSpan = 2
e.Row.Cells(1).Visible = False
'e.Row.Cells(2).Visible = False
e.Row.Cells(0).Text = Texto
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
If e.Row.DBCampo("TipoDocto") = "Ped" Then
If e.Row.DBCampo("Cantidad").ToDecimal - e.Row.DBCampo("CantidadDevolucion").ToDecimal > 0 Then
e.Row.Cells(9).Text = If(e.Row.DBCampo("CveMovimiento").ToString = "", "", $" <b><a href='/Ventas/Ventas.aspx?DevPed={e.Row.DBCampo("CveVenta")}&MovInv={e.Row.DBCampo("CveMovimiento")}' target='_blank'>Solicitud de devolución de pedido</a></b>")
Else
e.Row.Cells(9).Text = ""
End If
End If
Else
If e.Row.DBCampo("CveMovimiento").ToString = "" Then
e.Row.Cells(1).Text = "SIN MOVIMIENTO DE ALMACÉN"
End If
If e.Row.DBCampo("TipoDocto") = "Ped" Then
If e.Row.DBCampo("Cantidad").ToDecimal - e.Row.DBCampo("CantidadDevolucion").ToDecimal > 0 Then
e.Row.Cells(9).Text = If(e.Row.DBCampo("CveMovimiento").ToString = "", "", $" <b><a href='/Ventas/Ventas.aspx?DevPed={e.Row.DBCampo("CveVenta")}&MovInv={e.Row.DBCampo("CveMovimiento")}&CveMovimientoDetalle={e.Row.DBCampo("CveMovimientoDetalle")}' target='_blank'>Solicitud de devolución de pedido</a></b>")
End If
End If
e.Row.FCCheckBox("ChkEsInterno").Visible = True
End If
'If e.Row.DBCampo("SerieLote").ToString = "-1" Then
' e.Row.Cells(7).Text = ""
'End If
End If
End Sub
Private Sub BtnFiltraInternosExternos_Click(sender As Object, e As EventArgs) Handles BtnFiltraInternosExternos.Click
CargaInventarios()
End Sub
Protected Sub BtnAlmacenEsInterno_Click(sender As Object, e As EventArgs)
Dim ObjInv As New ClsInventarios()
For Each GRow As GridViewRow In GvDatosAlmacen.Rows
Dim CveMovimientoDetalle As Integer = GRow.DataKey("CveMovimientoDetalle").ToEntero
Dim ChkEsInterno = GRow.FCCheckBox("ChkEsInterno")
If CveMovimientoDetalle > 0 And ChkEsInterno.Checked And DdlEsInterno.SelectedValue.ToEntero > 0 Then
Dim EsInterno As Boolean
Select Case DdlEsInterno.SelectedValue.ToEntero
Case 1
EsInterno = True
Case 2
EsInterno = False
End Select
If Not (ObjInv.UpdateMovimientoDetalleEsInterno(UsuarioActual.CveEmpresa, CveMovimientoDetalle, EsInterno)) Then
Exit For
End If
End If
Next
ObjInv.Dispose()
LnkAjusteAF.Visible = True
DivHajusteAF.Visible = False
GvDatosAlmacen.Columns(6).Visible = False
CargaInventarios()
UPHajusteAF.Update()
UpHajusteAcciones.Update()
End Sub
Protected Sub LnkAjusteAF_Click(sender As Object, e As EventArgs)
LnkAjusteAF.Visible = False
DivHajusteAF.Visible = True
GvDatosAlmacen.Columns(6).Visible = True
CargaInventarios()
UPHajusteAF.Update()
UpHajusteAcciones.Update()
UpAlmacen.Update()
End Sub
#Region " DEVOLUCION ALMACEN "
Protected Sub BtnDevolucionAlmacen_Click(sender As Object, e As EventArgs)
Dim ObjVentas As New ClsVentas
ObjVentas.IniciaTransacSQL()
Dim TieneError = False
For Each Dr As DataRow In DtMovimientos.FiltraParametros("CveVenta IS NOT NULL AND CveMovimiento IS NOT NULL AND EsDevolucionVenta = 0", "", {"CveVenta"}).Rows
If Not ObjVentas.UpdateVentasDevolucionAlmacen(1, Dr("CveVenta").ToString.ToEntero) Then
TieneError = True
End If
Next
If Not TieneError Then
ObjVentas.Commit()
Alert("La solicitud de devolución se guardo correctamente.", TipoMensaje.MsgInformacion)
Else
ObjVentas.RollBack()
Alert("Ocurrió un error al guardar la solicitud de devolución. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
ObjVentas.Dispose()
End Sub
Public Sub CargaDatosEncabezado()
TablaUtilidad.Visible = True
LblUtilidad.Text = $"$ {(SumaUtilidad - SumaGasto).ToString.FormatoNumero()}"
If (SumaUtilidad - SumaGasto) < 0 Then LblUtilidad.ForeColor = Drawing.Color.Red
LblFacturado.Text = SumaAvance.FormatoNumero
LblPorFacturar.Text = (LblImporte.Text.ToDouble - SumaAvance).FormatoNumero
End Sub
#End Region
#End Region
#Region "TAB SISTEMA"
Protected Sub ChkPermitirAvance_CheckedChanged(sender As Object, e As EventArgs)
Dim ObjContrato As New ClsContratos
Dim Row As GridViewRow = DirectCast(DirectCast(sender, CheckBox).NamingContainer, GridViewRow)
ObjContrato.PermitirAvance(Gv.DataKeys(Row.RowIndex).Value.ToString.ToEntero, DirectCast(sender, CheckBox).Checked)
ObjContrato.Dispose()
Alert("Se ha permitido avance a la sección", TipoMensaje.MsgInformacion)
CargaDatos()
End Sub
Protected Sub ChkPermitirEstimacion_CheckedChanged(sender As Object, e As EventArgs)
Dim ObjContrato As New ClsContratos
Dim Row As GridViewRow = DirectCast(DirectCast(sender, CheckBox).NamingContainer, GridViewRow)
ObjContrato.PermitirEstimacion(Gv.DataKeys(Row.RowIndex).Value.ToString.ToEntero, DirectCast(sender, CheckBox).Checked)
ObjContrato.Dispose()
Alert("Se ha permitido estimar en la sección", TipoMensaje.MsgInformacion)
CargaDatos()
End Sub
#End Region
#End Region
#Region " BITACORA "
Private Sub guardarBitacora(Descripcion As String)
Dim ObjEventoBitacora As New ClsOIEventos
If ObjEventoBitacora.AddEventoBitacora(Descripcion, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then
cargarBitacora()
End If
ObjEventoBitacora.Dispose()
End Sub
Private Sub cargarBitacora()
Dim ObjEventoBitacora As New ClsOIEventos
If ObjEventoBitacora.GetEventos(-1, -1, -1, "-1", "-1", -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then
GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2")
GvEB.DataBind()
HlEvento.NavigateUrl = "/OI/PopUpAgenda.aspx?CveTipoEvento=2&CveContrato=" & ViewState("CveContrato").ToString & "&TB_iframe=true&height=370&width=600;"
' UpBitacora.Update()
End If
ObjEventoBitacora.Dispose()
End Sub
Protected Sub GVEventoBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.RowIndex = 0 Then
e.Row.Cells(0).Width = Unit.Pixel(200)
e.Row.Cells(1).Width = Unit.Pixel(200)
e.Row.Cells(2).Width = Unit.Pixel(100)
'e.Row.Cells(3).Width = Unit.Pixel(500) 'VARIABLE PARA QUE SEA LO MAS GRANDE POSIBLE
e.Row.Cells(4).Width = Unit.Pixel(100)
e.Row.Cells(5).Width = Unit.Pixel(5)
End If
Dim asd As String = e.Row.DBCampo("Archivo").ToString
If e.Row.DBCampo("Archivo").ToString <> "" And e.Row.DBCampo("Archivo").ToString <> "-1" Then
e.Row.FCLinkButton("LinkArchivo").Visible = True
e.Row.FCLinkButton("LinkArchivo").CommandArgument = String.Format("OI\{0}", e.Row.DBCampo("Archivo").ToString)
ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LinkArchivo")) 'Registro un evento Postbacktrigger, que recargue toda la pagina para que funcione
End If
e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Left
If e.Row.DataKey("CveUsuarioIng").ToEntero = UsuarioActual.CveUsuario Then
e.Row.FCLinkButton("LinkEliminarBitacora").Visible = True
End If
End If
End Sub
Protected Sub BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click
Dim ObjEventoBitacora As New ClsOIEventos
Dim FileExtension As String = "-1"
Dim Filesgral As List(Of Archivo) = txtFileBit.getfiles().Archivos
Dim Filename As String = ""
For Each fileItem As Archivo In Filesgral
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
Filename = fileItem.filename
Next
If ObjEventoBitacora.AddEventoBitacora(TxtEventoDescripcion.Text.Trim, String.Format(".{0}", FileExtension), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then
If Filename <> "" Then
Filename.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("Empresas\{0}\OI", UsuarioActual.CveEmpresa))
End If
cargarBitacora()
TxtEventoDescripcion.Text = ""
txtFileBit.getfiles().Archivos.Clear()
txtFileBit.Text = ""
Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion)
RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal")
End If
ObjEventoBitacora.Dispose()
GvEB.DataBind()
UPEventoBitacora.Update()
'CargaEventoBitacora()
UPAddEventoBitacora.Update()
End Sub
Protected Sub DownloadFile(ByVal sender As Object, ByVal e As EventArgs)
Dim filePath As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, CType(sender, LinkButton).CommandArgument)
Dim Archivo As New System.IO.FileInfo(filePath)
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.ContentType = "application/octet-stream"
HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + Path.GetFileName(filePath))
HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString())
HttpContext.Current.Response.TransmitFile(filePath)
HttpContext.Current.Response.Flush()
HttpContext.Current.Response.End()
Archivo = Nothing
End Sub
Protected Sub GvEB_RowDeleting(sender As Object, e As GridViewDeleteEventArgs)
Dim ObjEventoBitacora As New ClsOIEventos
If ObjEventoBitacora.RemoveEvento(GvEB.Rows(e.RowIndex).DataKey("CveEvento").ToEntero(), UsuarioActual.CveEmpresa) Then
cargarBitacora()
LimpiaModalBitacora()
Alert("El evento se elimino correctamente de la bitácora.", TipoMensaje.MsgInformacion)
End If
ObjEventoBitacora.Dispose()
End Sub
Protected Sub LimpiaModalBitacora()
TxtEventoDescripcion.Text = ""
txtFileBit.getfiles().Archivos.Clear()
txtFileBit.Text = ""
End Sub
#End Region
#Region "SUBIR EXCEL"
Public Sub DescargarFormato()
Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoContrato.xlsx"
Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then
Response.Clear()
Response.ClearHeaders()
Response.ClearContent()
Response.AddHeader("Content-Disposition", "attachment; filename=" + Archivo.Name)
Response.AddHeader("Content-Length", Archivo.Length.ToString())
Response.ContentType = "text/plain"
Response.Flush()
Response.TransmitFile(Archivo.FullName)
Response.End()
End If
End Sub
Public Sub LbDescargarExcel_Click(sender As Object, e As EventArgs) Handles LbDescargarExcel.Click
DescargarFormato()
End Sub
Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath)
Dim unnamed As Integer = 0
Dim cols As Integer
Dim columns As String()
Dim curRow As Integer = 0
Dim curCol As Integer = 0
Dim dataTable As DataTable = New DataTable()
Dim worksheet As ExcelWorksheet = excelFile.Worksheets(0)
For cols = 0 To worksheet.Rows(0).AllocatedCells.Count - 1
If firstRowHasHeaders Then
If worksheet.Rows(0).Cells(cols).Value IsNot Nothing Then
dataTable.Columns.Add(worksheet.Rows(0).Cells(cols).Value.ToString())
Else
dataTable.Columns.Add("Unnamed Column " & (System.Threading.Interlocked.Increment(unnamed)))
End If
curRow = 1
Else
dataTable.Columns.Add("Column " & (cols + 1))
End If
Next
While curRow < worksheet.Rows.Count
columns = New String(cols - 1) {}
For curCol = 0 To cols - 1
If worksheet.Rows(curRow).Cells(curCol).Value Is Nothing Then
columns(curCol) = ""
Else
columns(curCol) = worksheet.Rows(curRow).Cells(curCol).Value.ToString()
End If
Next
dataTable.Rows.Add(columns)
curRow += 1
End While
Return dataTable
End Function
Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String)
Dim dt As New DataTable
dt = ReadExcelFile(Ruta + FileName, True)
Dim ErrorArchivo = False
'Dim Conexion As Odbc.OdbcConnection = Nothing
'Try
' Select Case Tipo
' Case "EXCEL"
' Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";")
' Conexion.Open()
' Dim cmd = Conexion.CreateCommand()
' cmd.CommandType = CommandType.Text
' cmd.CommandText = "SELECT * FROM [Hoja1$]"
' Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
' DataAdapter.Fill(dt)
' Case Else
' Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError)
' Exit Sub
' End Select
'Catch ex As Exception
' ErrorArchivo = True
' OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
'End Try
'Conexion.Close()
If Not ErrorArchivo AndAlso dt IsNot Nothing Then
If Not dt.Columns(0).ColumnName = "OC Interna" Then
Alert("El nombre de la primera columna debe ser 'OC Interna'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(1).ColumnName = "Cantidad" Then
Alert("El nombre de la primera columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(2).ColumnName = "Clave Interna Cliente" Then
Alert("El nombre de la segunda columna debe ser 'Clave Interna'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(3).ColumnName = "Código" Then
Alert("El nombre de la tercera columna debe ser 'Código'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(4).ColumnName = "Código Barras" Then
Alert("El nombre de la cuarta columna debe ser 'Código Barras'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(5).ColumnName = "Producto/Servicio" Then
Alert("El nombre de la quinta columna debe ser 'Producto/Servicio'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(6).ColumnName = "UM" Then
Alert("El nombre de la sexta columna debe ser 'U.M'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(7).ColumnName = "Precio Unitario" Then
Alert("El nombre de la septima columna debe ser 'Precio Unitario'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
dt.TableName = "Datos"
If Not ErrorArchivo Then
NumRow = 1
Dim RowNoEncontrados As String = String.Empty
Dim NumAgregados As Integer = 0
For Each Row As DataRow In dt.Rows
Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero
Dim Codigo As String = Row("Código").ToString.Trim.ToUpper
Dim CodigoBarras As String = Row("Código Barras").ToString.Trim.ToUpper
Dim UM As String = Row("UM").ToString
Dim ClaveInterna As String = Row("Clave Interna Cliente").ToString.Trim.ToUpper
Dim OCInterna As String = Row("OC Interna").ToString.Trim.ToUpper
Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper
Dim PrecioUnitario As Double = Row("Precio Unitario").ToString.ToDouble
Dim CvePS As Integer = 0
Dim CveUM As Integer = 0 ' GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveUnidadMedida", $"CvePS = '{CvePS}'").ToString.ToEntero
Dim CodigoPS As Integer = 0
Dim Total As Double = (Cantidad * PrecioUnitario)
NumRow = NumRow + 1
If Codigo.Length > 0 Then
Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c)
If StrArray.Length > 0 Then
If CBool(StrArray(0)) = True Then
CvePS = StrArray(1).ToEntero
Else
RowNoEncontrados &= StrArray(1) & "<\BR>"
End If
End If
ElseIf CodigoBarras.Length > 0 Then
Dim StrArray() As String = GetPS("CodigoBarras", CodigoBarras).Split("|"c)
If StrArray.Length > 0 Then
If CBool(StrArray(0)) = True Then
CvePS = StrArray(1).ToEntero
Else
RowNoEncontrados &= StrArray(1) & "<\BR>"
End If
End If
ElseIf ProductoServicio.Length > 0 Then
Dim StrArray() As String = GetPS("PS", ProductoServicio).Split("|"c)
If StrArray.Length > 0 Then
If CBool(StrArray(0)) = True Then
CvePS = StrArray(1).ToEntero
Else
RowNoEncontrados &= StrArray(1) & "<\BR>"
End If
End If
Else
RowNoEncontrados &= "<\BR>&nbsp;&nbsp;&nbsp;&nbsp;- En la fila " & NumRow & " no se especificó código, código de barras ó descripción."
End If
CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero
If TmpDT IsNot Nothing AndAlso CvePS > 0 Then
Dim dr As DataRow = TmpDT.NewRow
dr("Cantidad") = Cantidad
dr("CantidadContratada") = Cantidad
dr("CveUM") = CveUM
dr("UM") = UM
dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero
dr("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{dr("CveClasificacion")}'").ToString
dr("CvePS") = CvePS
dr("PS") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("PS", "").ToString
dr("CodigoPS") = dr("PS")
dr("PU") = PrecioUnitario
dr("Total") = Cantidad * PrecioUnitario
dr("CveTipoPresupuesto") = 2
dr("NoIdentificacion") = ClaveInterna
dr("OCInterna") = OCInterna
dr("LimitarCantidad") = 0
If CvePS > 0 Then
Dim ObjContratos As New ClsContratos
If ObjContratos.AddContratosDetalle(CveContrato, dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDouble, dr("PU").ToString.ToDouble, UsuarioActual.CveUsuario, dr("CveTipoPresupuesto").ToString.ToEntero, dr("NoIdentificacion").ToString, dr("LimitarCantidad").ToString.ToEntero = 1, dr("OCInterna").ToString) Then
Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", dr("Cantidad"), dr("UM"), dr("PS"), dr("PU"))
guardarBitacora(msj)
dr("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
TmpDT.Rows.Add(dr)
Dim TotalRow = dr("Total").ToString.ToDouble
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero
LblImporte.Text = LbTotalGeneral.Text
Else
Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
End If
End If
Next
'Cargo el GridView
Gv.DataSource = TmpDT
Gv.DataBind()
UpGV.Update()
If RowNoEncontrados.Length > 0 Then
Alert("Los siguientes Productos o Servicios no se encontraron en la Base de Datos.<\BR>" & RowNoEncontrados, TipoMensaje.MsgAdvertencia)
Else
Alert("Se Cargaron " & NumRow & " Productos o Servicios correctamente.")
End If
End If
End If
End Sub
Private Function GetPS(Opt As String, Valor As String) As String
Dim StrReturn As String = String.Empty
Dim CvePS As Integer = 0
CvePS = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS", Opt & " = '" & Valor & "'").ToString.ToEntero
If CvePS > 0 Then
StrReturn = "True|" & CvePS.ToString
Else
StrReturn = "False|&nbsp;&nbsp;&nbsp;&nbsp;- No se encontró " & Valor & " en la fila " & NumRow & ", columna " & Opt
End If
Return StrReturn
End Function
Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo)
Else
Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError)
End If
End Sub
#End Region
#Region " GPS "
Private Sub CargaCuentasEquipos()
Dim GPS As New ClsGPS
If GPS.DispositivosGet(-1, -1, DdlCliente.SelectedValue.ToEntero) Then
DdlCuentaEquipo.DataSource = GPS.DtResultados
Else
DdlCuentaEquipo.DataSource = Nothing
End If
GPS.Dispose()
DdlCuentaEquipo.DataBind()
UpGral.Update()
End Sub
Private Sub CargaPeriodos()
Dim ObjContratos As New ClsContratos
If ObjContratos.GetPeriodos(-1, UsuarioActual.CveEmpresa) Then
DtPeriodo = ObjContratos.DtResultados
Else
DtPeriodo = Nothing
End If
DdlPeriodo.DataSource = DtPeriodo
ObjContratos.Dispose()
DdlPeriodo.DataBind()
UpGral.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()
End Sub
Private Sub GenerarPDF(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = DtAvanceDocumento.FiltraParametros("CveVenta > 0")
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Contrato", Titulo))
'Datos NUEVOS
params.Add(New ReportParameter("Proveedor", Contratante))
params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim))
params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim))
params.Add(New ReportParameter("TipoContrato", TipoDocumento))
params.Add(New ReportParameter("TotalContrato", LblImporte.Text))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text)
ImprimirPDF("Empresas/Grales/Formatos/RepContratoAvanceDocumento.rdlc", dt, params, $"{Nombre}-AvanceDocumento", Formato:=Formato)
End Sub
Private Sub LBImprimirInformacionG_Click(sender As Object, e As EventArgs) Handles LBImprimirInformacionG.Click
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = DtAvanceDocumento
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Contrato", Titulo))
'DATOS DEL CONTRATO
params.Add(New ReportParameter("NoContrato", TxtNumeroContrato.Text.Trim))
params.Add(New ReportParameter("Descripcion", TxtDescripcionContrato.Text.Trim))
params.Add(New ReportParameter("Proveedor", If(TrProveedor.Visible = True, DdlContratista.SelectedItem.Text.Trim, "-")))
params.Add(New ReportParameter("Ubicacion", TxtUbicacion.Text.Trim))
params.Add(New ReportParameter("Responsable", TxtResponsable.Text.Trim))
params.Add(New ReportParameter("Almacen", If(RowAlmacen.Visible = True, DdlAlmacenDestino.SelectedItem.Text.Trim, "-")))
params.Add(New ReportParameter("Porcentaje", If(RowPorcentajeComision.Visible = True, TxtPorcentajeComision.Text.Trim, "-")))
'CENTRO DE COSTOS
params.Add(New ReportParameter("Proyecto", If(trddlproyecto.Visible = True, DdlProyecto.SelectedItem.Text.Trim, "-")))
params.Add(New ReportParameter("SubProyecto", DdlSubProyectoContrato.SelectedItem.Text.Trim))
params.Add(New ReportParameter("Addendum", If(DdlContratoPadre.SelectedItem.Text.Trim = "Seleccione", "", DdlContratoPadre.SelectedItem.Text.Trim)))
'INFORMACION
params.Add(New ReportParameter("Cliente", If(TrCliente.Visible = True, DdlCliente.SelectedItem.Text.Trim, "-")))
params.Add(New ReportParameter("Sucursal", If(TrClienteSucursal.Visible = True, DdlSucursalCliente.SelectedItem.Text.Trim, "-")))
params.Add(New ReportParameter("FechaInicial", TxtFechaInicial.Text.Trim))
params.Add(New ReportParameter("FechaFinal", TxtFechaFinal.Text.Trim))
params.Add(New ReportParameter("Moneda", DdlMoneda.SelectedItem.Text.Trim))
params.Add(New ReportParameter("TipoCambio", If(tipoCambio.Visible = True, TxtTipoCambio.Text.Trim, "-")))
params.Add(New ReportParameter("IVA", TxtPorIVA.Text.Trim))
params.Add(New ReportParameter("Anticipo", TxtPorAnticipo.Text.Trim))
params.Add(New ReportParameter("Amortizacion", TxtPorAmortizacionAnticipo.Text.Trim))
params.Add(New ReportParameter("Garantia", TxtPorGarantia.Text.Trim))
params.Add(New ReportParameter("Minimo", If(DvMin.Visible = True, txtMinimo.Text.Trim, "-")))
params.Add(New ReportParameter("Maximo", If(DvMax.Visible = True, txtMaximo.Text.Trim, "-")))
params.Add(New ReportParameter("Total", If(DvTotal.Visible = True, TxtTotal.Text.Trim, "-")))
'Estatus
params.Add(New ReportParameter("Estatus", DdlEstatus.SelectedItem.Text.Trim))
params.Add(New ReportParameter("TipoGarantia", DdlTipoGarantia.SelectedItem.Text.Trim))
params.Add(New ReportParameter("EstatusFianza", DdlEstatusFianza.SelectedItem.Text.Trim))
params.Add(New ReportParameter("Folio", TxtFolio.Text.Trim))
params.Add(New ReportParameter("FechaVencimiento", txtFechaVenc.Text.Trim))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/Contrato.rdlc", dt, params, $"Contrato-{Titulo}", Formato:="PDF")
End Sub
#End Region
#Region "I M P R E S I O N D E G A S T O S"
Protected Sub ImgImprimirGastos_Click(sender As Object, e As EventArgs) Handles LBImprimirGastos.Click
GenerarPDFGastos()
End Sub
Private Sub GenerarPDFGastos(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim UtilidadGastos As String = IIf(LblUtilidad.Text <> "", LblUtilidad.Text, "-").ToString
Dim dt As DataTable = DtGastos
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Contrato", TituloCorto))
'Datos NUEVOS
params.Add(New ReportParameter("Proveedor", Contratante))
params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim))
params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim))
params.Add(New ReportParameter("TipoContrato", TipoDocumento))
params.Add(New ReportParameter("TotalContrato", LblImporte.Text))
params.Add(New ReportParameter("Utilidad", UtilidadGastos))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text)
ImprimirPDF("Empresas/Grales/Formatos/RepContratoGastos.rdlc", dt, params, $"{Nombre}-Gastos", Formato:=Formato)
End Sub
Private Sub LBAgregarGasto_Click(sender As Object, e As EventArgs) Handles LBAgregarGasto.Click
TxtDescripcion.Text = ""
TxtImporteC.Text = ""
TxtFecha.Text = ""
UpAgregarGastos.Update()
RegistraScript("$('#ModalAgregarGastos').modal();")
End Sub
#End Region
#Region "I M P R E S I O N D E S U M I N I S T R O S"
Protected Sub ImgImprimirSuministros_Click(sender As Object, e As EventArgs) Handles LbImprimirSuministros.Click
GenerarPDFSuministros()
End Sub
Private Sub GenerarPDFSuministros(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = DtSuministros
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Contrato", TituloCorto))
'Datos NUEVOS
params.Add(New ReportParameter("Proveedor", Contratante))
params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim))
params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim))
params.Add(New ReportParameter("TipoContrato", TipoDocumento))
params.Add(New ReportParameter("TotalContrato", LblImporte.Text))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text)
ImprimirPDF("Empresas/Grales/Formatos/RepContratoSuministros.rdlc", dt, params, $"{Nombre}-Suministros", Formato:=Formato)
End Sub
#End Region
#Region "I M P R E S I O N D E A V A N C E "
Private Sub lbImprimirAvance_Click(sender As Object, e As EventArgs) Handles lbImprimirAvance.Click
GenerarPDFAvance()
End Sub
Private Sub GenerarPDFAvance(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = DtAvance
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Contrato", TituloCorto))
'Datos NUEVOS
params.Add(New ReportParameter("Proveedor", Contratante))
params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim))
params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim))
params.Add(New ReportParameter("TipoContrato", TipoDocumento))
params.Add(New ReportParameter("TotalContrato", LblImporte.Text))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text)
ImprimirPDF("Empresas/Grales/Formatos/ContratoAvance.rdlc", dt, params, $"{Nombre}-Avance", Formato:=Formato)
End Sub
#End Region
#Region "I M P R E S I O N D E P R E S U P U E S T O "
Private Sub lLbImprimirPresupuesto_Click(sender As Object, e As EventArgs) Handles LbImprimirPresupuesto.Click
GenerarPDFPPresupuesto()
End Sub
Private Sub GenerarPDFPPresupuesto(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = DtPresupuestos
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Contrato", TituloCorto))
'Datos NUEVOS
params.Add(New ReportParameter("Proveedor", Contratante))
params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim))
params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim))
params.Add(New ReportParameter("TipoContrato", TipoDocumento))
params.Add(New ReportParameter("TotalContrato", LblImporte.Text))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text)
ImprimirPDF("Empresas/Grales/Formatos/RepContratoPresupuestos.rdlc", dt, params, $"{Nombre}-Presupuestos", Formato:=Formato)
End Sub
#End Region
#Region "I M P R E S I O N D E A C T I V O S F I J O S "
Private Sub LbImprmirAF_Click(sender As Object, e As EventArgs) Handles LbImprmirAF.Click
GenerarPDFActivosFijos()
End Sub
Private Sub LbImprmirAFExcel_Click(sender As Object, e As EventArgs) Handles LbImprmirAFExcel.Click
GenerarPDFActivosFijos("Excel")
End Sub
Private Sub GenerarPDFActivosFijos(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = Nothing
Select Case RBLAlmacen.SelectedValue
Case "-1"
dt = DtMovimientos
Case "Vig"
dt = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)")
Case "Dev"
dt = DtMovimientos.FiltraParametros($"SerieFolioDevolucion IS NOT NULL")
Case Else
End Select
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Contrato", TituloCorto))
'Datos NUEVOS
params.Add(New ReportParameter("Proveedor", Contratante))
params.Add(New ReportParameter("FechaInicio", TxtFechaInicial.Text.Trim))
params.Add(New ReportParameter("FechaFin", TxtFechaFinal.Text.Trim))
params.Add(New ReportParameter("TipoContrato", TipoDocumento))
params.Add(New ReportParameter("TotalContrato", LblImporte.Text))
Dim Filtro As String = If(RBLAlmacen.SelectedValue = "-1", "Todos", If(RBLAlmacen.SelectedValue = "Vig", "Vigentes", "Devueltos"))
params.Add(New ReportParameter("CantInternos", LblAFInternos.Text))
params.Add(New ReportParameter("CantExternos", LblAFExternos.Text))
params.Add(New ReportParameter("TotalCant", LBLAFTotal.Text))
params.Add(New ReportParameter("ValorActivo", LBLAFValorActivo.Text))
params.Add(New ReportParameter("FiltroContratos", Filtro))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text)
ImprimirPDF("Empresas/Grales/Formatos/RepContratoActivosFijos.rdlc", dt, params, $"{Nombre}-ActivosFijos", Formato:=Formato)
End Sub
#End Region
#Region " IMPRIMIR DOCUMENTO - SABE "
Public Sub DescarFormato(documento As String)
Dim PathRoot As String = Server.MapPath("/")
Dim PathSource As String
Dim pathDesti As String
PathSource = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{documento}"
pathDesti = PathRoot & "Temp\" & CveContrato & documento
If File.Exists(pathDesti) Then
File.Delete(pathDesti)
End If
File.Copy(PathSource, pathDesti)
Dim objDoc As New clsGemBoxDocument(pathDesti)
Dim FechaActual As String = Now.Day.ToString("0#") & " de " & CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1).ToString & " del " & Now.Year.ToString()
objDoc.SustituirTags(GetDatosTagsDocumentos)
objDoc.Guardar(pathDesti)
Dim fileinfo As New FileInfo(pathDesti)
Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority)
baseUrl = baseUrl & "/temp/" & fileinfo.Name
RegistraScript("Download('" & baseUrl & "')")
End Sub
Private Function GetDatosTagsDocumentos() As List(Of TagsDocumentos)
Dim ListaTagsDocumentost = New List(Of TagsDocumentos)
Dim ObjContratos As New ClsContratos
If CveContrato <> -1 Then
If ObjContratos.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then
ListaTagsDocumentost.Add(New TagsDocumentos("{{NumeroContrato}}", ObjContratos.NumeroContrato))
ListaTagsDocumentost.Add(New TagsDocumentos("{{DescripcionContrato}}", ObjContratos.DescripcionContrato))
ListaTagsDocumentost.Add(New TagsDocumentos("{{Ubicacion}}", ObjContratos.Ubicacion))
ListaTagsDocumentost.Add(New TagsDocumentos("{{Responsable}}", ObjContratos.Responsable))
ListaTagsDocumentost.Add(New TagsDocumentos("{{FechaInicial}}", ObjContratos.FechaInicial.ToString("d")))
ListaTagsDocumentost.Add(New TagsDocumentos("{{FechaFinal}}", ObjContratos.FechaFinal.ToString("d")))
ListaTagsDocumentost.Add(New TagsDocumentos("{{Moneda}}", GlobalDTMonedas().FiltroPrimeroValor("Moneda", $"CveMoneda = {ObjContratos.CveMoneda}")))
ListaTagsDocumentost.Add(New TagsDocumentos("{{IVA}}", ObjContratos.PorIVA.ToString))
ListaTagsDocumentost.Add(New TagsDocumentos("{{Anticipo}}", ObjContratos.PorAnticipo.ToString))
ListaTagsDocumentost.Add(New TagsDocumentos("{{AmortizacionAnticipo}}", ObjContratos.PorAmortizacionAnticipo.ToString))
ListaTagsDocumentost.Add(New TagsDocumentos("{{Garantia}}", ObjContratos.PorGarantia.ToString))
If Not IsDBNull(ObjContratos.DtResultados(0)("Periodo")) Then
ListaTagsDocumentost.Add(New TagsDocumentos("{{Periodo}}", ObjContratos.DtResultados(0)("Periodo").ToString))
End If
If Not IsDBNull(ObjContratos.DtResultados(0)("CveCuentaEquipo")) Then
ListaTagsDocumentost.Add(New TagsDocumentos("{{CuentaEquipo}}", DdlCuentaEquipo.SelectedItem.Text))
End If
If Not IsDBNull(ObjContratos.DtResultados(0)("NombreComercial")) Then
ListaTagsDocumentost.Add(New TagsDocumentos("{{NombreComercial}}", ObjContratos.DtResultados(0)("NombreComercial").ToString))
End If
End If
End If
ObjContratos.Dispose()
Return ListaTagsDocumentost
End Function
Private Sub CargaPlantillas()
Dim ObjGral As New ClsGenerales
If ObjGral.ContratosPlantillaGet(-1, UsuarioActual.CveEmpresa) Then
DtPlantillasContratos = ObjGral.DtResultados.FiltraParametros("Tipo = 'Con'")
DdlPlantillaContrato.DataSource = DtPlantillasContratos
Else
DtPlantillasContratos = Nothing
End If
ObjGral.Dispose()
DdlPlantillaContrato.DataSource = DtPlantillasContratos
DdlPlantillaContrato.DataBind()
End Sub
Protected Sub BtnImprimirC_Click(sender As Object, e As EventArgs) Handles liImprimir.Click
Dim docx As String = DtPlantillasContratos.FiltroPrimeroValor("URL", $"CveContratoPlantilla = {DdlPlantillaContrato.SelectedValue}")
DescarFormato(docx)
End Sub
#End Region
#End Region
#Region "CREAR A PARTIR DE"
Private Sub BtnAgregarContratoHijo_Click(sender As Object, e As EventArgs) Handles BtnAgregarContratoHijo.Click
Dim TieneError = False
Dim ObjContratos As New ClsContratos
ObjContratos.IniciaTransacSQL()
Try
Dim CveContratoHijo As Integer = -1
Dim Minimo, Maximo, Total As Double
If txtMinimo.Text.ToDouble > 0 And chkDetalleContrato.Checked Then Minimo = txtMinimo.Text.ToDouble Else Minimo = -1
If txtMaximo.Text.ToDouble > 0 And chkDetalleContrato.Checked Then Maximo = txtMaximo.Text.ToDouble Else Maximo = -1
If TxtTotal.Text.ToDouble > 0 And chkDetalleContrato.Checked Then Total = TxtTotal.Text.ToDouble Else Total = -1
Dim CveEstatusInicial As Integer = 10 'falta sacar por
If ObjContratos.GetContratosEstatus(UsuarioActual.CveEmpresa) Then
CveEstatusInicial = ObjContratos.DtResultados.FiltroPrimeroValor("CveContratoEstatus", "TipoEstatus=1").ToEntero
End If
CveContratoHijo = ObjContratos.AddContratos(TxtCodigoApartirDe.Text, TxtDescripcionApartirDe.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, txtFechaI4.Text.ToDate, txtFechaF4.Text.ToDate,
TxtUbicacion.Text, TxtResponsable.Text, DdlSubProyectoContrato.SelectedValue.ToEntero, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble,
TxtPorGarantia.Text.ToDouble, "." & Session("FileExtension").ToString, "", CveContrato, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total,
DdlMoneda.SelectedValue.ToEntero, ModalidadDetalle, If(UsuarioActual.Empresa.CvePlataforma = 3, 1, CveEstatusInicial), 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)
If CveContratoHijo > 0 Then
If ChkCantidades.Checked Then
TieneError = AgregarDetalleHijo(CveContratoHijo, ObjContratos)
End If
If ChkTrasAF.Checked Then
TieneError = AgregarMovimientosAFHijo(CveContratoHijo, ObjContratos)
End If
Else
TieneError = True
Alert("Ocurrió un error al generar el contrato.", TipoMensaje.MsgError)
End If
If Not TieneError Then
ObjContratos.Commit()
Dim Msj As New StringBuilder
Msj.Append($"Se ha generado correctamente el contrato {TxtCodigoApartirDe.Text}, a partir del contrato: {TxtNumeroContrato.Text}")
Msj.AppendFormat("<br/><a class=""Texto"" target='_blank' href=""/Contratos/Contrato.aspx?CveContrato={0}"">Ver Contrato</a>", CveContratoHijo)
RegistraScript("$('#ModalCrearApartirDe').modal('hide');")
Alert(Msj.ToString, TipoMensaje.MsgInformacion)
Else
ObjContratos.RollBack()
End If
Catch ex As Exception
ObjContratos.RollBack()
OnError("Ocurrió un error al crear un nuevo contrato.", ex)
Finally
ObjContratos.Dispose()
End Try
End Sub
Private Function AgregarDetalleHijo(CveContratoHijo As Integer, ByRef ObjContratos As ClsContratos) As Boolean
Dim TieneError = False
Dim Cantidades As Double
For Each Row As DataRow In TmpDT.Rows
Cantidades = Row("CantidadContratada").ToString.ToDouble
'If ChkCantidades.Checked Then
' Cantidades = Row("CantidadContratada").ToString.ToDouble
'Else
' Cantidades = 0
'End If
If Row("CveTipoPresupuesto").ToString.ToEntero = 1 Then
If ObjContratos.AddContratosDetalle(CveContratoHijo, Row("CvePS").ToString.ToEntero, Cantidades, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Row("LimitarCantidad").ToString.ToEntero = 1, "") 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")
Else
TieneError = True
Alert("Ocurrió un error al agregar el detalle del contrato", TipoMensaje.MsgError)
Exit For
End If
ElseIf Row("CveTipoPresupuesto").ToString.ToEntero = 2 Then
If ObjContratos.AddContratosDetalle(CveContratoHijo, Row("CvePS").ToString.ToEntero, Cantidades, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Row("LimitarCantidad").ToString.ToEntero = 1, Row("OCInterna").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")
Else
TieneError = True
Alert("Ocurrió un error al agregar el detalle del contrato", TipoMensaje.MsgError)
Exit For
End If
End If
Next
Return TieneError
End Function
Private Function AgregarMovimientosAFHijo(CveContratoHijo As Integer, ByRef ObjContratos As ClsContratos) As Boolean
Dim TieneError As Boolean = False
'BUSCA LOS ACTIVOS FIJOS VIGENTES
Dim Dt As DataTable = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)")
Dim DtVentas As DataTable = Dt.FiltraParametros($"No = 0")
For Each Dr As DataRow In DtVentas.Rows
Dim CveVenta As Integer = Dr("CveVenta").ToString.ToEntero
Dim CveMovimiento As Integer = Dr("CveMovimiento").ToString.ToEntero
TieneError = Not ObjContratos.UpdateMovimientoContrato(CveContratoHijo, CveMovimiento)
If Not TieneError Then
TieneError = Not ObjContratos.UpdateVentasContrato(CveContratoHijo, CveVenta)
End If
If TieneError Then
Exit For
End If
Next
If TieneError Then
Alert("Ocurrió un error al traspasar los activos fijos del contrato", TipoMensaje.MsgError)
End If
Return TieneError
End Function
'Private Sub AgregarMovimientosAFHijo(CveContratoHijo As Integer)
' 'BUSCA LOS ACTIVOS FIJOS VIGENTES
' Dim Dt As DataTable = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)")
' Dim DtVentas As DataTable = Dt.FiltraParametros($"No = 0")
' Dim CveAlmacenOrigen As Integer = DdlAlmacenOrigen.SelectedValue.ToEntero
' Dim CveAlmacenDestino As Integer = DdlAlmacenDestino.SelectedValue.ToEntero
' Dim CveMoneda As Integer = DdlMoneda.SelectedValue.ToEntero
' Dim CveConceptoSalida As Integer = 8
' Dim CveConceptoEntrada As Integer = 9
' Dim CveCliente As Integer = If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, DdlCliente.SelectedValue.ToEntero)
' Dim ObjInv As New ClsInventarios()
' Try
' ObjInv.IniciaTransacSQL()
' Dim TieneError As Boolean = False
' For Each Dr As DataRow In DtVentas.Rows
' Dim CveVentaAlmacen As Integer = Dr("CveVenta").ToString.ToEntero
' 'Movimiento de salida por traspaso al almacen destino
' Dim CveMovimientoSalida As Integer = ObjInv.AddMovimiento(CveAlmacenDestino, CveConceptoSalida, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, DdlSubProyectoContrato.SelectedValue.ToEntero, -1, CveContrato:=CveContrato, CveCliente:=CveCliente, CveAlmacenDestino:=CveAlmacenOrigen)
' If CveMovimientoSalida > 0 Then
' For Each Row As DataRow In Dt.FiltraParametros($"CvePS IS NOT NULL AND CveVenta = {CveVentaAlmacen}").Rows
' Dim Cantidad As Double = Row("Cantidad").ToString.ToDouble
' Dim CvePS As Integer = Row("CvePS").ToString.ToEntero
' Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString.ToEntero
' Dim CveUnidadMedida As Integer = Row("CveUnidadMedida").ToString.ToEntero
' Dim PU As Double = Row("PU").ToString.ToDouble
' If Not ObjInv.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUnidadMedida, CvePS, PU, -1) Then
' TieneError = True
' Exit For
' End If
' Next
' Else
' TieneError = True
' Exit For
' End If
' 'Movimeinto de entrada por traspaso al almacen origen
' Dim CveMovimientoEntrada As Integer = ObjInv.AddMovimiento(CveAlmacenOrigen, CveConceptoEntrada, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, DdlSubProyectoContrato.SelectedValue.ToEntero, -1, CveContrato:=CveContratoHijo, CveCliente:=CveCliente, CveAlmacenDestino:=CveAlmacenDestino)
' If CveMovimientoEntrada > 0 Then
' For Each Row As DataRow In Dt.FiltraParametros($"CvePS IS NOT NULL AND CveVenta = {CveVentaAlmacen}").Rows
' Dim Cantidad As Double = Row("Cantidad").ToString.ToDouble
' Dim CvePS As Integer = Row("CvePS").ToString.ToEntero
' Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString.ToEntero
' Dim CveUnidadMedida As Integer = Row("CveUnidadMedida").ToString.ToEntero
' Dim PU As Double = Row("PU").ToString.ToDouble
' If Not ObjInv.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, CveUnidadMedida, CvePS, PU, -1) Then
' TieneError = True
' Exit For
' End If
' Next
' Else
' TieneError = True
' Exit For
' End If
' Next
' If TieneError Then
' Alert("Ocurrió un error al traspasar los activos fijos", TipoMensaje.MsgAdvertencia)
' ObjInv.RollBack()
' Else
' ObjInv.Commit()
' End If
' Catch ex As Exception
' ObjInv.RollBack()
' OnError("Ocurrió un error al traspasar los activos fijos", ex)
' End Try
' ObjInv.Dispose()
'End Sub
#End Region
#Region "FIANZAS"
Protected Sub LimpiarCamposModalFianzas()
txtFolioFianza.Text = ""
TxtModalAdjuntoArchivo.Text = ""
DdlFianza.SelectedValue = "-1"
txtFechaVenFianza.Text = DateTime.Today.ToShortDateString
End Sub
Protected Sub btnAgregarFianza_Click(sender As Object, e As EventArgs)
LimpiarCamposModalFianzas()
EsEditarFianza = False
txth4Fianza.InnerText = "Agregar Fianza"
LnkDescargar.Visible = False
BtnGuardarFianza.Text = "Guardar"
UPModalFianza.Update()
Me.RegistraScript("$('#DvModalFianza').modal();")
GvFianzas.DataSource = DtTmpFianzas
GvFianzas.DataBind()
UpGvFianzas.Update()
End Sub
Protected Sub BtnGuardarFianza_Click(sender As Object, e As EventArgs)
Dim dr As DataRow = DtTmpFianzas.NewRow()
Dim Folio As String = txtFolioFianza.Text
Dim CveEstatus As Integer = DdlFianza.SelectedValue.ToEntero()
Dim Estatus As String = DdlFianza.SelectedItem.Text
Dim TieneError As Boolean = False
Dim Adjunto As String = ""
If TxtModalAdjuntoArchivo.getfiles.Archivos.Count > 0 Then
Dim ArchivoAdjunto As Archivo = TxtModalAdjuntoArchivo.getfiles.Archivos(0)
Adjunto = ArchivoAdjunto.filenameO
End If
If EsEditarFianza Then
DtTmpFianzas.Rows.RemoveAt(IndexFianzaEditar)
dr("CveContratoFianza") = GvFianzas.Rows(IndexFianzaEditar).DataKey("CveContratoFianza").ToString
dr("Folio") = Folio
dr("EstatusFianza") = Estatus
dr("CveEstatusFianza") = CveEstatus
dr("FechaVencimiento") = txtFechaVenFianza.Text
dr("Adjunto") = If(Adjunto = "", GvFianzas.Rows(IndexFianzaEditar).DataKey("Adjunto").ToString, Adjunto)
Else
dr("CveContratoFianza") = "-1"
dr("Folio") = Folio
dr("EstatusFianza") = Estatus
dr("CveEstatusFianza") = CveEstatus
dr("FechaVencimiento") = txtFechaVenFianza.Text
dr("Adjunto") = Adjunto
End If
DtTmpFianzas.Rows.Add(dr)
GuardaAdjunto($"{Folio} - {txtFechaVenFianza.Text}")
GvFianzas.DataSource = DtTmpFianzas
GvFianzas.DataBind()
UpGvFianzas.Update()
LimpiarCamposModalFianzas()
Me.RegistraScript("$('#DvModalFianza').modal('hide');")
End Sub
Private Sub GuardaAdjunto(FolioFechaVencimiento As String)
If Not TxtModalAdjuntoArchivo.getfiles.Archivos.Count > 0 Then
Exit Sub
End If
Dim ArchivoAdjunto As Archivo = TxtModalAdjuntoArchivo.getfiles.Archivos(0)
If ArchivoAdjunto.filenameO.Length > 114 Then
Alert("El nombre del archivo excede los 115 caracteres permitidos. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Try
Dim Path As String = String.Format("{0}\\{1}\\{2}\\{3}", UsuarioActual.Empresa.Ruta, "Contratos", "Fianzas", FolioFechaVencimiento)
DirectoryExistsCreate(Path)
Dim ArchivoDestino As String = String.Format("{0}\\{1}", Path, ArchivoAdjunto.filenameO)
If File.Exists(ArchivoDestino) Then
System.IO.File.Delete(ArchivoDestino)
End If
System.IO.File.Move(ArchivoAdjunto.FileUrl, ArchivoDestino)
Catch ex As Exception
Alert("Ocurrió un error al guardar el archivo Adjunto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End Try
End Sub
Private Sub DescargarAdjunto()
Dim filename As String = GvFianzas.Rows(IndexFianzaEditar).DataKey("Adjunto").ToString
If Not String.IsNullOrEmpty(filename) Then
Dim rutaAplicacion As String = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath)
Dim Path As String = String.Format("{0}\\{1}\\{2}\\{3}", UsuarioActual.Empresa.Ruta, "Contratos", "Fianzas", $"{GvFianzas.Rows(IndexFianzaEditar).DataKey("Folio").ToString} - {GvFianzas.Rows(IndexFianzaEditar).DataKey("FechaVencimiento").ToDate.ToShortDateString}")
Dim ArchivoDestino As String = String.Format("{0}\\{1}", Path, GvFianzas.Rows(IndexFianzaEditar).DataKey("Adjunto").ToString)
Dim toDownload As System.IO.FileInfo = New System.IO.FileInfo(ArchivoDestino)
If toDownload.Exists Then
Response.ClearContent()
Response.ClearHeaders()
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename)
Response.ContentType = "application/octet-stream"
Response.WriteFile(ArchivoDestino)
Response.Flush()
Response.Close()
Response.End()
HttpContext.Current.ApplicationInstance.CompleteRequest()
End If
End If
End Sub
Protected Sub LnkDescargar_Click(sender As Object, e As EventArgs)
DescargarAdjunto()
End Sub
Protected Sub GvFianzas_RowDeleting(sender As Object, e As GridViewDeleteEventArgs)
DtTmpFianzas.Rows.RemoveAt(e.RowIndex)
GvFianzas.DataSource = DtTmpFianzas
GvFianzas.DataBind()
UpGvFianzas.Update()
End Sub
Protected Sub imgEFianzaGv_Click(sender As Object, e As EventArgs)
LimpiarCamposModalFianzas()
EsEditarFianza = True
Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow)
IndexFianzaEditar = GvRow.DataItemIndex
txtFolioFianza.Text = GvRow.DataKey("Folio").ToString()
DdlFianza.SelectedValue = GvRow.DataKey("CveEstatusFianza").ToString()
txtFechaVenFianza.Text = GvRow.DataKey("FechaVencimiento").ToString()
LnkDescargar.Visible = GvRow.DataKey("Adjunto").ToString <> ""
txth4Fianza.InnerText = "Editar Fianza"
BtnGuardarFianza.Text = "Actualizar"
UPModalFianza.Update()
Me.RegistraScript("$('#DvModalFianza').modal();")
GvFianzas.DataSource = DtTmpFianzas
GvFianzas.DataBind()
UpGvFianzas.Update()
End Sub
Protected Sub CreaDtTmpFianzas()
DtTmpFianzas = New DataTable()
DtTmpFianzas.Columns.Add("CveContratoFianza", GetType(String))
DtTmpFianzas.Columns.Add("Folio", GetType(String))
DtTmpFianzas.Columns.Add("CveEstatusFianza", GetType(String))
DtTmpFianzas.Columns.Add("EstatusFianza", GetType(String))
DtTmpFianzas.Columns.Add("FechaVencimiento", GetType(String))
DtTmpFianzas.Columns.Add("Adjunto", GetType(String))
DtTmpFianzasInicial = DtTmpFianzas.Copy
GvFianzas.DataSource = DtTmpFianzas
GvFianzas.DataBind()
UpGvFianzas.Update()
End Sub
Protected Function GuardaFianzas(ObjContrato As ClsContratos) As Boolean
Dim TieneError As Boolean = False
For Each row As DataRow In DtTmpFianzas.Rows
Dim Folio As String = row("Folio").ToString()
Dim CveEstatus As Integer = row("CveEstatusFianza").ToString().ToEntero
Dim FechaVen As Date = Date.Parse(row("FechaVencimiento").ToString())
Dim Adjunto As String = row("Adjunto").ToString()
' Si la cve es -1 es nuevo y lo agrega
If row("CveContratoFianza").ToString() = "-1" Then
If Not ObjContrato.AddContratoFianza(CveContrato, Folio, CveEstatus, FechaVen, Adjunto) Then
TieneError = True
Exit For
End If
Else
Dim CveFianza As Integer = row("CveContratoFianza").ToString().ToEntero
If Not ObjContrato.UpdateContratoFianza(CveFianza, Folio, CveEstatus, FechaVen, Adjunto) Then
TieneError = True
Exit For
End If
End If
Next
' Compara si aun existe la fianza, si ya no existe la elimina
For Each row As DataRow In DtTmpFianzasInicial.Rows
Dim CveFianza As Integer = row("CveContratoFianza").ToString().ToEntero
Dim filtro As String = String.Format("CveContratoFianza ={0}", CveFianza)
If DtTmpFianzas.FiltraParametros(filtro).Rows.Count = 0 Then
TieneError = Not ObjContrato.RemoveContratoFianza(CveFianza)
Exit For
End If
Next
Return Not TieneError
End Function
Protected Sub LnkDescargaAdjunto_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = CType(((CType(sender, LinkButton)).NamingContainer), GridViewRow)
IndexFianzaEditar = GvRow.DataItemIndex
DescargarAdjunto()
End Sub
Protected Sub GvFianzas_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("Adjunto").ToString <> "" Then
e.Row.FCLinkButton("LnkDescargaAdjunto").Visible = True
Dim lb As LinkButton = CType(e.Row.FindControl("LnkDescargaAdjunto"), LinkButton)
ScriptManager.GetCurrent(Me).RegisterPostBackControl(lb)
End If
End If
End Sub
#End Region
#Region "CONVENIO DE PRECIO FIJO"
Protected Sub CargaConvenioPrecioFijo()
'12/04/2018 - oculta campo de licitacion, portlet finanzas y campo tipo de garantia
trLicitacion.Visible = False
DivFianzas.Visible = False
DivTipoGarantia.Visible = False
UpGral.Update()
End Sub
#End Region
#Region "NOMENCLATURA CONTRATOS"
Protected Sub GetNoContratoNuevo()
Dim ObjContratos As New ClsContratos()
Dim TipoContrato As Integer = DdlTipoContrato.SelectedValue.ToEntero()
Dim SufijoContrato As String = ""
Select Case TipoContrato
Case 7 'Contrato Comodato
SufijoContrato = "COM"
Case 8 'Contrato Consignacion
SufijoContrato = "CONSIG"
Case 10 'Contrato de Financiamiento
SufijoContrato = "FIN"
Case 13 'Contrato Servicio Administrado de Impresion (?)
SufijoContrato = "MPS"
Case 28 'Convenio Precio Fijo
SufijoContrato = "CON"
End Select
Dim Serie As String = String.Format("-{0}-{1}", DateTime.Today.Year, SufijoContrato)
If ObjContratos.GetContratoNomenclatura(Serie, UsuarioActual.CveEmpresa) Then
TxtNumeroContrato.Text = ObjContratos.DtResultados.Rows(0)("NoContrato").ToString
End If
ObjContratos.Dispose()
End Sub
#End Region
#Region "IMPUESOS LOCALES"
Protected Sub ChkImpuestosLocales_CheckedChanged(sender As Object, e As EventArgs)
If ChkImpuestosLocales.Checked Then
GvImpuestosLocales.Visible = True
Else
GvImpuestosLocales.Visible = False
End If
End Sub
Public Sub CargaImpuestosLocales()
Dim ObjContratos As New ClsContratos
If ObjContratos.GetContratoImpuestosLocales(CveContrato, UsuarioActual.CveEmpresa) Then
GvImpuestosLocales.DataSource = ObjContratos.DtResultados
End If
ObjContratos.Dispose()
GvImpuestosLocales.DataBind()
UpImpuestos.Update()
End Sub
#End Region
End Class