8499 lines
432 KiB
VB.net
8499 lines
432 KiB
VB.net
Option Explicit On
|
|
|
|
Imports System.Data
|
|
Imports Extensiones
|
|
Imports System.IO
|
|
Imports GemBox.Spreadsheet
|
|
|
|
Partial Class OC
|
|
Inherits ClsPaginas
|
|
Private Shared missing As Object = System.Reflection.Missing.Value
|
|
|
|
#Region "Propiedades"
|
|
Private Property CveEmpresaActual As Integer
|
|
Get
|
|
CveEmpresaActual = ViewState("CveEmpresaActual").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveEmpresaActual") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveUsuarioAsignado As Integer
|
|
Get
|
|
Return If(IsNothing(ViewState("CveUsuarioAsignado")), -1, ViewState("CveUsuarioAsignado").ToString.ToEntero)
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveUsuarioAsignado") = value
|
|
End Set
|
|
End Property
|
|
Private Property TipoOC As String
|
|
Get
|
|
TipoOC = ViewState("TipoOC").ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("TipoOC") = value
|
|
End Set
|
|
End Property
|
|
Private Property TipoLargo As String
|
|
Get
|
|
TipoLargo = ViewState("TipoLargo").ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("TipoLargo") = value
|
|
End Set
|
|
End Property
|
|
Private Property TipoOS As Boolean
|
|
Get
|
|
TipoOS = CBool(ViewState("TipoOS").ToString)
|
|
End Get
|
|
Set(value As Boolean)
|
|
ViewState("TipoOS") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveOrdenCompra As Integer
|
|
Get
|
|
CveOrdenCompra = ViewState("CveOrdenCompra").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveOrdenCompra") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveIEAnticipo As Integer
|
|
Get
|
|
CveIEAnticipo = ViewState("CveIEAnticipo").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveIEAnticipo") = value
|
|
End Set
|
|
End Property
|
|
Private Property Folio As Integer
|
|
Get
|
|
Folio = ViewState("Folio").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("Folio") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveUsuario As Integer
|
|
Get
|
|
CveUsuario = ViewState("CveUsuario").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveUsuario") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveEstatus As Integer
|
|
Get
|
|
CveEstatus = ViewState("CveEstatus").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveEstatus") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveEstatusSiguiente As Integer
|
|
Get
|
|
CveEstatusSiguiente = ViewState("CveEstatusSiguiente").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveEstatusSiguiente") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveEstatusAnterior As Integer
|
|
Get
|
|
CveEstatusAnterior = ViewState("CveEstatusAnterior").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveEstatusAnterior") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveCotizacion As Integer
|
|
Get
|
|
Return If(IsNothing(ViewState("CveCotizacion")), -1, ViewState("CveCotizacion").ToString.ToEntero)
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveCotizacion") = value
|
|
End Set
|
|
End Property
|
|
Private Property EsNuevo As Boolean
|
|
Get
|
|
EsNuevo = DirectCast(ViewState("EsNuevo"), Boolean)
|
|
End Get
|
|
Set(value As Boolean)
|
|
ViewState("EsNuevo") = value
|
|
End Set
|
|
End Property
|
|
Private Property EsCrearApartirDe As Boolean
|
|
Get
|
|
EsCrearApartirDe = If(IsNothing(ViewState("EsCrearApartirDe")), False, DirectCast(ViewState("EsCrearApartirDe"), Boolean))
|
|
End Get
|
|
Set(value As Boolean)
|
|
ViewState("EsCrearApartirDe") = value
|
|
End Set
|
|
End Property
|
|
Private Property RequiereSubProyecto As Boolean
|
|
Get
|
|
RequiereSubProyecto = DirectCast(ViewState("RequiereSubProyecto"), Boolean)
|
|
End Get
|
|
Set(value As Boolean)
|
|
ViewState("RequiereSubProyecto") = value
|
|
End Set
|
|
End Property
|
|
Private Property DtDetalle As DataTable
|
|
Get
|
|
DtDetalle = DirectCast(ViewState("DtDetalle"), DataTable)
|
|
End Get
|
|
|
|
Set(ByVal value As DataTable)
|
|
ViewState("DtDetalle") = value
|
|
End Set
|
|
End Property
|
|
Private Property DtHistorial As DataTable
|
|
Get
|
|
DtHistorial = DirectCast(ViewState("DtHistorial"), DataTable)
|
|
End Get
|
|
|
|
Set(ByVal value As DataTable)
|
|
ViewState("DtHistorial") = value
|
|
End Set
|
|
End Property
|
|
Private Property DrEliminados As ArrayList
|
|
Get
|
|
DrEliminados = DirectCast(ViewState("DrEliminados"), ArrayList)
|
|
End Get
|
|
|
|
Set(ByVal value As ArrayList)
|
|
ViewState("DrEliminados") = value
|
|
End Set
|
|
End Property
|
|
Private Property NumCotizaciones As Integer
|
|
Get
|
|
|
|
If ViewState("NumCotizaciones") Is Nothing Then
|
|
Return -1
|
|
Else
|
|
Return ViewState("NumCotizaciones").ToString.ToEntero
|
|
End If
|
|
|
|
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("NumCotizaciones") = value
|
|
End Set
|
|
End Property
|
|
Private Property NumCotizacionesGanadoras As Integer
|
|
Get
|
|
NumCotizacionesGanadoras = ViewState("NumCotizacionesGanadoras").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("NumCotizacionesGanadoras") = value
|
|
End Set
|
|
End Property
|
|
Private Property NumCotizacionesEvaluar As Integer
|
|
Get
|
|
NumCotizacionesEvaluar = IfNull(ViewState("NumCotizacionesEvaluar"), "0", ViewState("NumCotizacionesEvaluar")).ToString().ToEntero()
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("NumCotizacionesEvaluar") = value
|
|
End Set
|
|
End Property
|
|
Private Property ProveedoresCotizacion As ArrayList
|
|
Get
|
|
ProveedoresCotizacion = DirectCast(ViewState("ProveedoresCotizacion"), ArrayList)
|
|
End Get
|
|
|
|
Set(ByVal value As ArrayList)
|
|
ViewState("ProveedoresCotizacion") = value
|
|
End Set
|
|
End Property
|
|
Private Property TotalCotizacionesGanadoras As Decimal
|
|
Get
|
|
TotalCotizacionesGanadoras = ViewState("TotalCotizacionesGanadoras").ToString.ToDecimal
|
|
End Get
|
|
Set(value As Decimal)
|
|
ViewState("TotalCotizacionesGanadoras") = value
|
|
End Set
|
|
End Property
|
|
Private Property DtCotizaciones As DataTable
|
|
Get
|
|
DtCotizaciones = DirectCast(ViewState("DtCotizaciones"), DataTable)
|
|
End Get
|
|
Set(ByVal value As DataTable)
|
|
ViewState("DtCotizaciones") = value
|
|
End Set
|
|
End Property
|
|
Private Property DtEstatusUsuarios As DataTable
|
|
Get
|
|
DtEstatusUsuarios = DirectCast(ViewState("DtEstatusUsuarios"), DataTable)
|
|
End Get
|
|
Set(ByVal value As DataTable)
|
|
ViewState("DtEstatusUsuarios") = value
|
|
End Set
|
|
End Property
|
|
Private Property DtEstatusUsuariosClasificaciones As DataTable
|
|
Get
|
|
DtEstatusUsuariosClasificaciones = DirectCast(ViewState("DtEstatusUsuariosClasificaciones"), DataTable)
|
|
End Get
|
|
Set(ByVal value As DataTable)
|
|
ViewState("DtEstatusUsuariosClasificaciones") = value
|
|
End Set
|
|
End Property
|
|
Private Property EsCreaApartirDe As Boolean
|
|
Get
|
|
Return If(IsNothing(ViewState("EsCreaApartirDe")), False, CType(ViewState("EsCreaApartirDe"), Boolean))
|
|
End Get
|
|
Set(value As Boolean)
|
|
ViewState("EsCreaApartirDe") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveEstatusInicial As Integer
|
|
Get
|
|
CveEstatusInicial = ViewState("CveEstatusInicial").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveEstatusInicial") = value
|
|
End Set
|
|
End Property
|
|
Private Property EstatusInicial As String
|
|
Get
|
|
EstatusInicial = ViewState("EstatusInicial").ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("EstatusInicial") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveEstatusFinalOK As Integer
|
|
Get
|
|
CveEstatusFinalOK = ViewState("CveEstatusFinalOK").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveEstatusFinalOK") = value
|
|
End Set
|
|
End Property
|
|
Private Property EstatusFinalOK As String
|
|
Get
|
|
EstatusFinalOK = ViewState("EstatusFinalOK").ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("EstatusFinalOK") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveEstatusFinalError As Integer
|
|
Get
|
|
CveEstatusFinalError = ViewState("CveEstatusFinalError").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveEstatusFinalError") = value
|
|
End Set
|
|
End Property
|
|
Private Property EstatusFinalError As String
|
|
Get
|
|
EstatusFinalError = ViewState("EstatusFinalError").ToString
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("EstatusFinalError") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveEstatusInicialOC As Integer
|
|
Get
|
|
CveEstatusInicialOC = ViewState("CveEstatusInicialOC").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveEstatusInicialOC") = value
|
|
End Set
|
|
End Property
|
|
Private Property SubProyectosNoAutorizados As List(Of String)
|
|
Get
|
|
SubProyectosNoAutorizados = CType(ViewState("SubProyectosNoAutorizados"), Global.System.Collections.Generic.List(Of String))
|
|
End Get
|
|
Set(value As List(Of String))
|
|
ViewState("SubProyectosNoAutorizados") = value
|
|
End Set
|
|
End Property
|
|
Private Property DtAC As DataTable
|
|
Get
|
|
DtAC = DirectCast(ViewState("DtAC"), DataTable)
|
|
End Get
|
|
|
|
Set(ByVal value As DataTable)
|
|
ViewState("DtAC") = value
|
|
End Set
|
|
End Property
|
|
Private 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 VerificaPresupuesto As Boolean
|
|
Get
|
|
VerificaPresupuesto = DirectCast(ViewState("VerificaPresupuesto"), Boolean)
|
|
End Get
|
|
|
|
Set(ByVal value As Boolean)
|
|
ViewState("VerificaPresupuesto") = value
|
|
End Set
|
|
End Property
|
|
Private Property LigaOCs As String
|
|
Get
|
|
LigaOCs = ViewState("LigaOCs").ToString
|
|
End Get
|
|
Set(ByVal value As String)
|
|
ViewState("LigaOCs") = value
|
|
End Set
|
|
End Property
|
|
Public Property CveOCGeneradas As List(Of Integer)
|
|
Get
|
|
CveOCGeneradas = DirectCast(ViewState("CveOCGeneradas"), List(Of Integer))
|
|
End Get
|
|
Set(ByVal value As List(Of Integer))
|
|
ViewState("CveOCGeneradas") = value
|
|
End Set
|
|
End Property
|
|
Public Property FolioOCGeneradas As List(Of Integer)
|
|
Get
|
|
FolioOCGeneradas = DirectCast(ViewState("FolioOCGeneradas"), List(Of Integer))
|
|
End Get
|
|
Set(ByVal value As List(Of Integer))
|
|
ViewState("FolioOCGeneradas") = value
|
|
End Set
|
|
End Property
|
|
Public Property IDPolizasGeneradas As List(Of Integer)
|
|
Get
|
|
IDPolizasGeneradas = DirectCast(ViewState("IDPolizasGeneradas"), List(Of Integer))
|
|
End Get
|
|
Set(ByVal value As List(Of Integer))
|
|
ViewState("IDPolizasGeneradas") = value
|
|
End Set
|
|
End Property
|
|
Public Property FoliosPolizas As List(Of Integer)
|
|
Get
|
|
FoliosPolizas = DirectCast(ViewState("FoliosPolizas"), List(Of Integer))
|
|
End Get
|
|
Set(ByVal value As List(Of Integer))
|
|
ViewState("FoliosPolizas") = value
|
|
End Set
|
|
End Property
|
|
Private Property EditarOC As Boolean
|
|
Get
|
|
EditarOC = CBool(ViewState("EditarOC").ToString)
|
|
End Get
|
|
Set(value As Boolean)
|
|
ViewState("EditarOC") = value
|
|
End Set
|
|
End Property
|
|
Private Property EjercicioAC As Integer
|
|
Get
|
|
Return ViewState("EjercicioAC").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("EjercicioAC") = value
|
|
End Set
|
|
End Property
|
|
Private Property IDPolizaPresupuestal As Integer
|
|
Get
|
|
Return ViewState("IDPolizaPresupuestal").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("IDPolizaPresupuestal") = value
|
|
End Set
|
|
End Property
|
|
Private Property DtBitacora As DataTable
|
|
Get
|
|
Return CType(ViewState("DtBitacora"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DtBitacora") = value
|
|
End Set
|
|
End Property
|
|
Private Property EntregaDirecta As Boolean
|
|
Get
|
|
EntregaDirecta = CBool(ViewState("EntregaDirecta").ToString)
|
|
End Get
|
|
Set(value As Boolean)
|
|
ViewState("EntregaDirecta") = 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
|
|
Private Property TieneVenta As Integer
|
|
Get
|
|
Return ViewState("TieneVenta").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("TieneVenta") = value
|
|
End Set
|
|
End Property
|
|
Private Property TieneCompraInv As Integer
|
|
Get
|
|
Return ViewState("TieneCompraInv").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("TieneCompraInv") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveCompra As Integer
|
|
Get
|
|
Return ViewState("CveCompra").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveCompra") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveMovimientoAlmacenVenta As Integer
|
|
Get
|
|
Return ViewState("CveMovimientoAlmacenVenta").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveMovimientoAlmacenVenta") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveConfianzaProveedor As Integer
|
|
Get
|
|
Return IfNull(ViewState("CveConfianzaProveedor"), -1).ToString().ToEntero()
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveConfianzaProveedor") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveProveedorOriginal As Integer
|
|
Get
|
|
Return IfNull(ViewState("CveProveedorOriginal"), -1).ToString().ToEntero()
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveProveedorOriginal") = value
|
|
End Set
|
|
End Property
|
|
Private Property CveEstatusSupervisada As Integer
|
|
Get
|
|
Return IfNull(ViewState("CveEstatusSupervisada"), -1).ToString().ToEntero()
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveEstatusSupervisada") = value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
Private Property CveDireccionEnvio As Integer
|
|
Get
|
|
If ViewState("CveDireccionEnvio") Is Nothing Then
|
|
Return -1
|
|
Else
|
|
Return ViewState("CveDireccionEnvio").ToString.ToEntero
|
|
End If
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveDireccionEnvio") = value
|
|
End Set
|
|
End Property
|
|
|
|
Private Property MonedaTexto As String
|
|
Get
|
|
If ViewState("MonedaTexto") Is Nothing Then
|
|
Return ""
|
|
Else
|
|
Return ViewState("MonedaTexto").ToString.ToEntero
|
|
End If
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("CveDireccionEnvio") = value
|
|
End Set
|
|
End Property
|
|
Private Property NumRow As Integer
|
|
|
|
|
|
Private Property SaldoOCAnticipo As Double
|
|
Get
|
|
If ViewState("SaldoOCAnticipo") Is Nothing Then
|
|
Return 0
|
|
Else
|
|
Return ViewState("SaldoOCAnticipo").ToString.ToDouble
|
|
End If
|
|
|
|
End Get
|
|
Set(value As Double)
|
|
ViewState("SaldoOCAnticipo") = value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
|
|
Private Property ImporteAnticipos As Double
|
|
Get
|
|
If ViewState("ImporteAnticipos") Is Nothing Then
|
|
Return 0
|
|
Else
|
|
Return ViewState("ImporteAnticipos").ToString.ToDouble
|
|
End If
|
|
|
|
End Get
|
|
Set(value As Double)
|
|
ViewState("ImporteAnticipos") = value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
|
|
|
|
Private Property CveOrdenTrabajo As Integer
|
|
Get
|
|
If ViewState("CveOrdenTrabajo") Is Nothing Then
|
|
Return -1
|
|
Else
|
|
Return ViewState("CveOrdenTrabajo").ToString.ToEntero
|
|
End If
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveOrdenTrabajo") = value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
|
|
Private Property ContratoObraAplciado As Boolean
|
|
Get
|
|
If ViewState("ContratoObraAplciado") Is Nothing Then
|
|
Return False
|
|
Else
|
|
Return Boolean.Parse(ViewState("ContratoObraAplciado").ToString)
|
|
End If
|
|
End Get
|
|
Set(value As Boolean)
|
|
ViewState("ContratoObraAplciado") = value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
|
|
|
|
If Not Page.IsPostBack Then
|
|
|
|
CargaDatosAgregarPS()
|
|
CveProveedorOriginal = -1
|
|
'MODALIDAD MULTIEMPRESA
|
|
CveEmpresaActual = UsuarioActual.CveEmpresa
|
|
CargaEstatusUsuariosClasificaciones()
|
|
|
|
TxtObsPS.Attributes.Add("maxlength", "750")
|
|
|
|
'FUNCIONALIDAD 108'
|
|
CargarOptionAnticipos()
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(556) = "1" Then
|
|
ChkCotizacion.Checked = True
|
|
ChkCotizacion.Enabled = False
|
|
End If
|
|
|
|
'CARGA YA REGISTRADO
|
|
If Request("OC") IsNot Nothing AndAlso IsNumeric(Request("OC")) AndAlso Request("OC").ToEntero > 0 Then
|
|
|
|
EsNuevo = False
|
|
ViewState("CveOrdenCompra") = Request("OC")
|
|
|
|
If UsuarioActual.TienePermisoProceso(131) Then
|
|
EditarOC = True
|
|
Else
|
|
EditarOC = False
|
|
End If
|
|
|
|
CargaDatos(CveOrdenCompra)
|
|
|
|
Else
|
|
LIContratos.Visible = True
|
|
EsNuevo = True
|
|
InicializarValores()
|
|
HlAgregarExcel.Visible = True
|
|
LbDescargarExcel.Visible = True
|
|
|
|
|
|
TxtDescrip.Attributes.Add("onKeyUp", String.Format("SetText({0}, {1})", TxtDescrip.ClientID, TxtJustificacion.ClientID))
|
|
CreaDTDetalles()
|
|
|
|
If Not IsNothing(Request("CveCotizacion")) AndAlso IsNumeric(Request("CveCotizacion")) Then
|
|
CveCotizacion = Request("CveCotizacion").ToString.ToEntero
|
|
|
|
If CveCotizacion > 0 Then
|
|
TRCotizacion.Visible = True
|
|
HLCotizacion.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", CveCotizacion)
|
|
|
|
Dim ObjVentas As New ClsVentas()
|
|
If ObjVentas.GetVenta(CveCotizacion, CveEmpresaActual) Then
|
|
If ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then
|
|
Dim DrCot As DataRow = ObjVentas.DtResultados.Rows(0)
|
|
If DrCot IsNot Nothing Then
|
|
HLCotizacion.Text = String.Format("{0}-{1}", DrCot("Serie"), DrCot("Folio")) 'CveVendedor
|
|
DdlVendedor.SelectedValueExist(DrCot("CveVendedor").ToString())
|
|
|
|
|
|
Try
|
|
Ddlcliente.txtText.Value = DrCot("ClienteNombre").ToString()
|
|
Ddlcliente.txtValue.Value = DrCot("CveCliente").ToString()
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
|
|
|
|
|
|
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Dim DtOCGeneradas As DataTable = Nothing
|
|
If ObjVentas.GetVentasCotizacionesOC(Me.CveVenta, -1, UsuarioActual.CveEmpresa) Then
|
|
DtOCGeneradas = ObjVentas.DtResultados.Copy()
|
|
End If
|
|
|
|
If DtOCGeneradas IsNot Nothing AndAlso DtOCGeneradas.Rows.Count > 0 Then
|
|
ObjVentas.Dispose()
|
|
BtnGuardar.Enabled = False
|
|
Alert("Ya existe una OC con esta cotización", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
CargaClasificacionesPopUp(CveCotizacion)
|
|
ObjVentas.Dispose()
|
|
End If
|
|
CargaDetallesCotizacion()
|
|
End If
|
|
|
|
ViewState("TipoOC") = If(Request("Tipo") IsNot Nothing, Request("Tipo").ToUpper, "REQ")
|
|
|
|
If TipoOC = "OC" Then
|
|
ViewState("TipoLargo") = "Orden de Compra"
|
|
ElseIf TipoOC = "OS" Then
|
|
ViewState("TipoLargo") = "Orden de Servicio"
|
|
Else
|
|
ViewState("TipoLargo") = "Requisicion"
|
|
End If
|
|
|
|
If TipoOC = "OC" Then ChkCotizacion.Visible = False
|
|
|
|
If TipoOC = "OS" Then
|
|
TipoOC = "REQ"
|
|
TipoOS = True
|
|
End If
|
|
|
|
BtnGeneraContrato.Visible = True : CargaClientesContrato()
|
|
|
|
CargaEstatusInicialFinal()
|
|
CargaEstatusUsuarios()
|
|
CargaEstatusOC()
|
|
|
|
'Estatus Default 66
|
|
If CveEmpresaActual = 66 Then
|
|
CboE.SelectedValueExist(18)
|
|
End If
|
|
|
|
'Poner el Estatus mas Avanzado
|
|
' If DtEstatusUsuarios.Rows.Count > 0 Then CboE.SelectedValue = DtEstatusUsuarios.MAX("Nivel").ToEntero Else DesHabilitar()
|
|
|
|
TxtFecha.Text = Now.ToString("dd/MM/yyyy")
|
|
lblNombreUsuario.Text = UsuarioActual.Nombre
|
|
ViewState("CveOrdenCompra") = 0
|
|
CargaFolios()
|
|
'BtnCancelarPrevio.Disabled = True
|
|
BtnCancelarPrevio.Enabled = False
|
|
|
|
If CveEstatusInicial = -1 Then Alert("No tiene configurado un Estatus Inicial", TipoMensaje.MsgAdvertencia) : BtnGuardar.Enabled = False
|
|
|
|
PnlProveedor.Visible = True : UPProv.Update()
|
|
|
|
'12/04/2018
|
|
'DdlIVA.Visible = True
|
|
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
ActivaAC()
|
|
End If
|
|
|
|
hplAgregarCotizacion.Visible = False
|
|
hplEnviarCorreo.Visible = False
|
|
|
|
'ASIGNA ESTATUS OC
|
|
CboE_SelectedIndexChanged(New Object, New EventArgs)
|
|
|
|
|
|
If Request("CveOrdenTrabajo") IsNot Nothing AndAlso Request("CveOrdenTrabajo").ToString.ToEntero > 0 Then
|
|
CveOrdenTrabajo = Request("CveOrdenTrabajo").ToEntero
|
|
CargaOT()
|
|
End If
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
|
'CARGA TITULO TIPO OC (REQ, OC, OS)
|
|
lblTitulo.Text = TipoLargo
|
|
|
|
'VALIDA PERMISOS
|
|
'If UsuarioActual.TienePermisoProceso(123) Then
|
|
' RFVcodigo.Enabled = True
|
|
'End If
|
|
|
|
'FUNCIONALIDAD 105
|
|
CargaFuncionalidad105()
|
|
|
|
'ACTIVAR MODIFICAR IVA
|
|
ActivarIVAEditable()
|
|
|
|
'ACTIVAR RETENCIONES
|
|
ActivarRetenciones()
|
|
|
|
'ACTIVA DESCUENTOS
|
|
ActivarDescuentos()
|
|
|
|
'BITACORA TEMPORAL
|
|
InicializaBitacoraTemporal()
|
|
|
|
'ACTIVA CREAR APARTIR DE
|
|
ActivaCrearApartirDe()
|
|
|
|
'ACTIVA CONFIRMACION GUARDAR
|
|
If UsuarioActual.CveEmpresa = 72 Or UsuarioActual.CveEmpresa = 80 Then
|
|
BtnGuardar.OnClientClick = "ValidaGuardar();"
|
|
BtnGuardar.Attributes.Add("data-toggle", "confirmation")
|
|
BtnGuardar.Attributes.Add("data-popout", "true")
|
|
BtnGuardar.Attributes.Add("data-original-title", "confirmar")
|
|
BtnGuardar.Attributes.Add("data-btn-ok-label", "Guardar")
|
|
BtnGuardar.Attributes.Add("data-html", "true")
|
|
End If
|
|
|
|
'CARGA SUCURSALES DEL CLIENTE
|
|
CargaDdlSucursalCliente()
|
|
|
|
'CASOS ESPECIALES EMPRESA DEMO Y PRUEBAS
|
|
If UsuarioActual.CveEmpresa < 2 Then
|
|
ChkEntregaDirecta.Visible = False
|
|
End If
|
|
|
|
If UsuarioActual.Empresa.CvePlataforma = 2 Then
|
|
DivPrioridad.Visible = False
|
|
LblPrioridad.Visible = False
|
|
LblFechaEstimada.Visible = False
|
|
DivFechaEstimada.Visible = False
|
|
ChkCotizacion.Visible = False
|
|
tabCotizaciones.Visible = False
|
|
ThActivoFijo.Visible = False
|
|
TdActivoFijo.Visible = False
|
|
THDescuento.Visible = True
|
|
TDDescuento.Visible = True
|
|
LblObsPrioridad.Visible = False
|
|
divtxtprioridad.Visible = False
|
|
End If
|
|
|
|
CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, TtituloProyecto, TituloSubProyecto)
|
|
CargarCentrosDeCosto(Nothing, DdlSubProyectoContrato, LblProyecto, LblSubProyecto)
|
|
DivProyecto.Visible = DdlProyecto.Visible
|
|
|
|
DdlSubProyecto.Items.Clear()
|
|
' aqui tiene otras condiciones especiales
|
|
DdlSubProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
|
|
DdlSubProyecto.DataBind()
|
|
DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
DdlSubProyectoContrato.Items.Clear()
|
|
DdlSubProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(-1, -1, CveEmpresaActual, 1)) ' DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
|
|
DdlSubProyectoContrato.DataBind()
|
|
DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 Then
|
|
DVCultivosCuadro.Visible = True
|
|
DdlSubProyecto.AutoPostBack = True
|
|
DdlCultivosCuadro.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyecto.SelectedValue}")
|
|
DdlCultivosCuadro.DataBind()
|
|
DdlCultivosCuadro.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
|
|
|
|
End If
|
|
|
|
'SOLO SE MUESTRA CUANDO ES REGISTRO NUEVO
|
|
If Not CveOrdenCompra > 0 Then
|
|
If UsuarioActual.Empresa.EsComercializadora And Not CveCotizacion > 0 Then
|
|
VerificarClasificaciones(True)
|
|
Else
|
|
CargaClasificaciones()
|
|
End If
|
|
Else
|
|
' NO SE CARGABAN CLASIFICACIONES CUANDO YA ESTABA REGISTRADA
|
|
If UsuarioActual.Empresa.EsComercializadora And Not CveCotizacion > 0 Then
|
|
'NO SE QUE DEBERIA SER AQUI. [IPP]
|
|
Else
|
|
CargaClasificaciones()
|
|
End If
|
|
End If
|
|
|
|
'InicializaSolicitarAnticipo()
|
|
|
|
If TipoOC = "REQ" Then
|
|
BtnSolicitudAnticipo.Visible = False
|
|
End If
|
|
|
|
Ddlcliente.ddlWS.Attributes.Add("data-coltexto", "N")
|
|
|
|
'Nuevo Proceso que permite modificar detalles
|
|
'If Not UsuarioActual.TienePermisoProceso(131) Then
|
|
If GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows.Count > 0 Then
|
|
Dim Dr As DataRow
|
|
Dr = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus))(0)
|
|
If (UsuarioActual.TienePermisoProceso(203)) AndAlso Dr("TipoTermino").ToString.ToEntero = 3 AndAlso Dr("Tipo").ToString = "OC" Then
|
|
CargaClasificaciones()
|
|
If Not UsuarioActual.TienePermisoProceso(131) Then DesHabilitar()
|
|
GvD.Columns(9).Visible = True
|
|
LbAgregar.Enabled = True
|
|
txtPrecioUnitario.Enabled = True
|
|
DdlProyecto.Enabled = True
|
|
DdlSubProyecto.Enabled = True
|
|
TxtObsPS.Enabled = True
|
|
CboUnidadMedida.Enabled = True
|
|
DdlClasificacion.Enabled = True
|
|
DdlP2.Enabled = True
|
|
TxtCant.Enabled = True
|
|
BtnGuardar.Enabled = True
|
|
BtnCancelar.Enabled = True
|
|
ElseIf Dr("TipoTermino").ToString.ToEntero = 3 And Dr("Tipo").ToString = "OC" AndAlso Not UsuarioActual.TienePermisoProceso(131) Then
|
|
DesHabilitar()
|
|
End If
|
|
End If
|
|
'End If
|
|
|
|
'NO PERMITE REGISTRAR PS
|
|
If UsuarioActual.TienePermisoProceso(249) Then
|
|
HplAddClasificacion.Visible = False
|
|
HplPS.Visible = False
|
|
End If
|
|
|
|
UPPDetalle.Update()
|
|
|
|
PermisosPagina()
|
|
RegistraScript("$get('HdnWidth').value = $('#C_Tab_TabC_DivConceptosContenido').width();")
|
|
|
|
'NO MOSTRAR LA OPCION DE ENTREGA DIRECTA (ECONOLLANTAS)
|
|
If UsuarioActual.CveEmpresa = 141 Then
|
|
DivEntregaDirecta.Visible = False
|
|
ChkEntregaDirecta.Enabled = False
|
|
ChkEntregaDirecta.Checked = False
|
|
End If
|
|
|
|
End If
|
|
MostrarUsuarioAsignado()
|
|
Me.Form.DefaultButton = ""
|
|
End Sub
|
|
|
|
#Region " PERMISOS PAGINA "
|
|
Private Sub PermisosPagina()
|
|
ActivarIVAEditable()
|
|
End Sub
|
|
Private Sub ActivarIVAEditable()
|
|
If UsuarioActual.TienePermisoProceso(141) Then
|
|
TxtIVA.Visible = True
|
|
LblIVA.Visible = False
|
|
End If
|
|
End Sub
|
|
Protected Sub BtnAplicarIVA_Click(sender As Object, e As EventArgs)
|
|
AplicarIVA()
|
|
End Sub
|
|
Private Sub AplicarIVA()
|
|
If LblSubTotal.Text.ToDecimal <= 0 Then
|
|
Alert("Para aplicar un IVA, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia)
|
|
TxtIVA.Text = "0.00"
|
|
CalculaGenerales()
|
|
Exit Sub
|
|
End If
|
|
|
|
If Math.Round(DdlIVA.SelectedValue.ToDouble, 2) = 1 Then
|
|
Alert("Para aplicar un IVA, debe de seleccionar un porcentaje en el combo de IVA.", TipoMensaje.MsgAdvertencia)
|
|
TxtIVA.Text = "0.00"
|
|
CalculaGenerales()
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim Total As Double = 0
|
|
For Each Dr As DataRow In DtDetalle.Rows
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=Dr("CvePS").ToString.ToEntero).FiltroPrimero("")
|
|
If DrPS IsNot Nothing AndAlso DrPS("IVA").ToString.ToEntero = -1 Then
|
|
Total += Dr("Total").ToString.ToDouble
|
|
End If
|
|
Next
|
|
|
|
Dim Porcentaje = TxtIVA.Text.ToDecimal / Total
|
|
Dim LastDr As DataRow = Nothing
|
|
For Each Dr As DataRow In DtDetalle.Rows
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=Dr("CvePS").ToString.ToEntero).FiltroPrimero("")
|
|
If DrPS IsNot Nothing AndAlso DrPS("IVA").ToString.ToEntero = -1 Then
|
|
Dr("IVA") = Math.Round(Dr("Total").ToString.ToDecimal * Porcentaje, 6)
|
|
Dr("IVAPorcentaje") = Math.Round(Porcentaje, 2)
|
|
|
|
' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1)
|
|
LastDr = Dr
|
|
Else
|
|
Dr("IVA") = 0
|
|
Dr("IVAPorcentaje") = 0
|
|
End If
|
|
Next
|
|
If Not IsNothing(LastDr) Then
|
|
Dim Fdes As Decimal = TxtIVA.Text.ToDecimal - DtDetalle.SUM("IVA").ToString.ToDecimal
|
|
If Fdes > 0 Then
|
|
LastDr("IVA") = Math.Round(LastDr("IVA").ToString.ToDecimal + Fdes, 6)
|
|
End If
|
|
End If
|
|
|
|
CalculaGenerales()
|
|
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
UPPDetalle.Update()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " FUNCIONALIDAD 105-141 "
|
|
Private Sub CargaFuncionalidad105()
|
|
Dim EsWS = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False)
|
|
|
|
DdlP2.setEsWebService(EsWS)
|
|
|
|
If DdlP2.UsaWebService Then
|
|
If isWithFamily() Then
|
|
DdlP2.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacion.ClientID)
|
|
Else
|
|
DdlP2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
|
|
End If
|
|
|
|
DdlP2.ddlWS.Attributes.Add("data-pagina", "oc/oc")
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(141) = "1" Or True Then
|
|
DdlP2.ddlWS.Attributes.Add("Data-onresult", "CargaExistenciaAlmacenes")
|
|
CargaSucursal()
|
|
DdlSubProyecto.AutoPostBack = True
|
|
End If
|
|
DdlP2.Attributes.Add("Data-usoclasificacion", "-1")
|
|
Else
|
|
CargaPS(-1, DdlP2)
|
|
'DdlP2.ddl.Items.Add(New ListItem("Seleccione", "-1"))
|
|
'DdlP2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
|
|
End If
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region " CARGA VALORES INICIALES "
|
|
Private Sub InicializarValores()
|
|
ViewState("NumCotizacionesGanadoras") = 0
|
|
ViewState("TotalCotizacionesGanadoras") = 0
|
|
ViewState("TipoOC") = "OC"
|
|
ViewState("CveEstatus") = -1
|
|
ViewState("CveEstatusSiguiente") = -1
|
|
EditarOC = False
|
|
CveEstatusFinalOK = -2
|
|
'BtnCancelarPrevio.Disabled = True
|
|
BtnCancelarPrevio.Enabled = False
|
|
Folio = 0
|
|
'ViewState("ArrayCCNombre") = ""
|
|
ViewState("ArrayCC") = ""
|
|
ViewState("EjercicioAC") = -1
|
|
ViewState("CveUsuario") = -1
|
|
CveVenta = -1
|
|
TieneVenta = -1
|
|
TieneCompraInv = -1
|
|
CveCompra = -1
|
|
CveMovimientoAlmacenVenta = -1
|
|
IDPolizaPresupuestal = -1
|
|
CveIEAnticipo = -1
|
|
|
|
Dim drE As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = 'OC' AND TipoTermino = 3")).FiltroPrimero("")
|
|
If drE IsNot Nothing Then ViewState("CveEstatusInicialOC") = drE("CveEstatus").ToString.ToEntero
|
|
|
|
ViewState("LigaOCs") = ""
|
|
ViewState("CveOCGeneradas") = New List(Of Integer)
|
|
ViewState("FolioOCGeneradas") = New List(Of Integer)
|
|
ViewState("IDPolizasGeneradas") = New List(Of Integer)
|
|
ViewState("FoliosPolizas") = New List(Of Integer)
|
|
Session("FileUpload") = ""
|
|
Session("FileExtension") = ""
|
|
Session("FileFolder") = ""
|
|
TipoOS = False
|
|
RequiereSubProyecto = If(CveEmpresaActual = 48, False, True)
|
|
txtPrecioUnitario.Attributes.Add("onKeyUp", "obtenertotal();")
|
|
TxtCant.Attributes.Add("onKeyUp", "obtenertotal();")
|
|
Dim script As String = "obtenertotal();"
|
|
ScriptManager.RegisterStartupScript(Me, GetType(Page), "anioactual", script, True)
|
|
VerificaPresupuesto = False
|
|
RVSubProyecto.Enabled = If(RequiereSubProyecto = True, True, False)
|
|
CargaComboCFDI()
|
|
CargaMonedas()
|
|
'CargaUnidadesMedida()
|
|
BtnCancelar.Attributes.Add("disabled", "disabled")
|
|
TxtCancelar.Attributes.Add("onKeyUp", "fncCan(this)")
|
|
CargaTipoActivoFijo()
|
|
DrEliminados = New ArrayList
|
|
|
|
CargaProveedores()
|
|
End Sub
|
|
|
|
Private Sub CreaDTDetalles()
|
|
DtDetalle = New DataTable
|
|
DtDetalle.Columns.Add("Cantidad", GetType(Double))
|
|
DtDetalle.Columns.Add("CveUnidadMedida", GetType(Integer))
|
|
DtDetalle.Columns.Add("UM", GetType(String))
|
|
DtDetalle.Columns.Add("CvePS", GetType(Integer))
|
|
DtDetalle.Columns.Add("PS", GetType(String))
|
|
DtDetalle.Columns.Add("IVA", GetType(Double))
|
|
DtDetalle.Columns.Add("IVAPorcentaje", GetType(Double))
|
|
DtDetalle.Columns.Add("IEPSPS", GetType(Double))
|
|
DtDetalle.Columns.Add("IEPSPSPorcentaje", GetType(Double))
|
|
DtDetalle.Columns.Add("IEPSPSIVA", GetType(Double))
|
|
DtDetalle.Columns.Add("IEPSPSIVAPorcentaje", GetType(Double))
|
|
DtDetalle.Columns.Add("RetIVA", GetType(Double))
|
|
DtDetalle.Columns.Add("RetIVAPorcentaje", GetType(Double))
|
|
DtDetalle.Columns.Add("RetISR", GetType(Double))
|
|
DtDetalle.Columns.Add("RetISRPorcentaje", GetType(Double))
|
|
DtDetalle.Columns.Add("Observacion", GetType(String))
|
|
DtDetalle.Columns.Add("CveClasificacion", GetType(Integer))
|
|
DtDetalle.Columns.Add("Clasificacion", GetType(String))
|
|
DtDetalle.Columns.Add("CveSubFamilia", GetType(Integer))
|
|
DtDetalle.Columns.Add("SubFamilia", GetType(String))
|
|
|
|
DtDetalle.Columns.Add("CveProyecto", GetType(Integer))
|
|
DtDetalle.Columns.Add("Proyecto", GetType(String))
|
|
DtDetalle.Columns.Add("CveSubProyecto", GetType(Integer))
|
|
DtDetalle.Columns.Add("SubProyecto", GetType(String))
|
|
DtDetalle.Columns.Add("Importe", GetType(Double))
|
|
DtDetalle.Columns.Add("Descuento", GetType(Double))
|
|
DtDetalle.Columns.Add("Total", GetType(Double))
|
|
|
|
DtDetalle.Columns.Add("Codigo", GetType(String))
|
|
DtDetalle.Columns.Add("CodigoAF", GetType(String))
|
|
DtDetalle.Columns.Add("CveActivoFijo", GetType(Integer))
|
|
DtDetalle.Columns.Add("TipoDato", GetType(Integer)) ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
DtDetalle.Columns.Add("CveOrdenCompraDetalle", GetType(Integer))
|
|
DtDetalle.Columns.Add("CveOrdenCompra", GetType(Integer))
|
|
|
|
DtDetalle.Columns.Add("CveOrdenCompraPadre", GetType(Integer))
|
|
DtDetalle.Columns.Add("FolioOrdenCompraPadre", GetType(Integer))
|
|
DtDetalle.Columns.Add("CveOrdenCompraHija", GetType(Integer))
|
|
DtDetalle.Columns.Add("FolioOrdenCompraHija", GetType(Integer))
|
|
|
|
'AC
|
|
DtDetalle.Columns.Add("CvePresupuestoEgreso", GetType(Integer))
|
|
DtDetalle.Columns.Add("IdCuentaPorEjercer", GetType(String))
|
|
DtDetalle.Columns.Add("IdCuentaComprometido", GetType(String))
|
|
DtDetalle.Columns.Add("CveProgramaOperativo", GetType(Integer))
|
|
DtDetalle.Columns.Add("CveUnidadAdministrativa", GetType(Integer))
|
|
DtDetalle.Columns.Add("CveFuenteFinanciamiento", GetType(Integer))
|
|
DtDetalle.Columns.Add("CveTipoGasto", GetType(Integer))
|
|
DtDetalle.Columns.Add("CveClasificacionOG", GetType(Integer))
|
|
|
|
DtDetalle.Columns.Add("FolioCompra", GetType(Integer))
|
|
DtDetalle.Columns.Add("CveCompra", GetType(Integer))
|
|
DtDetalle.Columns.Add("CveProveedor", GetType(Integer))
|
|
|
|
DtDetalle.Columns.Add("CveContratoDetalle", GetType(Integer))
|
|
DtDetalle.Columns.Add("CantidadNoEditable", GetType(Double))
|
|
|
|
DtDetalle.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer))
|
|
|
|
DtDetalle.Columns.Add("CveTipoGastoObra", GetType(Integer))
|
|
DtDetalle.Columns.Add("CveCultivoCuadroDetalle", GetType(Integer))
|
|
DtDetalle.Columns.Add("Cuadro", GetType(String))
|
|
|
|
'DtDetalle.Columns.Add("CveOrdenCompraDetalle", GetType(Integer))
|
|
|
|
' DtDetalle.Columns.Add("ClasificacionOG", GetType(String))
|
|
|
|
End Sub
|
|
Private Sub CargaDetallesCotizacion()
|
|
|
|
If CveCotizacion > 0 Then
|
|
Dim ObjVentas As New ClsVentas
|
|
If ObjVentas.GetVentaDetalle(CveCotizacion) Then
|
|
|
|
For Each RowV As DataRow In ObjVentas.DtResultados.Rows
|
|
'If Not IsNothing(RowV) Then
|
|
Dim dr As DataRow = DtDetalle.NewRow
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=RowV("CvePS").ToString.ToEntero).FiltroPrimero("")
|
|
If DrPS Is Nothing Then
|
|
Alert("Ocurrió un error al cargar la información de los productos. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
dr("Cantidad") = RowV("Cantidad")
|
|
dr("CveUnidadMedida") = RowV("CveUM")
|
|
dr("UM") = RowV("UM")
|
|
dr("CvePS") = RowV("CvePS")
|
|
dr("PS") = RowV("CodigoPS")
|
|
dr("IVA") = 0
|
|
dr("IVAPorcentaje") = DrPS("IVA").ToString.ToDouble
|
|
dr("RetIVA") = 0
|
|
dr("RetIVAPorcentaje") = DrPS("RetIVA").ToString.ToDouble
|
|
dr("RetISR") = 0
|
|
dr("RetISRPorcentaje") = DrPS("RetISR").ToString.ToDouble
|
|
dr("IEPSPS") = 0
|
|
dr("IEPSPSPorcentaje") = DrPS("IEPSPorcentaje").ToString.ToDouble
|
|
dr("IEPSPSIVA") = 0
|
|
dr("IEPSPSIVAPorcentaje") = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0)
|
|
dr("Observacion") = RowV("Obs")
|
|
dr("CveClasificacion") = RowV("CveClasificacion")
|
|
dr("Clasificacion") = RowV("Clasificacion")
|
|
|
|
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
dr("CveProyecto") = "-1"
|
|
dr("Proyecto") = "Sin Proyecto"
|
|
Else
|
|
dr("CveProyecto") = RowV("CveProyecto")
|
|
dr("Proyecto") = If(RowV("CveProyecto").ToString.ToEntero > 0, RowV("Proyecto"), "Sin Proyecto")
|
|
End If
|
|
|
|
dr("CveSubProyecto") = RowV("CveSubProyecto")
|
|
dr("SubProyecto") = If(RowV("CveSubProyecto").ToString.ToEntero > 0, RowV("SubProyecto"), "Sin SubProyecto")
|
|
dr("Importe") = 0
|
|
dr("Descuento") = 0
|
|
dr("Total") = 0
|
|
|
|
dr("CodigoAF") = ""
|
|
dr("CveActivoFijo") = -1
|
|
dr("TipoDato") = 0 ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
dr("CveOrdenCompraDetalle") = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100
|
|
dr("CveOrdenCompra") = -1
|
|
|
|
'dr("CvePresupuestoEgreso") = HdnCvePresupuesto.Value.ToEntero
|
|
dr("IdCuentaPorEjercer") = -1
|
|
dr("IdCuentaComprometido") = -1
|
|
|
|
dr("CveProgramaOperativo") = -1
|
|
dr("CveUnidadAdministrativa") = -1
|
|
dr("CveFuenteFinanciamiento") = -1
|
|
dr("CveTipoGasto") = -1
|
|
dr("CveClasificacionOG") = -1
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(583) = "1" Then
|
|
dr("CveVentaDetalleCotizacion") = RowV("CveVentaDetalle")
|
|
End If
|
|
|
|
DtDetalle.Rows.Add(dr)
|
|
|
|
Next
|
|
CargaDatosDetalles()
|
|
End If
|
|
ObjVentas.Dispose()
|
|
End If
|
|
End Sub
|
|
Protected Sub CargaEstatusUsuarios()
|
|
'Dim objEstatusUsuarios As New ClsOC
|
|
|
|
'If objEstatusUsuarios.GetEstatusUsuarios(UsuarioActual.CveUsuario, -1, -1, -1, CveEmpresaActual) Then
|
|
' If DtEstatusUsuarios Is Nothing Then
|
|
' DtEstatusUsuarios = objEstatusUsuarios.DtResultados.FiltraParametros(String.Format("Tipo = '{0}'", TipoOC), "CveEstatusSiguiente")
|
|
' ElseIf HacerMerge = True Then
|
|
' DtEstatusUsuarios.Merge(objEstatusUsuarios.DtResultados.FiltraParametros(String.Format("Tipo = '{0}'", TipoOC), "CveEstatusSiguiente"))
|
|
' End If
|
|
'End If
|
|
|
|
'objEstatusUsuarios.Dispose()
|
|
|
|
DtEstatusUsuarios = GlobalDTOCEstatusUsuarios(CveEmpresaActual, UsuarioActual.CveUsuario, TipoOC)
|
|
|
|
End Sub
|
|
Protected Sub CargaSuperior()
|
|
If CboE.SelectedValue.ToEntero > 0 Then
|
|
Dim RowActual As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimero(String.Format("CveEstatus = {0}", CboE.SelectedValue))
|
|
If Not IsNothing(RowActual) Then
|
|
|
|
hdnCveSuperior.Value = "-1"
|
|
'Si el TipoTermino es diferente de 1 (Autorizada) y 2 (Rechazada), revisar cual seria el superior
|
|
If RowActual("TipoTermino").ToString.ToEntero <> 1 And RowActual("TipoTermino").ToString.ToEntero <> 2 AndAlso DtEstatusUsuarios IsNot Nothing Then
|
|
Dim TotalT As Decimal = LblTotal.Text.Replace(",", "").Replace("$", "").ToDecimal
|
|
|
|
If DtDetalle IsNot Nothing Then
|
|
For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto"}).Rows
|
|
For Each RowE As DataRow In DtEstatusUsuarios.FiltraParametros(String.Format("{0} CveEstatus = {1} AND ((LimiteInferior IS NULL OR LimiteInferior <= {2}) AND (LimiteSuperior IS NULL OR LimiteSuperior >= {2})) ", If(Row("CveSubProyecto").ToString <> "", String.Format("CveSubProyecto = {0} AND ", Row("CveSubProyecto").ToString), ""), CboE.SelectedValue, TotalT)).Rows
|
|
hdnCveSuperior.Value = RowE("CveSuperior").ToString
|
|
Next
|
|
Next
|
|
End If
|
|
uppEstatus.Update()
|
|
End If
|
|
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
Private Sub CargaFolios()
|
|
Dim ObjFolios As New ClsGralFolios()
|
|
TipoOC = If(TipoOS, "OS", TipoOC)
|
|
If ObjFolios.GetFolios(If(TipoOC = "REQ", "Req", TipoOC), CveEmpresaActual) Then
|
|
Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros("Estado = 'Activo'")
|
|
'Verificar primero en la sucursal del usuario
|
|
If DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows.Count > 0 Then
|
|
ViewState("CveFolio") = DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows(0)("CveFolio").ToString.ToEntero
|
|
ViewState("FolioActual") = DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows(0)("FActual").ToString
|
|
lblFolio.Text = TipoOC + " " + DT.Rows(0)("FActual").ToString
|
|
ElseIf DT.Rows.Count > 0 Then
|
|
ViewState("CveFolio") = DT.Rows(0)("CveFolio").ToString.ToEntero
|
|
ViewState("FolioActual") = DT.Rows(0)("FActual").ToString
|
|
lblFolio.Text = TipoOC + " " + DT.Rows(0)("FActual").ToString
|
|
Else
|
|
Alert("No tiene registrados Folios en esta sucursal.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
DT.Dispose()
|
|
End If
|
|
ObjFolios.Dispose()
|
|
End Sub
|
|
Protected Sub CargaEstatusUsuariosClasificaciones()
|
|
Dim ObjOC As New ClsOC
|
|
|
|
If ObjOC.GetEstatusUsuariosClasificaciones(-1, UsuarioActual.CveUsuario, -1, -1, CveEmpresaActual) Then
|
|
DtEstatusUsuariosClasificaciones = ObjOC.DtResultados
|
|
Else
|
|
Alert("Ocurrió un error al obtener los permisos del usuario. Por favor vuelva cargar.", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
ObjOC.Dispose()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " CARGA DATOS "
|
|
Private Sub CargaDatos(pCveOrdenCompra As Integer)
|
|
|
|
'REINICIALIZA
|
|
TrPendientes.Visible = False
|
|
|
|
Dim objOC As New ClsOC
|
|
|
|
If objOC.GetOC(pCveOrdenCompra, CveEmpresaActual, CveUsuario:=UsuarioActual.CveUsuario) AndAlso objOC.DtResultados.Rows.Count > 0 Then
|
|
CveEmpresaActual = objOC.CveEmpresa
|
|
InicializarValores()
|
|
|
|
ViewState("CveOrdenCompra") = pCveOrdenCompra
|
|
ViewState("Folio") = objOC.Folio
|
|
ViewState("CveEstatus") = objOC.CveEstatus
|
|
ViewState("CveEstatusSiguiente") = objOC.CveEstatusSiguiente
|
|
ViewState("CveEstatusAnterior") = objOC.CveEstatusAnterior
|
|
ViewState("CveUsuario") = objOC.CveUsuario
|
|
ViewState("CvePresupuestoEgreso") = objOC.CvePresupuestoEgreso
|
|
|
|
'PROMOCIONES
|
|
TxtPromocion.Text = objOC.Promocion
|
|
ChkPromocion.Checked = TxtPromocion.Text.Trim.Length > 0
|
|
If ChkPromocion.Checked Then
|
|
TxtPromocion.Style.Remove("display")
|
|
End If
|
|
|
|
PanelContrato.Visible = False
|
|
MPContrato.Enabled = False
|
|
'SOLICITUD DE ANTICIPO
|
|
CveIEAnticipo = objOC.CveIEAnticipo
|
|
CveUsuarioAsignado = objOC.CveUsuarioAsignado
|
|
'LtImporteIEAnticipo.Text = objOC.ImporteAnticipo.FormatoNumero
|
|
'LtFolioIEAnticipo.Text = $"<a class=""Texto"" href=""/Bancos/IE.aspx?CveIE={objOC.CveIEAnticipo}"" target=""_blank"">{objOC.FolioIEAnticipo}</a>"
|
|
|
|
CveVenta = objOC.CveVenta
|
|
TieneVenta = objOC.TieneVenta
|
|
TieneCompraInv = objOC.TieneCompraInv
|
|
|
|
CveCompra = objOC.CveCompra
|
|
CveMovimientoAlmacenVenta = objOC.CveMovimientoAlmacenVenta
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then
|
|
CveConfianzaProveedor = objOC.DtResultados.Rows(0)("CveConfianzaProveedor").ToString.ToEntero
|
|
'SI NO TIENE ASIGNADO UN NIVEL DE CONFIANZA SE ASIGNARA EL VALOR DE 'PROVEEDOR NO DEDICADO'
|
|
If CveConfianzaProveedor <= 0 Then
|
|
CveConfianzaProveedor = 2
|
|
End If
|
|
End If
|
|
|
|
'Anticipos
|
|
CargarOptionAnticipos()
|
|
CargaAnticiposSolicitudes()
|
|
|
|
|
|
CveCotizacion = objOC.DtResultados.Rows(0)("CveCotizacion").ToString.ToEntero
|
|
If CveCotizacion > 0 Then
|
|
TRCotizacion.Visible = True
|
|
HLCotizacion.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", CveCotizacion)
|
|
HLCotizacion.Text = objOC.DtResultados.Rows(0)("Cotizacion").ToString
|
|
End If
|
|
|
|
''DATOS DE VENTA
|
|
If UsuarioActual.Empresa.Funcionalidad(108) = "1" Then
|
|
|
|
Ddlcliente.txtValue.Value = objOC.CveCliente.ToString
|
|
Ddlcliente.txtText.Value = objOC.NombreCliente
|
|
|
|
'If Ddlcliente.SelectedValue <> objOC.CveCliente.ToString Then
|
|
|
|
' Ddlcliente.Items.Insert(1, New ListItem(GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Nombre", $"CveCliente = {objOC.CveCliente}"), objOC.CveCliente.ToString))
|
|
|
|
'End If
|
|
|
|
DdlVendedor.SelectedValueExist(objOC.CveVendedor.ToString)
|
|
If DdlVendedor.SelectedValue <> objOC.CveVendedor.ToString Then
|
|
DdlVendedor.Items.Insert(1, New ListItem(GlobalDTVendedores(UsuarioActual.CveEmpresa, False).FiltroPrimeroValor("Vendedor", $"CveVendedor = {objOC.CveVendedor}"), objOC.CveVendedor.ToString))
|
|
End If
|
|
End If
|
|
|
|
EntregaDirecta = objOC.EntregaDirecta
|
|
ChkEntregaDirecta.Checked = EntregaDirecta
|
|
CambiaEntregaDirecta()
|
|
TxtLugarEntregaDirecta.Text = objOC.LugarEntrega
|
|
DdlDireccionEnvio.SelectedValueExist(objOC.CveDireccionEnvio.ToString)
|
|
DdlUsoCFDI.SelectedValueExist(objOC.CveUsoCFDI.ToString)
|
|
|
|
If objOC.CveDireccionEnvio > 0 And DdlDireccionEnvio.SelectedValue.ToEntero <> objOC.CveDireccionEnvio Then
|
|
Alert("La dirección de envio no se pudo cargar correctamente. Por favor verifique que la dirección de envio aun este vigente.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
txtobsprioridad.Text = objOC.PrioridadObservacion
|
|
TxtFechaEstimadaEntrega.Text = If(objOC.FechaEstimadaEntrega.Year <> 1, objOC.FechaEstimadaEntrega.ToShortDateString(), "")
|
|
txtLugarEntrega.Text = objOC.LugarEntrega
|
|
TxtDescrip.Text = objOC.Descripcion
|
|
TxtJustificacion.Text = objOC.Justificacion
|
|
DdlMoneda.SelectedValueExist(objOC.CveMoneda.ToString)
|
|
MonedaTexto = DdlMoneda.SelectedItem.Text
|
|
Select Case objOC.PorcentajeIVA.ToString.ToDouble
|
|
Case 0
|
|
DdlIVA.SelectedValue = "1"
|
|
Case 0.16
|
|
DdlIVA.SelectedValue = "1.16"
|
|
Case 0.08
|
|
DdlIVA.SelectedValue = "1.08"
|
|
End Select
|
|
'If objOC.PorcentajeIVA.ToString.ToDouble = 0 Then DdlIVA.SelectedValue = "1" Else DdlIVA.SelectedValue = "1.16"
|
|
|
|
DdlPrioridad.SelectedValueExist(objOC.Prioridad.ToString)
|
|
ChkCotizacion.Checked = objOC.RequiereCotizacion
|
|
|
|
If ChkCotizacion.Checked AndAlso UsuarioActual.Empresa.Funcionalidad(565) = "1" Then
|
|
ChkCotizacion.Enabled = False
|
|
End If
|
|
|
|
tabCotizaciones.Enabled = objOC.RequiereCotizacion
|
|
tabCotizaciones.UpdatePanelID = uppOpciones.ID
|
|
TxtGuia.Text = objOC.Guia
|
|
|
|
TxtFecha.ToolTip = objOC.Fecha.ToString("dd/MM/yyyy HH:mm")
|
|
TxtFecha.Text = objOC.Fecha.ToString("dd/MM/yyyy")
|
|
|
|
''RETENSIONES
|
|
CargaRetenciones(objOC.RetIVA, objOC.RetISR, objOC.IEPS)
|
|
|
|
lblNombreUsuario.Text = objOC.NombreUsuario
|
|
|
|
LblCodigo.Text = objOC.Codigo
|
|
TxtFolioAdicional.Text = objOC.FolioAdicional
|
|
|
|
If Not IsNothing(objOC.Tipo) Then
|
|
|
|
Select Case objOC.Tipo.ToUpper
|
|
Case "OC"
|
|
ViewState("TipoOC") = objOC.Tipo
|
|
ViewState("TipoLargo") = "Orden de Compra"
|
|
|
|
'ENTREGA DIRECTA VIEJO
|
|
If EntregaDirecta Then
|
|
ChkEntregaDirecta.Checked = True
|
|
If CveVenta > 0 And CveCompra > 0 And CveMovimientoAlmacenVenta <= 0 Then
|
|
HLGenerarRecepcion.Visible = True
|
|
HLGenerarRecepcion.NavigateUrl = $"/Inventarios/RecepcionAlmacen.aspx?CveCompra={CveCompra}&CveVenta={CveVenta}"
|
|
ElseIf Not CveVenta > 0 Then
|
|
HLGenerarVenta.Visible = True
|
|
HLGenerarVenta.NavigateUrl = $"/Ventas/Ventas.aspx?CveOC={pCveOrdenCompra}"
|
|
End If
|
|
|
|
'BLOQUEA POR SI YA TIENE VENTA
|
|
If CveVenta > 0 Then
|
|
DdlVendedor.Enabled = False
|
|
Ddlcliente.Enabled = False
|
|
ChkEntregaDirecta.Enabled = False
|
|
End If
|
|
End If
|
|
|
|
HLGenerarVenta.Visible = True
|
|
HLGenerarVenta.NavigateUrl = $"/Ventas/Ventas.aspx?CveOC={pCveOrdenCompra}"
|
|
|
|
lblFolio.Text = String.Format("OC {0}", objOC.Folio)
|
|
lblTipoPadreHijo.Text = "REQ"
|
|
ChkCotizacion.Visible = False
|
|
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
ActivaAC()
|
|
End If
|
|
|
|
If objOC.IdPoliza > 0 Then
|
|
HplCompraContabilizada.Text = "Si" : HplCompraContabilizada.NavigateUrl = String.Format("/Contabilidad/RegPoliza.aspx?IdPoliza={0}", objOC.IdPoliza) : trContabilizada.Visible = True
|
|
IDPolizaPresupuestal = objOC.IdPoliza
|
|
Else
|
|
HplCompraContabilizada.Text = "No"
|
|
End If
|
|
|
|
DdlProveedores.SelectedValue = objOC.CveProveedor.ToString
|
|
If DdlProveedores.SelectedValue.ToEntero > 0 Then
|
|
CveProveedorOriginal = objOC.CveProveedor
|
|
DdlProveedores.SelectedText = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros($"CveProveedor = {objOC.CveProveedor}").Rows(0)("RazonSocial").ToString
|
|
Else
|
|
DdlProveedores.SelectedText = "-"
|
|
End If
|
|
|
|
'CARGAMOS LA SUCURSAL SI NO EXISTE SE AGREGA MATRIZ
|
|
Dim CveProveedorSucursal As Integer = IIf(objOC.CveProveedorSucursal.ToEntero = -1, 0, objOC.CveProveedorSucursal.ToEntero).ToString.ToEntero
|
|
DivProveedorSucursal.Visible = True
|
|
DdlProveedorSucursal.DataSource = GlobalDTProveedorSucursales(objOC.CveProveedor, UsuarioActual.CveEmpresa)
|
|
DdlProveedorSucursal.DataBind()
|
|
DdlProveedorSucursal.Items.Insert(0, New ListItem("Matriz", "0"))
|
|
DdlProveedorSucursal.SelectedValueExist(CveProveedorSucursal)
|
|
|
|
'CARGA CONTACTOS DE LA SUCURSAL PROVEEDOR
|
|
|
|
If objOC.CveProveedorContacto.ToEntero > 0 Then
|
|
Dim ObjProveedor As ClsCompProveedores = New ClsCompProveedores
|
|
DivProveedorContacto.Visible = True
|
|
'FILTRADO DE CONTACTOS GENERALES O DE MATRIZ SE HACE CON CVESUCURSAL = 0
|
|
If ObjProveedor.GetProveedoresContactos(-1, objOC.CveProveedor, CveProveedorSucursal) Then
|
|
DdlProveedorContacto.DataSource = ObjProveedor.DtResultados
|
|
DdlProveedorContacto.DataBind()
|
|
DdlProveedorContacto.SelectedValueExist(objOC.CveProveedorContacto)
|
|
End If
|
|
ObjProveedor.Dispose()
|
|
End If
|
|
|
|
If objOC.CveUsuarioAsignado > 0 Then
|
|
TrUsuarioAsignado.Visible = True
|
|
LblUsuarioAsignado.Text = objOC.UsuarioAsignado
|
|
End If
|
|
|
|
'CARGA VENTA RELACIONADA
|
|
If objOC.GetVentasRelacionadas(pCveOrdenCompra) Then
|
|
|
|
If objOC.DtResultados.Rows.Count > 0 Then
|
|
DivVentaRelacionada.Visible = True
|
|
GvVentaRelacionadas.DataSource = objOC.DtResultados
|
|
End If
|
|
End If
|
|
|
|
|
|
Case "REQ"
|
|
ViewState("TipoOC") = objOC.Tipo
|
|
ViewState("TipoLargo") = "Requisición"
|
|
lblFolio.Text = "REQ " + objOC.Folio.ToString
|
|
lblTipoPadreHijo.Text = "OC"
|
|
ChkCotizacion.Visible = True
|
|
DdlProveedores.SelectedValue = objOC.CveProveedor.ToString
|
|
If DdlProveedores.SelectedValue.ToEntero > 0 Then
|
|
DdlProveedores.SelectedText = GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {objOC.CveProveedor}").Rows(0)("RazonSocial").ToString
|
|
Else
|
|
DdlProveedores.SelectedText = "-"
|
|
End If
|
|
|
|
If objOC.CveProveedorSucursal.ToEntero > 0 Then
|
|
DivProveedorSucursal.Visible = True
|
|
DdlProveedorSucursal.DataSource = GlobalDTProveedorSucursales(objOC.CveProveedor, CveEmpresaActual)
|
|
DdlProveedorSucursal.DataBind()
|
|
DdlProveedorSucursal.SelectedValueExist(objOC.CveProveedorSucursal.ToString)
|
|
End If
|
|
|
|
|
|
EditarOC = False
|
|
Case "OS"
|
|
ViewState("TipoOC") = "REQ"
|
|
ViewState("TipoLargo") = "Orden de Servicio"
|
|
lblFolio.Text = "OS " + objOC.Folio.ToString
|
|
'lblTipoPadreHijo.Text = "OC"
|
|
ChkCotizacion.Visible = True
|
|
TipoOS = True
|
|
EditarOC = False
|
|
End Select
|
|
|
|
End If
|
|
|
|
'If objOC.TipoTermino = 2 Then
|
|
' TrCancelacion.Visible = True
|
|
' TxtMotivoCancelacion.Text = objOC.Cancelacion
|
|
'End If
|
|
|
|
|
|
CargaEstatusInicialFinal()
|
|
|
|
|
|
'Se agregan a el Combo
|
|
'el EstatusActual, que es el que aparecera seleccionado
|
|
'el EstatusSiguiente, que si el usuario tiene permiso podra cambiarlo
|
|
'el EstatusRechazado, que si el usuario tiene permiso podra cambiarlo
|
|
|
|
'DtEstatusUsuarios.FiltraParametros("TipoTermino <> 2", "Nivel Desc", {"CveEstatus", "Estatus"})
|
|
'GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = '{0}' ", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente))
|
|
|
|
CboE.DataSource = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = '{0}' AND TipoTermino <> 2", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente))
|
|
CboE.DataBind()
|
|
|
|
|
|
lblPendientes.Text = objOC.Pendiente.ToString
|
|
If objOC.Pendiente > 0 Then
|
|
|
|
If objOC.Pendiente > 1 Then
|
|
lblPendientes.Text = objOC.Pendiente.ToString & " Articulos Pendientes de vincular."
|
|
Else
|
|
lblPendientes.Text = objOC.Pendiente.ToString & " Articulo Pendiente de vincular."
|
|
End If
|
|
|
|
TrPendientes.Visible = True
|
|
Else
|
|
TrPendientes.Visible = False
|
|
End If
|
|
|
|
CargaEstatusUsuarios()
|
|
|
|
If CveEstatus = CveEstatusFinalError Then
|
|
CboE.DataSource = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = '{0}' ", TipoOC, objOC.CveEstatus, objOC.CveEstatusSiguiente))
|
|
CboE.DataBind()
|
|
End If
|
|
|
|
If objOC.GetOrdenesDetalle(pCveOrdenCompra) Then
|
|
DtDetalle = objOC.DtResultados
|
|
End If
|
|
|
|
'Recorrer todos los SubProyectos agregados, PARA CUESTIONES DE CAMBIO DE ESTATUS
|
|
SubProyectosNoAutorizados = New List(Of String)
|
|
Dim OCCancelable As Integer = 0
|
|
Dim OCCancelablePermiso As Integer = 0
|
|
|
|
|
|
If DtDetalle IsNot Nothing Then
|
|
For Each Row As DataRow In DtDetalle.Rows
|
|
If EditarOC AndAlso Row("CveOrdenCompraPadre").ToString.ToEntero > 0 Then
|
|
EditarOC = False
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows
|
|
If Row("CveSubProyecto").ToString.ToEntero > 0 AndAlso CveEstatus > 0 Then
|
|
|
|
If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus IN ({1},{2})", Row("CveSubProyecto"), CveEstatus, CveEstatusSiguiente)).Rows.Count = 0 Then 'RMF- 2016.06.02 - Cambio de CveEstatus, antes tenia CveEstatusSiguiente se cambio a CveEstatus.
|
|
SubProyectosNoAutorizados.Add(Row("SubProyecto").ToString)
|
|
CboE.BackColor = Drawing.Color.Silver
|
|
CboE.Enabled = False
|
|
GvD.Columns(9).Visible = False 'No permitir la edicion
|
|
'GvD.Columns(9).Visible = True
|
|
ChkCotizacion.Enabled = False
|
|
TxtDescrip.Enabled = False
|
|
TxtJustificacion.Enabled = False
|
|
TxtFechaEstimadaEntrega.Enabled = False
|
|
txtLugarEntrega.Enabled = False
|
|
TxtLugarEntregaDirecta.Enabled = False
|
|
gvCotizaciones.Enabled = True
|
|
DdlProveedores.Enabled = False
|
|
DdlIVA.Enabled = False
|
|
DdlUsoCFDI.Enabled = False
|
|
ImgCambiaProv.Visible = False
|
|
OCCancelable = 1 ' por default, es cancelable, sino tiene acceso le niego la cancelacion
|
|
UPProv.Update()
|
|
Else
|
|
If OCCancelable = 0 Then OCCancelable = 2 'sino ha entrado a cancelable
|
|
End If
|
|
|
|
If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus = {1}", Row("CveSubProyecto"), CveEstatusFinalError)).Rows.Count = 0 Then
|
|
OCCancelablePermiso = 1 ' por default, es cancelable, sino tiene acceso le niego la cancelacion
|
|
Else
|
|
If OCCancelablePermiso = 0 Then OCCancelablePermiso = 2 'sino ha entrado a cancelable
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
|
|
TxtGrid.Text = If(DtDetalle.Rows.Count = 0, "", DtDetalle.Rows.Count.ToString)
|
|
Else
|
|
Alert($"Ocurrió un error al cargar los detalles de la {TipoLargo}. Por favor vuelva a intentar", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
'EDICION
|
|
'CUANDO EL LA REGISRO Y TIENE ACCESO A ESE ESTATUS
|
|
If objOC.CveUsuario = UsuarioActual.CveUsuario AndAlso (DtEstatusUsuarios.FiltraParametros(String.Format(" CveEstatus = {0}", CveEstatus)).Rows.Count >= 1 Or CveEstatus = 0) Then
|
|
GvD.Columns(9).Visible = True 'No permitir la edicion
|
|
If ChkCotizacion.Checked AndAlso UsuarioActual.Empresa.Funcionalidad(565) = "1" Then
|
|
ChkCotizacion.Enabled = False
|
|
Else
|
|
ChkCotizacion.Enabled = True
|
|
End If
|
|
TxtDescrip.Enabled = True
|
|
TxtJustificacion.Enabled = True
|
|
TxtFechaEstimadaEntrega.Enabled = True
|
|
txtLugarEntrega.Enabled = True
|
|
TxtLugarEntregaDirecta.Enabled = True
|
|
gvCotizaciones.Enabled = True
|
|
DdlProveedores.Enabled = True
|
|
DdlUsoCFDI.Enabled = True
|
|
DdlIVA.Enabled = True
|
|
ImgCambiaProv.Visible = True
|
|
UPProv.Update()
|
|
End If
|
|
|
|
If objOC.CveEstatus = 0 Then CboE.Items.Add(New ListItem("Pre Solicitud", "0"))
|
|
CboE.SelectedValueExist(objOC.CveEstatus.ToString)
|
|
|
|
'es decir, si tiene permiso por ser el usuario que aprueba en el estatus actual o tiene el permiso para cancelar en el catalogo
|
|
If (OCCancelable = 2 OrElse OCCancelablePermiso = 2) And (CveEstatus <> CveEstatusFinalError OrElse CveEstatus <> CveEstatusFinalOK OrElse UsuarioActual.TienePermisoProceso(148).ToEntero > 0) Then
|
|
BtnCancelar.Enabled = True
|
|
'BtnCancelarPrevio.Disabled = False
|
|
BtnCancelarPrevio.Enabled = True
|
|
|
|
If IDPolizaPresupuestal > 0 Then
|
|
BtnCancelar.ToolTip = String.Format("¿Está seguro que desea cancelar la {0} y la poliza asociada?", TipoLargo)
|
|
Else
|
|
BtnCancelar.ToolTip = String.Format("¿Está seguro que desea cancelar la {0}?", TipoLargo)
|
|
End If
|
|
End If
|
|
|
|
'Permisos, para cambiar el proveedor en una OC
|
|
If objOC.Tipo.ToUpper = "OC" AndAlso UsuarioActual.TienePermisoProceso(111) Then
|
|
DdlProveedores.Enabled = True
|
|
DdlProveedores.ddl.SelectedValueExist(objOC.CveProveedor.ToString)
|
|
DdlIVA.Enabled = True
|
|
ImgCambiaProv.Visible = True
|
|
UPProv.Update()
|
|
End If
|
|
|
|
If DdlProveedores.SelectedValue <> objOC.CveProveedor.ToString Then
|
|
'DdlProveedores.Items.Insert(1, New ListItem(GlobalDTCompProveedores(CveEmpresaActual).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {objOC.CveProveedor}"), objOC.CveProveedor.ToString))
|
|
End If
|
|
|
|
CargaCotizaciones(CveOrdenCompra)
|
|
|
|
|
|
'Si requiere cotizacion y el estatus siguiente es el final, desabilitar el combo del estatus
|
|
If UsuarioActual.Empresa.Funcionalidad(556) = "1" AndAlso ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then
|
|
CboE.Enabled = False
|
|
LblMsgEstatus.Visible = True
|
|
LblMsgEstatus.Text = "Cotización requerida para avanzar"
|
|
BtnGuardar.Enabled = False
|
|
Else
|
|
BtnGuardar.Enabled = True
|
|
CboE.Enabled = True
|
|
LblMsgEstatus.Visible = False
|
|
End If
|
|
|
|
BtnGuardar.Visible = True
|
|
trAddDetalle.Visible = True
|
|
fsSeguimiento.Visible = True
|
|
fsHistorial.Visible = True
|
|
CargaHistorial()
|
|
'cuando esta autorizada se habilita el imprimir OrElse (objOC.Tipo.ToUpper = "REQ" AndAlso objOC.TipoTermino = 1)
|
|
If UsuarioActual.Empresa.Funcionalidad(107) = "" OrElse (objOC.Tipo.ToUpper = "OC") Then
|
|
HLImprimir.Visible = True
|
|
HLImprimir.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra)))
|
|
End If
|
|
|
|
HlEvento.Visible = True
|
|
HlEvento.NavigateUrl = "/OI/PopUpAgenda.aspx?CveTipoEvento=2&CveOC=" & CveOrdenCompra & "&TB_iframe=true&height=370&width=600;"
|
|
|
|
hplAgregarCotizacion.NavigateUrl = "/OC/RepCotizacionesDetalle.aspx?CveOrdenCompra=" & CveOrdenCompra & "&TB_iframe=true&height=600&width=830;"
|
|
hplEnviarCorreo.NavigateUrl = "/OC/CotizacionEnvio.aspx?CveOrdenCompra=" & CveOrdenCompra & "&TB_iframe=true&height=600&width=900;"
|
|
|
|
CargaEventoBitacora()
|
|
If CveEstatus = CveEstatusFinalError Or CveEstatus = CveEstatusFinalOK Then DesHabilitar() Else VerificaSiRequiereCotizacion()
|
|
|
|
If EditarOC Then
|
|
CboE.Enabled = True
|
|
GvD.Columns(9).Visible = True 'Permitir la edicion
|
|
ChkCotizacion.Enabled = True
|
|
TxtDescrip.Enabled = True
|
|
TxtJustificacion.Enabled = True
|
|
TxtFechaEstimadaEntrega.Enabled = True
|
|
txtLugarEntrega.Enabled = True
|
|
TxtLugarEntregaDirecta.Enabled = True
|
|
gvCotizaciones.Enabled = True
|
|
DdlProveedores.Enabled = True
|
|
DdlUsoCFDI.Enabled = True
|
|
DdlIVA.Enabled = True
|
|
ImgCambiaProv.Visible = True
|
|
UPProv.Update()
|
|
End If
|
|
|
|
'ASIGNA ESTATUS OC
|
|
CboE_SelectedIndexChanged(New Object, New EventArgs)
|
|
|
|
CargaDatosDetalles()
|
|
|
|
'17-04-2018 - Si es OC registrada carga link a PopUpPaqueteriaGuia
|
|
If ChkEntregaDirecta.Checked And CveOrdenCompra > 0 Then
|
|
LnkAgregarGuia.Visible = True
|
|
UpAcciones.Update()
|
|
End If
|
|
|
|
uppEstatus.Update()
|
|
UPPEmp.Update()
|
|
|
|
Else
|
|
ViewState("Tipo") = "REQ"
|
|
ViewState("TipoOC") = "REQ"
|
|
ViewState("TipoLargo") = "Requisición"
|
|
|
|
Alert("No se encontro la OC/REQ Solicitada.", TipoMensaje.MsgError)
|
|
InicializarValores()
|
|
|
|
End If
|
|
|
|
objOC.Dispose()
|
|
GvVentaRelacionadas.DataBind()
|
|
|
|
'CARGA MOVTOS DE ALMACEN
|
|
InicializaMovtosAlmacen()
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(565) = "1" And pCveOrdenCompra > 0 And TipoOC.ToUpper() = "REQ" Then
|
|
'LAS COTIZACIONES RAPIDAS SOLO DEBE APARECER SI EL PROVEEDOR ES DEDICADO
|
|
If CveConfianzaProveedor = 1 Then
|
|
RowCotizaciones.Visible = True
|
|
End If
|
|
UpIvas.Update()
|
|
End If
|
|
|
|
uppEstatus.Update()
|
|
End Sub
|
|
|
|
Protected Sub CargaHistorial()
|
|
Dim ObjGral As New ClsGenerales
|
|
|
|
If ObjGral.GetHistorialBitacora(-1, CveOrdenCompra, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
|
|
ViewState("DtHistorial") = ObjGral.DtResultados
|
|
|
|
GVH.DataSource = DtHistorial
|
|
GVH.DataBind()
|
|
uppHistorial.Update()
|
|
|
|
End If
|
|
Dim objOC As New ClsOC
|
|
If objOC.GetOrdenesEstatus(CveOrdenCompra) Then
|
|
gvEstatus.DataSource = objOC.DtResultados
|
|
gvEstatus.DataBind()
|
|
|
|
End If
|
|
|
|
uppSeguimientoEstatus.Update()
|
|
ObjGral.Dispose()
|
|
objOC.Dispose()
|
|
End Sub
|
|
Protected Sub btnCargaCotizaciones_Click(sender As Object, e As EventArgs)
|
|
Dim objCotizacion As New ClsOC
|
|
|
|
'ACTUALIZA REQUIERE COTIZACION DE LA REQ
|
|
If Not objCotizacion.UpdateOrdenCompraCotizacion(CveOrdenCompra) Then
|
|
Alert("Ocurrió un error al actualizar el estatus Decimal cotización.", TipoMensaje.MsgError)
|
|
End If
|
|
objCotizacion.Dispose()
|
|
|
|
CargaCotizaciones(CveOrdenCompra)
|
|
End Sub
|
|
Protected Sub CargaCotizaciones(CveOrdenCompra As Integer)
|
|
NumCotizacionesGanadoras = 0
|
|
NumCotizaciones = 0
|
|
TotalCotizacionesGanadoras = 0
|
|
|
|
Dim objCotizaciones As New ClsOC
|
|
|
|
'------------------------------------------------------------------------
|
|
Dim Ds As DataSet = objCotizaciones.GetCotizacionesTabla(CveOrdenCompra)
|
|
For i = 1 To 10
|
|
gvCotizaciones.Columns(i + 2).Visible = False
|
|
Next
|
|
|
|
If Ds IsNot Nothing AndAlso Ds.Tables.Count = 2 Then
|
|
DtCotizaciones = Ds.Tables(1)
|
|
|
|
ProveedoresCotizacion = New ArrayList
|
|
For Each Dr2 As DataRow In DtCotizaciones.Rows
|
|
ProveedoresCotizacion.Add(Dr2("RazonSocial"))
|
|
Next
|
|
|
|
NumCotizaciones = DtCotizaciones.Rows.Count
|
|
|
|
For i = 1 To NumCotizaciones
|
|
gvCotizaciones.Columns(i + 2).Visible = True
|
|
Next
|
|
|
|
gvCotizaciones.DataSource = Ds.Tables(0)
|
|
gvCotizaciones.DataBind()
|
|
End If
|
|
|
|
objCotizaciones.Dispose()
|
|
uppCotizaciones.Update()
|
|
|
|
If gvCotizaciones.Rows.Count = 0 Then
|
|
'btnGeneraOrdenes.Visible = False
|
|
uppOpciones.Update()
|
|
Else
|
|
'btnGeneraOrdenes.Enabled = If(gvCotizaciones.Rows.Count - 1 = NumCotizacionesGanadoras And CveEstatusSiguiente = CveEstatusFinalOK, True, False)
|
|
|
|
|
|
'If ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then
|
|
If UsuarioActual.Empresa.Funcionalidad(556) = "1" AndAlso ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then
|
|
CboE.Enabled = False
|
|
LblMsgEstatus.Visible = True
|
|
LblMsgEstatus.Text = "Cotización requerida para avanzar"
|
|
BtnGuardar.Enabled = False
|
|
Else
|
|
BtnGuardar.Enabled = True
|
|
CboE.Enabled = True
|
|
LblMsgEstatus.Visible = False
|
|
End If
|
|
|
|
uppEstatus.Update()
|
|
uppOpciones.Update()
|
|
End If
|
|
|
|
If NumCotizaciones > 0 Then
|
|
HLImprimirCotizacion.Visible = True
|
|
HLImprimirCotizacion.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CotOC&CVEOC={0}", CveOrdenCompra)))
|
|
End If
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region " CARGA C O M B O S "
|
|
Private Sub CargaMonedas()
|
|
DdlMoneda.DataSource = GlobalDTMonedas
|
|
DdlMoneda.DataBind()
|
|
If CveEmpresaActual.Contiene(13, 14, 24) Then
|
|
DdlMoneda.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
End If
|
|
|
|
End Sub
|
|
Private Sub CargaClasificaciones()
|
|
Dim TipoClasif As Integer = -1
|
|
If isWithFamily() Then
|
|
DdlClasificacion.DataSource = GlobalDTSubFamilias(CveEmpresaActual).FiltraParametros("EstatusCategoria = 'Activo' AND Estatus = 'Activo'")
|
|
Else
|
|
DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresaActual)
|
|
End If
|
|
|
|
DdlClasificacion.DataBind()
|
|
End Sub
|
|
Private Sub CargaProyectos()
|
|
DdlProyecto.Items.Clear()
|
|
DdlProyecto.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1), GlobalDTProyectos(CveEmpresaActual, -1)) 'DtEstatusUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaActual), "", {"CveProyecto", "Proyecto"}) ' GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa)
|
|
DdlProyecto.DataBind()
|
|
DdlProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
|
|
DdlProyectoContrato.Items.Clear()
|
|
DdlProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, CveEmpresaActual, -1), GlobalDTProyectos(CveEmpresaActual, -1)) 'DtEstatusUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaActual), "", {"CveProyecto", "Proyecto"}) ' GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa)
|
|
DdlProyectoContrato.DataBind()
|
|
DdlProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
End Sub
|
|
Private Sub CargaSubProyectos()
|
|
Dim Filtro As String = If(DdlProyecto.SelectedValue.ToEntero > 0 AndAlso UsuarioActual.Empresa.Tipo_CentroCosto.Contiene(4, 5), String.Format("CveProyecto = {0}", DdlProyecto.SelectedValue.ToEntero), "")
|
|
|
|
DdlSubProyecto.Items.Clear()
|
|
DdlSubProyecto.DataSource = DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, -1, CveEmpresaActual, 1)) 'DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) ' GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero)
|
|
DdlSubProyecto.DataBind()
|
|
|
|
DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
End Sub
|
|
Private Sub CargaSubProyectosEdit(DdlSP As DropDownList, CveProyectoEdit As Integer)
|
|
DdlSP.Items.Clear()
|
|
DdlSP.DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", CveProyectoEdit), "", {"CveSubProyecto", "SubProyecto"}) 'GlobalDTSubProyectos(CveProyectoEdit)
|
|
DdlSP.DataBind()
|
|
DdlSP.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
End Sub
|
|
Private Sub CargaUnidadesMedida()
|
|
CboUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.Empresa.CveEmpresa)
|
|
CboUnidadMedida.DataBind()
|
|
End Sub
|
|
Private Sub CargaProveedores()
|
|
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
|
|
DdlProveedores.setEsWebService(True)
|
|
DdlProveedores.Attributes.Add("data-metodo", "getproveedores")
|
|
DdlProveedores.SelectedText = "Seleccione"
|
|
DdlProveedores.SelectedValue = "-1"
|
|
DdlProveedores.ddl.AutoPostBack = True
|
|
|
|
DdlProveedorCot.setEsWebService(True)
|
|
DdlProveedorCot.Attributes.Add("data-metodo", "getproveedores")
|
|
Else
|
|
|
|
DdlProveedores.DataSource = GlobalDTCompProveedores(CveEmpresaActual)
|
|
DdlProveedores.DataBind()
|
|
DdlProveedores.ddl.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
DdlProveedores.ddl.AutoPostBack = True
|
|
|
|
DdlProveedorCot.DataSource = GlobalDTCompProveedores(CveEmpresaActual)
|
|
DdlProveedorCot.DataBind()
|
|
DdlProveedorCot.ddl.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
|
|
End If
|
|
|
|
|
|
UPProv.Update() : UPPEmp.Update()
|
|
End Sub
|
|
|
|
Private Sub CargaProveedorSucursal()
|
|
DdlProveedores.DataSource = GlobalDTCompProveedores(CveEmpresaActual)
|
|
DdlProveedores.DataBind()
|
|
'DdlProveedores.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
UPProv.Update() : UPPEmp.Update()
|
|
End Sub
|
|
Private Sub CargaEstatusOC()
|
|
CboE.Items.Clear()
|
|
CboE.DataSource = DtEstatusUsuarios.FiltraParametros("TipoTermino <> 2", "Nivel Desc", {"CveEstatus", "Estatus"})
|
|
CboE.DataBind()
|
|
CboE.Items.Add(New ListItem("Pre Solicitud", "0"))
|
|
|
|
End Sub
|
|
Private Sub CargaEstatusInicialFinal()
|
|
'Cargar el Estatus Inicial
|
|
Dim drInicial As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 3 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 3 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing)
|
|
Dim drFinalOK As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 1 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 1 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing)
|
|
Dim drFinalError As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 2 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 2 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing)
|
|
Dim drSupervisada As DataRow = If(GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 0 AND Tipo = '{0}'", TipoOC)).Rows.Count = 1, GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("TipoTermino = 0 AND Tipo = '{0}'", TipoOC)).Rows(0), Nothing)
|
|
|
|
|
|
If Not drInicial Is Nothing Then CveEstatusInicial = drInicial("CveEstatus").ToString.ToEntero : EstatusInicial = drInicial("Estatus").ToString Else CveEstatusInicial = -1 : EstatusInicial = ""
|
|
If Not drFinalOK Is Nothing Then CveEstatusFinalOK = drFinalOK("CveEstatus").ToString.ToEntero : EstatusFinalOK = drFinalOK("Estatus").ToString Else CveEstatusFinalOK = -1 : EstatusFinalOK = ""
|
|
If Not drFinalError Is Nothing Then CveEstatusFinalError = drFinalError("CveEstatus").ToString.ToEntero : EstatusFinalError = drFinalError("Estatus").ToString Else CveEstatusFinalError = -1 : EstatusFinalError = ""
|
|
If Not drSupervisada Is Nothing Then CveEstatusSupervisada = drSupervisada("CveEstatus").ToString.ToEntero
|
|
|
|
End Sub
|
|
Private Sub CargaComboCFDI()
|
|
DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI
|
|
DdlUsoCFDI.DataBind()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " DDLS: PROYECTO "
|
|
|
|
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged
|
|
CargaSubProyectos()
|
|
End Sub
|
|
|
|
Protected Sub DdlProyectoEdit_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
Dim ddl As DropDownList = DirectCast(sender, DropDownList)
|
|
Dim DdlSP As DropDownList = Nothing
|
|
|
|
Dim gvr As GridViewRow = DirectCast(ddl.NamingContainer, GridViewRow)
|
|
|
|
DdlSP = GvD.Rows(gvr.RowIndex).FCDropDownList("DdlSubProyectoEdit")
|
|
If DdlSP IsNot Nothing Then CargaSubProyectosEdit(DdlSP, ddl.SelectedValue.ToEntero)
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " DDLS: CLASIFICACION Y PS "
|
|
|
|
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged
|
|
CargaPS(DdlClasificacion.SelectedValue.ToEntero, DdlP2)
|
|
UPPDetalle.Update()
|
|
End Sub
|
|
Protected Sub DdlClasificacion_SelectedIndexChanged1(sender As Object, e As EventArgs)
|
|
|
|
Dim Gvr As GridViewRow = CType(CType(sender, DropDownList).BindingContainer, GridViewRow)
|
|
'Dim filtro As String = ""
|
|
Dim CveClasificacion = DirectCast(sender, DropDownList).SelectedValue.ToEntero
|
|
|
|
' filtro = String.Format("CveClasificacion={0}", CveClasificacion)
|
|
|
|
Gvr.FCDropDownList("DdlPS").Items.Clear()
|
|
Gvr.FCDropDownList("DdlPS").DataSource = GlobalDTPSSimplificado(CveEmpresaActual, CveClasificacion:=CveClasificacion).FiltraParametros("", "PSCodigo")
|
|
Gvr.FCDropDownList("DdlPS").DataBind()
|
|
Gvr.FCDropDownList("DdlPS").Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
|
|
|
|
End Sub
|
|
Protected Sub DdlPS_SelectedIndexChanged1(sender As Object, e As EventArgs)
|
|
|
|
Dim Gvr As GridViewRow = CType(CType(sender, DropDownList).BindingContainer, GridViewRow)
|
|
Dim filtro As String = ""
|
|
Dim Cvepsgvd = DirectCast(sender, DropDownList).SelectedValue.ToEntero
|
|
If Cvepsgvd > 0 Then
|
|
Dim CboUM As DropDownList = Gvr.FCDropDownList("CboUnidadMedidaEdit")
|
|
Dim TxtPU As TextBox = Gvr.FCTextBox("TxtImporteEdit")
|
|
CboUM.DataSource = GlobalDTProductosServiciosEquivalencias(Cvepsgvd, -1, UsuarioActual.CveEmpresa)
|
|
CboUM.DataBind()
|
|
End If
|
|
End Sub
|
|
Protected Sub LbVerInventario_Click(sender As Object, e As EventArgs) Handles LbVerInventario.Click
|
|
RegistraScript(String.Format("AbrirVentana('/Inventarios/PopUpExistenciasAlmacen.aspx?CvePS={0}',800,547,'N');", DdlP2.SelectedValue))
|
|
End Sub
|
|
Private Sub CargaPS(CveClasificacion As Integer, Objeto As ADServerControl.Dropdownlost)
|
|
'Dim filtro As String = ""
|
|
|
|
'If CveClasificacion > 0 Then
|
|
' ' If isWithFamily() Then
|
|
' ' filtro = String.Format("CveSubFamilia={0}", CveClasificacion)
|
|
' ' Else
|
|
' filtro = String.Format("CveClasificacion={0}", CveClasificacion)
|
|
' 'End If
|
|
'Else
|
|
' ' If isWithFamily() Then
|
|
' ' filtro = "CveSubFamilia > -1"
|
|
' ' Else
|
|
' filtro = "CveClasificacion > -1"
|
|
' ' End If
|
|
'End If
|
|
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
|
|
Objeto.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString)
|
|
' Objeto.ddlWS.Attributes.Add("data-pagina", "oc/oc")
|
|
Objeto.SelectedText = ""
|
|
Objeto.SelectedValue = "-1"
|
|
Else
|
|
Objeto.ddl.Items.Clear()
|
|
Objeto.ddl.DataSource = GlobalDTPSSimplificado(CveEmpresaActual, CveClasificacion:=CveClasificacion).FiltraParametros("", "PSCodigo")
|
|
Objeto.ddl.DataBind()
|
|
'Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
|
|
Objeto.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
|
|
End If
|
|
End Sub
|
|
Protected Sub HFProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlP2.selectedindexchange
|
|
Dim tempdt As DataTable = GlobalDTPS(CveEmpresaActual, CvePS:=DdlP2.SelectedValue.ToEntero)
|
|
|
|
If tempdt.Rows.Count > 0 Then
|
|
|
|
If isWithFamily() Then
|
|
DdlClasificacion.SelectedValueExist(tempdt.Rows(0)("CveSubFamilia").ToString)
|
|
Else
|
|
DdlClasificacion.SelectedValueExist(tempdt.Rows(0)("CveClasificacion").ToString)
|
|
End If
|
|
|
|
CboUnidadMedida.Items.Clear()
|
|
|
|
CboUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(DdlP2.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa)
|
|
CboUnidadMedida.DataBind()
|
|
|
|
If CveEmpresaActual = 119 Then
|
|
txtPrecioUnitario.Text = GlobalDTPS(CveEmpresaActual, CvePS:=DdlP2.SelectedValue.ToEntero).FiltroPrimeroValor("Precio")
|
|
ElseIf CveEmpresaActual.Contiene(72, 80) Then
|
|
Dim ObjOC As New ClsOC
|
|
|
|
If ObjOC.GetUltimoCostoPS(DdlP2.SelectedValue.ToEntero) Then
|
|
If ObjOC.DtResultados.Rows.Count.ToEntero > 0 Then
|
|
LblUltimoCosto.Visible = True
|
|
LblUltimoCosto.Text = $"UC: {ObjOC.DtResultados(0)("UltimoCosto").ToString.FormatoNumero}"
|
|
Else
|
|
LblUltimoCosto.Visible = False
|
|
LblUltimoCosto.Text = ""
|
|
End If
|
|
End If
|
|
ObjOC.Dispose()
|
|
End If
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " AGREGAR "
|
|
Protected Sub LbAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click
|
|
|
|
'VALIDA CVEPS
|
|
If DdlP2.SelectedValue().ToEntero <= 0 Then
|
|
Alert("El campo <b>'Producto/Servicio'</b> es necesario, por favor seleccione uno.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
If DtDetalle IsNot Nothing Then
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=DdlP2.SelectedValue.ToEntero).FiltroPrimero("")
|
|
If DrPS Is Nothing Then
|
|
Alert("Ocurrió un error al cargar la información del producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then
|
|
Dim ObjCon As New ClsContratos
|
|
Dim CvePresupuesto As Integer = 0
|
|
Dim Autorizado As Double = 0
|
|
Dim Ejercido As Double = 0
|
|
If ObjCon.GetPresupuestos(-1, "-1", DdlSubProyecto.SelectedValue.ToEntero, 2, -1, UsuarioActual.CveEmpresa) Then
|
|
If ObjCon.DtResultados.Rows.Count > 0 Then
|
|
CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero
|
|
If CvePresupuesto > 0 Then
|
|
If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then
|
|
If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows.Count > 0 Then
|
|
Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {DdlClasificacion.SelectedValue.ToEntero} AND Importe > 0").Rows(0)("Importe").ToString.ToDouble
|
|
End If
|
|
End If
|
|
If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{DateTime.Now.Year - 1}".ToDate, Now, UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero,
|
|
DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlClasificacion.SelectedValue.ToEntero) Then
|
|
If ObjCon.DtResultados.Rows.Count > 0 Then
|
|
Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDouble
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
ObjCon.Dispose()
|
|
|
|
If CvePresupuesto > 0 And Autorizado > 0 Then
|
|
Dim Diferencia As Double = (Ejercido + If(txtPrecioUnitario.Text.ToDouble > 0, (txtPrecioUnitario.Text.ToDouble * TxtCant.Text.ToDouble) - TxtDescuentoAdd.Text.ToDouble, 0)) - Autorizado
|
|
If Diferencia > 0 Then
|
|
Alert($"No hay presupuesto disponible en el subproyecto <b>{DdlSubProyecto.SelectedItem.Text}</b> y la clasificación <b>{DdlClasificacion.SelectedItem.Text}</b> se excede por <b>{Diferencia.FormatoNumero}</b>", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
|
|
Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble
|
|
Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble
|
|
Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble
|
|
|
|
'If IvaPS = -1 Then 'IVA DE LA SUCURSAL
|
|
' IvaPS = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero).FiltroPrimeroValor("IVA").ToDouble
|
|
'End If
|
|
|
|
Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble
|
|
Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0)
|
|
Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero)
|
|
Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero)
|
|
Dim Proyecto As String = If(DdlProyecto.SelectedValue.ToString.ToEntero > 0, DdlProyecto.SelectedItem.Text, "Sin Proyecto")
|
|
Dim SubProyecto As String = If(DdlSubProyecto.SelectedValue.ToString.ToEntero > 0, DdlSubProyecto.SelectedItem.Text, "Sin SubProyecto")
|
|
Dim TotalPS As Double = If(txtPrecioUnitario.Text.ToDouble > 0, (txtPrecioUnitario.Text.ToDouble * TxtCant.Text.ToDouble) - TxtDescuentoAdd.Text.ToDouble, 0)
|
|
Dim ImportePS As Double = If(txtPrecioUnitario.Text.ToDouble > 0, txtPrecioUnitario.Text.ToDouble, 0)
|
|
Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100
|
|
|
|
'Si es Proveedor Extranjero el IVA es 0%
|
|
If GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {DdlProveedores.SelectedValue} AND RFC = 'XEXX010101000'").Rows.Count = 1 Then
|
|
IvaPS = 0
|
|
End If
|
|
|
|
AddPS(TxtCant.Text, DdlP2.SelectedValue.ToEntero, DdlP2.SelectedText, TxtObsPS.Text, ImportePS, TxtDescuentoAdd.Text.ToDouble, TotalPS,
|
|
CboUnidadMedida.SelectedValue.ToEntero, IvaPS, IEPSPS, IEPSPSIVA, DdlClasificacion.SelectedValue.ToEntero, CboUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedItem.Text, DdlProyecto.SelectedValue.ToEntero, Proyecto,
|
|
DdlSubProyecto.SelectedValue.ToEntero, SubProyecto, LblCodigo.Text, HdnCveActivoFijo.Value.ToEntero, 0, CveOrdenCompraDetalle, CveOrdenCompra, IdCuentaPorEjercer,
|
|
IdCuentaComprometido, DdlACGeneral1.SelectedValue.ToEntero, DdlACGeneral2.SelectedValue.ToEntero, DdlACGeneral3.SelectedValue.ToEntero, DdlACGeneral4.SelectedValue.ToEntero,
|
|
DdlACGeneral5.SelectedValue.ToEntero, RetIVA, RetISR, CveCultivoCuadroDetalle:=DdlCultivosCuadro.SelectedValue.ToEntero, Cuadro:=DdlCultivosCuadro.SelectedItem.Text)
|
|
|
|
TxtCant.Text = ""
|
|
CboUnidadMedida.SelectedIndex = 0
|
|
DdlClasificacion.SelectedIndex = 0
|
|
DdlP2.SelectedValue = "-1"
|
|
DdlP2.SelectedText = "Seleccione un producto o servicio"
|
|
txtPrecioUnitario.Text = ""
|
|
TxtObsPS.Text = ""
|
|
HdnCveActivoFijo.Value = ""
|
|
LblCodigo.Text = ""
|
|
LblCvePOA.Text = ""
|
|
TxtCant.Focus()
|
|
|
|
Total.Text = "0.00"
|
|
TxtDescuentoAdd.Text = "0.00"
|
|
|
|
End If
|
|
|
|
CargaSuperior()
|
|
CargaDatosDetalles()
|
|
|
|
UPPDetalle.Update()
|
|
|
|
|
|
End Sub
|
|
Private Sub AddPS(Cantidad As String, CvePS As Integer, PS As String, Observaciones As String, Importe As Double, Descuento As Double, Total As Double, CveUnidadMedida As Integer, IVAPS As Double, IEPSPS As Double, IEPSPSIVA As Double, CveClasificacion As Integer,
|
|
UM As String, Clasificacion As String, CveProyecto As Integer, Proyecto As String, CveSubProyecto As Integer, SubProyecto As String, CodigoAF As String, CveActivoFijo As Integer, TipoDato As Integer,
|
|
CveOrdenCompraDetalle As Integer, CveOrdenCompra As Integer, IdCuentaPorEjercer As Integer, IdCuentaComprometido As Integer, CveProgramaOperativo As Integer, CveUnidadAdministrativa As Integer,
|
|
CveFuenteFinanciamiento As Integer, CveTipoGasto As Integer, CveClasificacionOG As Integer, RetIVA As Double, RetISR As Double, Optional CveContratoDetalle As Integer = -1, Optional CveTipoGastoObra As Integer = -1, Optional CveCultivoCuadroDetalle As Integer = -1,
|
|
Optional Cuadro As String = "")
|
|
|
|
If DtDetalle IsNot Nothing Then
|
|
Dim dr As DataRow = DtDetalle.NewRow
|
|
dr("Cantidad") = Cantidad
|
|
dr("CvePS") = CvePS
|
|
dr("PS") = PS
|
|
dr("Observacion") = Observaciones
|
|
dr("Importe") = Math.Round(Importe, 6)
|
|
dr("Descuento") = Descuento
|
|
dr("Total") = Math.Round(Total, 2)
|
|
dr("CveUnidadMedida") = CveUnidadMedida
|
|
|
|
dr("IEPSPSPorcentaje") = IEPSPS
|
|
dr("IEPSPS") = Math.Round(IEPSPS * Total, 2)
|
|
dr("IEPSPSIVAPorcentaje") = IEPSPSIVA
|
|
dr("IEPSPSIVA") = Math.Round(IEPSPSIVA * Total, 2)
|
|
dr("IVAPorcentaje") = If(IVAPS = -1, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVAPS)
|
|
Dim TotalGravado As Decimal = Total
|
|
If IEPSPSIVA > 0 Then TotalGravado = Total * (1 + IEPSPSIVA) 'grava para iva, el importe del IEPS
|
|
dr("IVA") = Math.Round(dr("IVAPorcentaje").ToString.ToDouble * TotalGravado, 2)
|
|
dr("RetIVAPorcentaje") = RetIVA
|
|
dr("RetIVA") = Math.Round(RetIVA * Total, 2)
|
|
dr("RetISRPorcentaje") = RetISR
|
|
dr("RetISR") = Math.Round(RetISR * Total, 2)
|
|
dr("CveClasificacion") = CveClasificacion
|
|
dr("UM") = UM
|
|
dr("Clasificacion") = Clasificacion
|
|
If isWithFamily() Then
|
|
dr("CveSubFamilia") = dr("CveClasificacion")
|
|
dr("SubFamilia") = dr("Clasificacion")
|
|
End If
|
|
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
dr("CveProyecto") = "-1"
|
|
dr("Proyecto") = "Sin Proyecto"
|
|
Else
|
|
If CveSubProyecto > 0 Then
|
|
dr("CveProyecto") = CveSubProyecto
|
|
dr("Proyecto") = Proyecto
|
|
End If
|
|
End If
|
|
dr("CveSubProyecto") = CveSubProyecto
|
|
dr("SubProyecto") = SubProyecto
|
|
dr("CodigoAF") = CodigoAF
|
|
dr("CveActivoFijo") = CveActivoFijo
|
|
dr("TipoDato") = 0 ' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
dr("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
|
|
dr("CveOrdenCompra") = CveOrdenCompra
|
|
dr("IdCuentaPorEjercer") = IdCuentaPorEjercer
|
|
dr("IdCuentaComprometido") = IdCuentaComprometido
|
|
dr("CveProgramaOperativo") = CveProgramaOperativo
|
|
dr("CveUnidadAdministrativa") = CveUnidadAdministrativa
|
|
dr("CveFuenteFinanciamiento") = CveFuenteFinanciamiento
|
|
dr("CveTipoGasto") = CveTipoGasto
|
|
dr("CveClasificacionOG") = CveClasificacionOG
|
|
dr("CveContratoDetalle") = CveContratoDetalle
|
|
dr("CveTipoGastoObra") = CveTipoGastoObra
|
|
dr("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle
|
|
dr("Cuadro") = Cuadro
|
|
|
|
|
|
|
|
DtDetalle.Rows.Add(dr)
|
|
DtDetalle.AcceptChanges()
|
|
End If
|
|
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " GUARDAR "
|
|
Private Function ValidaGuardar() As Boolean
|
|
Dim TieneError = False
|
|
|
|
'Entrega Directa requiere Cliente y Vendedor
|
|
If ChkEntregaDirecta.Checked And Ddlcliente.txtValue.Value.ToEntero <= 0 Then
|
|
Alert("Al ser una Entrega Directa es necesario seleccionar un cliente, por favor seleccione uno.")
|
|
Return True
|
|
End If
|
|
|
|
'VALIDA QUE TENGA REGISTROS
|
|
If Not GvD.Rows.Count > 0 Then
|
|
Alert(String.Format("La {0} debe de tener registros", TipoLargo), TipoMensaje.MsgAdvertencia)
|
|
Return True
|
|
End If
|
|
|
|
'VALIDA DESCUENTOS
|
|
If Not ValidarDescuentos() Then
|
|
'Alert("Los descuentos no cuadran. Por favor de verificar.", TipoMensaje.MsgAdvertencia)
|
|
Return True
|
|
End If
|
|
|
|
If Ddlcliente.txtValue.Value.ToEntero > 0 And DdlVendedor.SelectedValue.ToEntero <= 0 Then
|
|
Alert("Debe de seleccionar Un vendedor ", TipoMensaje.MsgAdvertencia)
|
|
TieneError = True
|
|
End If
|
|
|
|
|
|
|
|
'SI ES REQUISICION, NO REQUIERE COTIZACION Y ES ESTATUSFINALOK... ENTONCES DEBE DE TENER UN PROVEEDOR SELECCIONADO Y LOS PRECIOS CAPTURADOS
|
|
'If (TipoOC = "REQ" And ChkCotizacion.Checked = False And CboE.SelectedValue.ToEntero = CveEstatusFinalOK) OrElse TipoOC = "OC" Then
|
|
' If Not UsuarioActual.TienePermisoProceso(179) Then 'PERMISO PARA GENERAR CON O
|
|
' If DtDetalle.FiltraParametros("Importe = -1 OR Importe IS NULL OR Importe = 0").Rows.Count > 0 Then Alert("DEBE CAPTURAR EL PRECIO UNITARIO DE CADA PRODUCTO/SERVICIO", TipoMensaje.MsgAdvertencia) : Return True
|
|
' If DdlProveedores.SelectedValue.ToEntero <= 0 Then Alert("DEBE CAPTURAR EL PROVEEDOR", TipoMensaje.MsgAdvertencia) : Return True
|
|
' End If
|
|
'End If
|
|
|
|
|
|
'VALIDA SUBPROYECTOS
|
|
SubProyectosNoAutorizados = New List(Of String)
|
|
Dim TotalT As Decimal = If(ChkCotizacion.Checked, TotalCotizacionesGanadoras, LblTotal.Text.Replace(",", "").Replace("$", "").ToDecimal)
|
|
TotalT = If(DdlMoneda.SelectedValue <> "1", (TotalT * GlobalTipoCambio(TxtFecha.Text.ToDate).ToString.ToDecimal), TotalT)
|
|
If RequiereSubProyecto = True AndAlso CboE.SelectedValue.ToEntero > 0 Then ' cuando se cumpla la restriccion y no sea "Pre Solicitud"
|
|
|
|
|
|
|
|
If DdlMoneda.SelectedValue <> "1" And GlobalTipoCambio(TxtFecha.Text.ToDate).ToString.ToDecimal = 0 Then
|
|
Alert("No se pudieron verificar los limites del usuario porque no se pudo cargar el tipo de cambio", TipoMensaje.MsgAdvertencia)
|
|
Return True
|
|
End If
|
|
|
|
For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows
|
|
'Primero Filtrar por SubProyecto
|
|
Dim SubPAut As DataTable = DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0} AND CveEstatus = {1}", Row("CveSubProyecto"), CboE.SelectedValue))
|
|
If SubPAut.Rows.Count = 0 Then
|
|
SubProyectosNoAutorizados.Add(String.Format("{0}", Row("SubProyecto").ToString))
|
|
If UsuarioActual.CveUsuario <> 100 Then TieneError = True
|
|
ElseIf TotalT > 0 AndAlso SubPAut.FiltraParametros(String.Format("((LimiteInferior IS NULL OR LimiteInferior <= {0}) AND (LimiteSuperior IS NULL OR LimiteSuperior >= {0})) ", TotalT)).Rows.Count = 0 Then
|
|
'Segundo Filtrar por Limite Inferior y Superior
|
|
SubProyectosNoAutorizados.Add(String.Format("{0}, {1} - {2} ({3} - {4} Dolares)", Row("SubProyecto").ToString, FormatCurrency(SubPAut.Rows(0)("LimiteInferior").ToString.ToDecimal), FormatCurrency(SubPAut.Rows(0)("LimiteSuperior").ToString.ToDecimal), FormatCurrency(SubPAut.Rows(0)("LimiteInferior").ToString.ToDecimal / GlobalTipoCambio(TxtFecha.Text.ToDate)), FormatCurrency(SubPAut.Rows(0)("LimiteSuperior").ToString.ToDecimal / GlobalTipoCambio(TxtFecha.Text.ToDate))))
|
|
If UsuarioActual.CveUsuario <> 100 Then TieneError = True
|
|
End If
|
|
Next
|
|
|
|
If ChkCotizacion.Checked = True And SubProyectosNoAutorizados.Count > 0 Then
|
|
SubProyectosNoAutorizados.Add(String.Format("<br><br>Total de Cotizaciones: {0}", FormatCurrency(TotalT)))
|
|
End If
|
|
|
|
If TieneError Then
|
|
If SubProyectosNoAutorizados.Count > 0 Then
|
|
Dim ss As String = ""
|
|
For Each S As String In SubProyectosNoAutorizados
|
|
ss += "<br>- " + S
|
|
Next
|
|
Alert(String.Format("No está autorizado a modificar el SubProyecto <br>{0}", ss), TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
|
|
Dim PermisoActual As DataTable
|
|
For Each row As GridViewRow In GvD.Rows
|
|
|
|
If row.DataKey("SubProyecto").ToString = "Seleccione" Then
|
|
TieneError = True
|
|
Alert("El campo SubProyecto es obligatorio.", TipoMensaje.MsgAdvertencia)
|
|
Exit For
|
|
End If
|
|
|
|
'SI TIENE ALGUN PERMISO SE VALIDA, SI NO TIENE NINGUNA ES LIBRE
|
|
If DtEstatusUsuariosClasificaciones IsNot Nothing AndAlso DtEstatusUsuariosClasificaciones.Rows.Count > 0 Then
|
|
PermisoActual = DtEstatusUsuariosClasificaciones.FiltraParametros($"CveClasificacion = {row.DataKey("CveClasificacion")} AND CveSubProyecto = {row.DataKey("CveSubProyecto")} AND CveEstatus = {CboE.SelectedValue}")
|
|
If PermisoActual.Rows.Count = 1 Then
|
|
|
|
'SI TIENE LIMITE INFERIOR SE VALIDA QUE ESTE EN EL RANGO
|
|
If PermisoActual.Rows(0)("LimiteInferior").ToString.ToDecimal > 0 Then
|
|
If Not row.DataKey("Importe").ToString.ToDecimal >= PermisoActual.Rows(0)("LimiteInferior").ToString.ToDecimal Then
|
|
Alert($"No está autorizado a modificar el SubProyecto {row.DataKey("CveClasificacion")} con la Clasificación {row.DataKey("SubProyecto")}. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
If UsuarioActual.CveUsuario <> 100 Then TieneError = True
|
|
Exit For
|
|
End If
|
|
End If
|
|
|
|
'SI TIENE LIMITE SUPERIOR SE VALIDA QUE ESTE EN EL RANGO
|
|
If PermisoActual.Rows(0)("LimiteSuperior").ToString.ToDecimal > 0 Then
|
|
If Not row.DataKey("Importe").ToString.ToDecimal <= PermisoActual.Rows(0)("LimiteSuperior").ToString.ToDecimal Then
|
|
Alert($"No está autorizado a modificar el SubProyecto {row.DataKey("CveClasificacion")} con la Clasificación {row.DataKey("SubProyecto")}. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
If UsuarioActual.CveUsuario <> 100 Then TieneError = True
|
|
Exit For
|
|
End If
|
|
End If
|
|
|
|
Else
|
|
Alert($"No está autorizado a modificar el SubProyecto {row.DataKey("SubProyecto")} con la Clasificación {row.DataKey("Clasificacion")}. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
If UsuarioActual.CveUsuario <> 100 Then TieneError = True
|
|
Exit For
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
If ChkEntregaDirecta.Checked And ((TxtLugarEntregaDirecta.Visible = True And TxtLugarEntregaDirecta.Text.Trim = "") Or (DdlDireccionEnvio.Visible = True And Not DdlDireccionEnvio.SelectedValue.ToEntero > 0)) Then
|
|
TieneError = True
|
|
Alert("El campo <b>Lugar Entrega</b> es obligatorio. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
If TipoOC = "REQ" And CveOrdenCompra > 0 Then
|
|
Dim ObjOC As New ClsOC
|
|
If ObjOC.GetOC(CveOrdenCompra, CveEmpresaActual, CveUsuario:=UsuarioActual.CveUsuario) Then
|
|
ViewState("CveEstatus") = ObjOC.CveEstatus
|
|
End If
|
|
ObjOC.Dispose()
|
|
|
|
If CveEstatus = CveEstatusFinalOK Then
|
|
Alert("La requisición ya fue autorizada por otro usuario u otra sesión. Favor de verificar.", TipoMensaje.MsgAdvertencia, "location.reload();")
|
|
TieneError = True
|
|
'Response.Redirect(HttpContext.Current.Request.Url.ToString(), True)
|
|
End If
|
|
End If
|
|
|
|
'Valida que este seleccionada una sucursal si el proveedor tiene una
|
|
If DivProveedorSucursal.Visible = True And DdlProveedorSucursal.SelectedValue.ToEntero = -1 Then
|
|
Alert("Tiene que seleccionar la sucursal del proveedor.", TipoMensaje.MsgAdvertencia)
|
|
TieneError = True
|
|
End If
|
|
|
|
'Valida que tenga proveedore
|
|
If (EsNuevo = True AndAlso TipoOC.ToUpper = "OC") AndAlso DdlProveedores.SelectedValue.ToEntero() <= 0 Then
|
|
Alert("Debe seleccionar un proveedor.", TipoMensaje.MsgAdvertencia)
|
|
TieneError = True
|
|
End If
|
|
|
|
|
|
'VALIDA QUE ANTES DE QUE PUEDA MANDARLA A SUPERVISADA SE TIENE QUE SELECCIONAR UN PROVEEDOR
|
|
If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then
|
|
If (TipoOC.ToUpper = "REQ" And CboE.SelectedValue.ToEntero.Contiene(CveEstatusSupervisada, CveEstatusFinalOK)) AndAlso DdlProveedores.SelectedValue.ToEntero() <= 0 Then
|
|
Alert("Debe seleccionar un proveedor.", TipoMensaje.MsgAdvertencia)
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
'VALIDA QUE TENGA LAS COTIZACIONES QUE DEBEN TENER
|
|
If UsuarioActual.Empresa.Funcionalidad(565) = "1" AndAlso (TipoOC.ToUpper = "REQ" And CveEstatusFinalOK = CboE.SelectedValue.ToEntero) Then
|
|
If CveConfianzaProveedor > 0 Then
|
|
'SUMA EL TOTAL DE COTIZACIONES
|
|
For Each GvRow As GridViewRow In GvBitacoraEva.Rows
|
|
If GvRow.RowType = DataControlRowType.DataRow Then
|
|
Me.NumCotizacionesEvaluar += 1
|
|
End If
|
|
Next
|
|
|
|
Me.NumCotizacionesEvaluar += Me.NumCotizaciones
|
|
|
|
If CveConfianzaProveedor = 1 AndAlso Me.NumCotizacionesEvaluar < 1 Then
|
|
Alert("Para el proveedor seleccionado es necesario tener al menos 1 cotización.", TipoMensaje.MsgAdvertencia)
|
|
TieneError = True
|
|
ElseIf CveConfianzaProveedor = 2 AndAlso Me.NumCotizacionesEvaluar < 2 Then
|
|
Alert("Para el proveedor seleccionado es necesario tener al menos 2 cotizaciones", TipoMensaje.MsgAdvertencia)
|
|
TieneError = True
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
If Not UsuarioActual.Empresa.Funcionalidad(565) = "1" Then
|
|
If ChkCotizacion.Checked And DtDetalle.FiltraParametros("ISNULL(CveProveedor,0) <= 0", "CveProveedor").Rows.Count > 0 Then
|
|
Alert("Todos los conceptos de la Requisición deben tener proveedor ganador seleccionado.", TipoMensaje.MsgAdvertencia)
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
'VALIDAR PORCENTAJES DE IVA
|
|
Dim PorcentajeIVA As Decimal = DdlIVA.SelectedValue.ToDecimal() - 1
|
|
Dim PorcentajeIVADetalle As Decimal = Me.DtDetalle.MAX("IVAPorcentaje", "IVAPorcentaje > 0").ToDecimal()
|
|
|
|
If PorcentajeIVADetalle > 0 AndAlso (PorcentajeIVA <> PorcentajeIVADetalle) Then
|
|
Alert("El IVA de los conceptos no coincide con el IVA a facturar.", TipoMensaje.MsgAdvertencia)
|
|
TieneError = True
|
|
End If
|
|
|
|
Return TieneError
|
|
End Function
|
|
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
|
|
|
|
'VALIDACIONES PARA GUARDAR
|
|
If ValidaGuardar() Then Exit Sub
|
|
|
|
Dim MsgError As String = "Hubo un error al registrar"
|
|
'VARIABLES
|
|
Dim CveProveedorSucursal As Integer = -1
|
|
Dim CveProveedorContacto As Integer = -1
|
|
Dim TieneError As Boolean = False
|
|
Dim CveProveedor As Integer = -1
|
|
Dim GeneraReq = False
|
|
Dim IDPoliza As Integer = 0
|
|
Dim IVA = If(TxtIVA.Visible, TxtIVA.Text.ToDecimal, LblIVA.Text.ToDecimal)
|
|
If TxtFechaEstimadaEntrega.Text.Trim = "__/__/____" Then TxtFechaEstimadaEntrega.Text = ""
|
|
Dim Promocion = TxtPromocion.Text.Trim
|
|
|
|
|
|
'EMPIEZA OBJETOS Y TRASACCIONES
|
|
Dim OC As New ClsOC
|
|
Dim OCBitacora As New ClsOIEventos(OC.IniciaTransacSQL())
|
|
Dim ObjInventarios As New ClsInventarios(OC.IniciaTransacSQL())
|
|
Dim ObjConta As New ClsContabilidad(OC.IniciaTransacSQL())
|
|
Dim ObjVentas As New ClsVentas(OC.IniciaTransacSQL())
|
|
Dim Conta As ClsContPAQi = Nothing
|
|
If (UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto) Or UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
|
|
Conta = New ClsContPAQi(UsuarioActual.Empresa)
|
|
Conta.IniciaTransacSQL()
|
|
End If
|
|
|
|
'LUGAR ENTREGA
|
|
Dim LugarEntrega = If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim)
|
|
LugarEntrega = If(DivLugarEntrega1.Visible, LugarEntrega, If(TxtLugarEntregaDirecta.Visible, TxtLugarEntregaDirecta.Text.Trim, ""))
|
|
|
|
'GUARDA'
|
|
If EsNuevo Then
|
|
|
|
|
|
'SI ES NUEVO, ES REQUISICION, ES ESTATUSFINALOK... VA A SER ORDEN DE COMPRA
|
|
Dim CveEstatusNuevo As Integer = CboE.SelectedValue.ToEntero
|
|
If (TipoOC = "REQ" AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalOK) OrElse (TipoOC = "OC") Then
|
|
GeneraReq = If(TipoOC = "REQ", True, False)
|
|
ViewState("TipoLargo") = "Orden Compra"
|
|
|
|
CveEstatusNuevo = If(TipoOC = "OC", CboE.SelectedValue.ToEntero, CveEstatusInicialOC)
|
|
'If Request("Tipo") IsNot Nothing AndAlso Request("Tipo") = "Req" AndAlso TipoOC = "OC" Then
|
|
' CveEstatusNuevo = If(TipoOC = "OC", CveEstatusInicialOC, CboE.SelectedValue.ToEntero)
|
|
' Else
|
|
'CveEstatusNuevo = If(TipoOC = "OC", CboE.SelectedValue.ToEntero, CveEstatusInicialOC)
|
|
'End If
|
|
|
|
|
|
End If
|
|
|
|
|
|
'siempre se esta guardando el proveedor
|
|
If Not ChkCotizacion.Checked OrElse (UsuarioActual.Empresa.Funcionalidad(565) = "1" AndAlso CveConfianzaProveedor > 0) Then
|
|
CveProveedor = DdlProveedores.SelectedValue.ToEntero
|
|
CveProveedorSucursal = DdlProveedorSucursal.SelectedValue.ToEntero
|
|
CveProveedorContacto = IIf(DdlProveedorContacto.SelectedValue.ToEntero = 0, "-1", DdlProveedorContacto.SelectedValue).ToString.ToEntero
|
|
End If
|
|
|
|
Dim CveOrdenCompraPadre As Integer = -1
|
|
|
|
If GeneraReq Then
|
|
If Not TieneError Then ' AGREGAR REQUISICION
|
|
If OC.AddOrdenCompra("REQ", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CboE.SelectedValue.ToEntero, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
|
|
LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal,
|
|
RequiereCotizacion:=ChkCotizacion.Checked, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal,
|
|
RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim,
|
|
IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then
|
|
|
|
CveOrdenCompraPadre = OC.CveOrdenCompra
|
|
If CveOrdenCompraPadre > 0 Then
|
|
For Each dr As DataRow In DtDetalle.Rows
|
|
If Not OC.AddOrdenCompraDetalle(CveOrdenCompraPadre, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble,
|
|
dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, Descuento:=dr("Descuento").ToString.ToDouble,
|
|
IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble,
|
|
RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble,
|
|
RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
|
|
IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble, CveTipoGastoObra:=dr("CveTipoGastoObra").ToString.ToEntero, CveCultivoCuadroDetalle:=dr("CveCultivoCuadroDetalle").ToString.ToEntero) Then
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
TipoOC = "OC"
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
|
|
|
|
End If
|
|
End If
|
|
|
|
If Not TieneError Then ' AGREGAR ORDEN DE COMPRA
|
|
|
|
|
|
If OC.AddOrdenCompra(If(TipoOS, "OS", TipoOC), -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusNuevo, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
|
|
LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal,
|
|
RequiereCotizacion:=ChkCotizacion.Checked, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text,
|
|
PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1),
|
|
CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero,
|
|
Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then
|
|
CveOrdenCompra = OC.CveOrdenCompra
|
|
CveEstatus = CboE.SelectedValue.ToEntero
|
|
|
|
If TipoOC = "OC" And CboE.SelectedValue.ToEntero > 0 Then
|
|
|
|
'''''
|
|
'17/04/2018 - Se cambia por nuevo esquema de paqueterias guias.
|
|
'ENTREGA FORANEOS
|
|
'If ChkEntregaDirecta.Checked Then
|
|
' If Not ObjInventarios.AddEntregaForanea("", False, 1, UsuarioActual.CveEmpresa, CveOrdenCompra) Then
|
|
' TieneError = True
|
|
' End If
|
|
'End If
|
|
|
|
If Not TieneError Then
|
|
CveOCGeneradas.Add(CveOrdenCompra)
|
|
FolioOCGeneradas.Add(OC.Folio)
|
|
End If
|
|
End If
|
|
|
|
Folio = OC.Folio
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
|
|
If CveOrdenCompra > 0 Then
|
|
|
|
'USA AC
|
|
If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA
|
|
' SI NO TIENE COTIZACION SE GENERA 1 POLIZA
|
|
If Not ChkCotizacion.Checked Then
|
|
|
|
If GuardaAC(Conta, OC, CveOrdenCompra, Folio) <= 0 Then
|
|
TieneError = True
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
'TERMINA: USA AC
|
|
|
|
|
|
'AGREGA BITACORA TEMPORAL
|
|
If DtBitacora IsNot Nothing AndAlso DtBitacora.Rows.Count > 0 Then
|
|
TieneError = GuardaBitacoraTemporal(OCBitacora)
|
|
End If
|
|
|
|
|
|
For Each dr As DataRow In DtDetalle.Rows
|
|
If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero,
|
|
dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, pCveOrdenCompraPadre:=CveOrdenCompraPadre, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble,
|
|
IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero,
|
|
IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
|
|
IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble, CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero(), CveTipoGastoObra:=dr("CveTipoGastoObra").ToString.ToEntero, CveCultivoCuadroDetalle:=dr("CveCultivoCuadroDetalle").ToString.ToEntero) Then
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If Not TieneError AndAlso UsuarioActual.Empresa.Funcionalidad(583) = "1" Then
|
|
TieneError = Not ActualizarCotizacion(ObjVentas)
|
|
End If
|
|
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
|
|
|
|
|
|
If CveOrdenTrabajo > 0 Then
|
|
|
|
Dim ObjAF As New ClsAF(OC.IniciaTransacSQL)
|
|
If Not ObjAF.UpdateOrdenesTrabajoOC(CveOrdenTrabajo, CveOrdenCompra, UsuarioActual.CveEmpresa) Then
|
|
TieneError = True
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
|
If Not TieneError Then
|
|
If Conta IsNot Nothing Then Conta.Commit()
|
|
OC.Commit()
|
|
BtnGuardar.Visible = False
|
|
Else
|
|
|
|
If Conta IsNot Nothing Then Conta.RollBack()
|
|
If OC IsNot Nothing Then OC.RollBack()
|
|
Alert("Hubo un Error al registrar", TipoMensaje.MsgError)
|
|
CveOrdenCompra = -1
|
|
|
|
|
|
If Request("Tipo") IsNot Nothing AndAlso Request("Tipo") = "Req" AndAlso TipoOC = "OC" Then
|
|
TipoOC = "REQ"
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
ViewState("LigaOCs") = If(CveEstatusNuevo <> CboE.SelectedValue.ToEntero, String.Format("<a href='/OC/OC.aspx?OC={0}'>{1}</a>", CveOrdenCompra, Folio), "")
|
|
|
|
If CveOrdenCompra > 0 Then
|
|
Dim ImprimirOC = String.Format("<a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Orden de Compra</a> ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra)))
|
|
Dim Msg As New StringBuilder
|
|
|
|
'Cuando Estatus = "Autorizada"
|
|
'If CboE.SelectedValue.ToEntero > 0 Then
|
|
' Dim Row As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("CveEstatus = {0}", CboE.SelectedValue)).Rows(0)
|
|
' 'If (Row IsNot Nothing AndAlso Row("TipoTermino").ToString.ToEntero = 1) Then EnviarCorreoOrdenCompra(CveOrdenCompra)
|
|
'End If
|
|
|
|
'POSIBLE COMENTAR - QUITAR
|
|
'Envío de correo, con el detalle y la información cargada de nuevo
|
|
If CveEstatus >= 0 Then
|
|
EnviarCorreoCambioEstatus(CveEstatusSiguiente, CboE.SelectedItem.Text, False)
|
|
End If
|
|
|
|
If LigaOCs = "" Then
|
|
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>. Ha sido guardada correctamente <br/> {2}", TipoLargo, Folio, If(TipoOC = "OC", ImprimirOC, ""))
|
|
Else
|
|
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>. Ha sido guardada correctamente<br><br>Orden de Compra:{2} <br/> {3}", TipoLargo, Folio, LigaOCs, If(TipoOC = "OC", ImprimirOC, ""))
|
|
End If
|
|
|
|
'IMPRIME LIGA A POLIZAS
|
|
If IDPolizasGeneradas.Count > 0 Then
|
|
Msg.Append("<br/><br/> <b>Polizas generadas:</b>")
|
|
For i = 0 To IDPolizasGeneradas.Count - 1
|
|
Msg.AppendFormat("<br/> Poliza: <b><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">{1}</a></b>", IDPolizasGeneradas(i), FoliosPolizas(i))
|
|
Next
|
|
End If
|
|
|
|
Alert(Msg.ToString, TipoMensaje.MsgInformacion, "document.location.href=""/OC/RepOC.aspx""")
|
|
|
|
'GeneraPDF(CveOrdenCompra)
|
|
TxtDescrip.Text = ""
|
|
TxtJustificacion.Text = ""
|
|
End If
|
|
|
|
|
|
'UPDATE'
|
|
ElseIf CveOrdenCompra > 0 Then
|
|
Dim FueModificada As Boolean = False
|
|
Dim Proveedor As String = ""
|
|
'siempre se esta guardando el proveedor
|
|
If Not ChkCotizacion.Checked OrElse (UsuarioActual.Empresa.Funcionalidad(565) = "1" AndAlso CveConfianzaProveedor > 0) Then
|
|
CveProveedor = DdlProveedores.SelectedValue.ToEntero
|
|
Proveedor = DdlProveedores.SelectedText.ToString
|
|
End If
|
|
|
|
If OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
|
|
LugarEntrega, DdlMoneda.SelectedValue.ToEntero, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.txtValue.Value.ToEntero,
|
|
DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1),
|
|
Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto,
|
|
PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2)) Then
|
|
If CveProveedorOriginal <> CveProveedor Then
|
|
If Not ObjConta.UpdateProveedorPoliza(CveOrdenCompra, CveProveedor, Proveedor) Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
|
|
'USA AC
|
|
If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA
|
|
' SI NO TIENE COTIZACION SE GENERA 1 POLIZA
|
|
If Not ChkCotizacion.Checked AndAlso TipoOC.ToUpper <> "REQ" Then
|
|
|
|
If GuardaAC(Conta, OC, CveOrdenCompra, lblFolio.Text.ToEntero) <= 0 Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
End If
|
|
'TERMINA: USA AC
|
|
|
|
'inserto los nuevos detalles
|
|
If Not TieneError Then
|
|
For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato = 0").Rows
|
|
If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero), Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble, CveTipoGastoObra:=dr("CveTipoGastoObra").ToString.ToEntero, CveCultivoCuadroDetalle:=dr("CveCultivoCuadroDetalle").ToString.ToEntero) Then
|
|
TieneError = True
|
|
Exit For
|
|
Else
|
|
FueModificada = True
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
'Edito los detalles
|
|
If Not TieneError Then
|
|
|
|
Dim DtInvOC As New DataTable
|
|
Dim DtInvOCDiferencias As New DataTable
|
|
DtInvOCDiferencias.Columns.Add("CveOrdenCompraDetalle", GetType(Integer))
|
|
DtInvOCDiferencias.Columns.Add("CveAlmacen", GetType(Integer))
|
|
DtInvOCDiferencias.Columns.Add("CveMovimiento", GetType(Integer))
|
|
DtInvOCDiferencias.Columns.Add("Diferencia", GetType(Double))
|
|
DtInvOCDiferencias.Columns.Add("ImporteMovto", GetType(Double))
|
|
DtInvOCDiferencias.Columns.Add("ImporteMovtoDLLS", GetType(Double))
|
|
DtInvOCDiferencias.Columns.Add("TipoCambioAjuste", GetType(Double))
|
|
DtInvOCDiferencias.Columns.Add("ConceptoSalida", GetType(Integer))
|
|
DtInvOCDiferencias.Columns.Add("PS", GetType(String))
|
|
|
|
If ObjInventarios.GetMovimientosOC(CveOrdenCompra, UsuarioActual.CveEmpresa) Then
|
|
DtInvOC = ObjInventarios.DtResultados.FiltraParametros("CvePS > 0").Copy
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1)").Rows
|
|
If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero,
|
|
dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero), dr("Descuento").ToString.ToDouble,
|
|
IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then
|
|
TieneError = True
|
|
Exit For
|
|
Else
|
|
FueModificada = True
|
|
|
|
'PARA PREPOLIZA DE AJUSTE ALMACEN POR ADELANTADO
|
|
Dim DrInvOCDiferencias As DataRow
|
|
For Each DrInv As DataRow In DtInvOC.FiltraParametros($"CveOrdenCompraDetalle = {dr("CveOrdenCompraDetalle").ToString.ToEntero} AND CveCompraDetalle < 1").Rows
|
|
DrInvOCDiferencias = DtInvOCDiferencias.NewRow
|
|
DrInvOCDiferencias("TipoCambioAjuste") = DrInv("TipoCambioAjuste").ToString.ToDouble
|
|
DrInvOCDiferencias("Diferencia") = ((dr("Importe").ToString.ToDouble * DrInv("TipoCambioAjuste").ToString.ToDouble) - DrInv("PUOriginal").ToString.ToDouble) * DrInv("Cantidad").ToString.ToDouble
|
|
DrInvOCDiferencias("CveAlmacen") = DrInv("CveAlmacen").ToString.ToEntero
|
|
DrInvOCDiferencias("CveOrdenCompraDetalle") = DrInv("CveOrdenCompraDetalle").ToString.ToEntero
|
|
DrInvOCDiferencias("ImporteMovto") = dr("Importe").ToString.ToDouble * DrInv("TipoCambioAjuste").ToString.ToDouble
|
|
DrInvOCDiferencias("ImporteMovtoDLLS") = If(DrInv("TipoCambioAjuste").ToString.ToDouble > 1, dr("Importe").ToString.ToDouble, -1)
|
|
DrInvOCDiferencias("CveMovimiento") = DrInv("CveMovimiento").ToString.ToEntero
|
|
DrInvOCDiferencias("ConceptoSalida") = DrInv("ConceptoSalida").ToString.ToEntero
|
|
DrInvOCDiferencias("PS") = dr("PS").ToString
|
|
DtInvOCDiferencias.Rows.Add(DrInvOCDiferencias)
|
|
Next
|
|
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
'PREPOLIZA DE AJUSTE ALMACEN POR ADELANTADO
|
|
If Not TieneError Then
|
|
If DtInvOCDiferencias.Rows.Count > 0 And TipoOC = "OC" Then
|
|
|
|
'VARIABLES
|
|
Dim DiferenciaInvOC = 0.0D
|
|
Dim CveMovimientoAlmacen = -1
|
|
Dim CveOCDetalle = -1
|
|
Dim CveAlmacen = -1
|
|
Dim IdCtaContableAlmacen As Integer = -1
|
|
Dim IdCtaContableRecepcionOC = -1
|
|
Dim IdCtaContableRecepcionOCME = -1
|
|
Dim IdCtaContableRecepcionOCComplementaria = -1
|
|
Dim IdCtaContableRecepcionOCER = -1
|
|
Dim IdCtaContableRecepcionOCERME = -1
|
|
Dim IdCtaContableRecepcionOCERComplementaria = -1
|
|
Dim Fecha As Date = Now
|
|
Dim CveProveedorInvOC As Integer = -1
|
|
Dim ProveedorNombre As String = ""
|
|
Dim SerieFolio As String = ""
|
|
Dim CvePrePoliza As Integer = -1
|
|
Dim ConceptoSalida = -1
|
|
Dim TCInvOC = 0.0D
|
|
Dim ImporteME = 0.0D
|
|
Dim ImporteMEComp = 0.0D
|
|
Dim SumatoriaMN = 0.0D
|
|
Dim SumatoriaME = 0.0D
|
|
Dim SumatoriaMEComp = 0.0D
|
|
Dim PS As String = ""
|
|
|
|
If ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContableRecepcionOC = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
End If
|
|
|
|
If ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContableRecepcionOCME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
End If
|
|
|
|
If ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContableRecepcionOCComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
End If
|
|
|
|
If ObjConta.GetRetCuenta(177, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContableRecepcionOCER = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
End If
|
|
|
|
If ObjConta.GetRetCuenta(232, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContableRecepcionOCERME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
End If
|
|
|
|
If ObjConta.GetRetCuenta(233, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
|
|
IdCtaContableRecepcionOCERComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
Fecha = Now
|
|
CveProveedor = DdlProveedores.SelectedValue.ToEntero
|
|
ProveedorNombre = DdlProveedores.SelectedText
|
|
SerieFolio = $"OC: {Folio}"
|
|
|
|
If DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,1) AND Diferencia <> 0 ").Rows.Count > 0 Then
|
|
|
|
CvePrePoliza = ObjConta.AddPrePolizas("OC/OC-(OCAlmacen)", 74, DiferenciaInvOC, DiferenciaInvOC, 1, Fecha, ProveedorNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
|
|
'AJUSTES EN PREPOLIZA - SALIDA CONTABLE (CON SALIDA DE VENTA O SIN SALIDA)
|
|
For Each DrDiferencias As DataRow In DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,1)").Rows
|
|
CveAlmacen = DrDiferencias("CveAlmacen").ToString.ToEntero
|
|
CveMovimientoAlmacen = DrDiferencias("CveMovimiento").ToString.ToEntero
|
|
CveOCDetalle = DrDiferencias("CveOrdenCompraDetalle").ToString.ToEntero
|
|
ConceptoSalida = DrDiferencias("ConceptoSalida").ToString.ToEntero
|
|
PS = DrDiferencias("PS").ToString
|
|
|
|
DiferenciaInvOC = DrDiferencias("Diferencia").ToString.ToDecimal ' DtInvOCDiferencias.SUMD("Diferencia", $"CveAlmacen = {CveAlmacen} AND CveMovimiento = {CveMovimientoAlmacen} AND ConceptoSalida = {ConceptoSalida}")
|
|
TCInvOC = DrDiferencias("TipoCambioAjuste").ToString.ToDecimal ' DtInvOCDiferencias.FiltroPrimeroValor("TipoCambioAjuste", $"CveAlmacen = {CveAlmacen} AND CveMovimiento = {CveMovimientoAlmacen} AND ConceptoSalida = {ConceptoSalida}").ToDecimal
|
|
IdCtaContableAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero
|
|
|
|
If DiferenciaInvOC.RoundSQL() <> 0 Then
|
|
Dim tCveSubProyecto As Integer = 0
|
|
|
|
If CvePrePoliza > 0 Then
|
|
|
|
tCveSubProyecto = DtDetalle.FiltroPrimeroValor("CveSubProyecto", "CveOrdenCompraDetalle =" & CveOCDetalle).ToEntero
|
|
|
|
If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119) Then
|
|
ImporteME = (DiferenciaInvOC / TCInvOC).RoundSQL()
|
|
ImporteMEComp = (DiferenciaInvOC - ImporteME).RoundSQL()
|
|
|
|
'COMPLEMENTARIA
|
|
'If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteME, SerieFolio, 232, SerieFolio, Fecha, If(ConceptoSalida = 0, IdCtaContableAlmacen, IdCtaContableRecepcionOCERME), -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, CveCuenta:=CveCuentaAlmacen, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then
|
|
' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMEComp, SerieFolio, 233, SerieFolio, Fecha, IdCtaContableRecepcionOCERComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteMEComp, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then
|
|
' TieneError = True
|
|
' Exit For
|
|
' End If
|
|
'Else
|
|
' TieneError = True
|
|
' Exit For
|
|
'End If
|
|
|
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, SerieFolio, 177, SerieFolio, Fecha, IdCtaContableRecepcionOCER, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=-DiferenciaInvOC, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=tCveSubProyecto) Then
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
|
|
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteME, SerieFolio, 228, SerieFolio, Fecha, IdCtaContableRecepcionOCME, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then
|
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMEComp, SerieFolio, 229, SerieFolio, Fecha, IdCtaContableRecepcionOCComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteMEComp, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
Else
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
Else
|
|
'2018.11.24 se cambia concepto 176, de cargo a abono negativo., petición MALL
|
|
'2019.03.26 se cambia concepto 177, de abono a cargo., petición MALL
|
|
'2019.04.10 se cambia concepto 177, de cargo a abono., petición MALL
|
|
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, SerieFolio, If(ConceptoSalida = 0, 177, 177), SerieFolio, Fecha, IdCtaContableRecepcionOCER, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=-DiferenciaInvOC, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=tCveSubProyecto) Then
|
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaInvOC, SerieFolio, 176, SerieFolio, Fecha, IdCtaContableRecepcionOC, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=DiferenciaInvOC, CveOCDetalle:=CveOCDetalle) Then
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
Else
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
End If
|
|
If Not TieneError Then
|
|
|
|
If Not OCBitacora.AddEventoBitacora(String.Format("Se registró una póliza de ajuste por cambio de precio en producto: {0}", PS), "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(200) = "1" AndAlso Conta IsNot Nothing Then
|
|
If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=Conta) Then
|
|
TieneError = False
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
'AJUSTES EN INVENTARIO
|
|
'For Each DrDiferencias As DataRow In DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,2)", "", {"CveAlmacen", "ConceptoSalida", "CveMovimiento"}).Rows
|
|
' CveAlmacen = DrDiferencias("CveAlmacen").ToString.ToEntero
|
|
' CveMovimientoAlmacen = DrDiferencias("CveMovimiento").ToString.ToEntero
|
|
' ConceptoSalida = DrDiferencias("ConceptoSalida").ToString.ToEntero
|
|
|
|
' DiferenciaInvOC = DtInvOCDiferencias.SUMD("Diferencia", $"CveAlmacen = {CveAlmacen} And CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = {ConceptoSalida}")
|
|
' TCInvOC = DtInvOCDiferencias.FiltroPrimeroValor("TipoCambioAjuste", $"CveAlmacen = {CveAlmacen} And CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = {ConceptoSalida}").ToDecimal
|
|
' IdCtaContableAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DrDiferencias("CveAlmacen").ToString.ToEntero}").ToEntero
|
|
|
|
' 'MODIFICACIÓN CONCEPTO
|
|
' If ConceptoSalida = 0 Then
|
|
' For Each DrAjuste As DataRow In DtInvOC.FiltraParametros($"CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = 0").Rows
|
|
' If Not ObjInventarios.UpdateMovimientoDetalle(DrAjuste("Cantidad").ToString.ToDouble, DrAjuste("CveUM").ToString.ToEntero, DrAjuste("CvePS").ToString.ToEntero, DtInvOCDiferencias.FiltroPrimeroValor("ImporteMovto", $"CveOrdenCompraDetalle = {DrAjuste("CveOrdenCompraDetalle").ToString.ToEntero}").ToDouble, -1, DrAjuste("CveMovimientoDetalle").ToString.ToEntero, PUTC:=DtInvOCDiferencias.FiltroPrimeroValor("ImporteMovtoDLLS", $"CveOrdenCompraDetalle = {DrAjuste("CveOrdenCompraDetalle").ToString.ToEntero}").ToDouble) Then
|
|
' TieneError = True
|
|
' Exit For
|
|
' End If
|
|
' Next
|
|
' End If
|
|
|
|
' 'SALIDA ADMINISTRATIVA (CON SALIDA POR TRASPASO) -AJUSTE
|
|
' If ConceptoSalida = 2 Then
|
|
' Dim CveMovimientoSalidaAjuste = ObjInventarios.AddMovimiento(CveAlmacen, 3, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, MovimientoFijo:=True, Modulo:="OC/G")
|
|
' For Each DrAjuste As DataRow In DtInvOC.FiltraParametros($"CveMovimiento = {CveMovimientoAlmacen} And ConceptoSalida = 2").Rows
|
|
' If Not ObjInventarios.AddMovimientoDetalle(CveMovimientoSalidaAjuste, DrAjuste("Cantidad").ToString.ToDouble, DrAjuste("CveUM").ToString.ToEntero, DrAjuste("CveUM").ToString.ToEntero, DrAjuste("PU").ToString.ToDouble, -1, CveOrdenCompraDetalle:=DrAjuste("CveOrdenCompraDetalle").ToString.ToEntero) Then
|
|
' TieneError = True
|
|
' Exit For
|
|
' End If
|
|
' Next
|
|
' Dim CveMovimientoEntradaAjuste = ObjInventarios.AddMovimiento(CveAlmacen, 2, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Modulo:="OC/G")
|
|
' If ObjInventarios.GetMovimientosDetalle(CveMovimientoSalidaAjuste, UsuarioActual.CveEmpresa) Then
|
|
' For Each Dr As DataRow In ObjInventarios.DtResultados.Rows
|
|
' If Not ObjInventarios.AddMovimientoDetalle(CveMovimientoEntradaAjuste, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, DtInvOCDiferencias.FiltroPrimeroValor("ImporteMovto", $"CveOrdenCompraDetalle = {Dr("CveOrdenCompraDetalle").ToString.ToEntero}").ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveOrdenCompraDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then
|
|
' TieneError = True
|
|
' Exit For
|
|
' End If
|
|
' Next
|
|
' If TieneError Then
|
|
' Exit For
|
|
' End If
|
|
' Else
|
|
' TieneError = True
|
|
' Exit For
|
|
' End If
|
|
' End If
|
|
'Next
|
|
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
|
|
'elimino los detalles
|
|
If Not TieneError Then
|
|
For Each i As Integer In DrEliminados
|
|
If Not OC.RemoveOrdenCompraDetalle(i, UsuarioActual.CveUsuario) Then
|
|
TieneError = True
|
|
Exit For
|
|
Else
|
|
FueModificada = True
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
'Actualizo el estatus
|
|
If Not TieneError Then
|
|
If CboE.SelectedValue.ToEntero <> CveEstatus Then
|
|
If Not OC.UpdateOrdenCompraEstatus(CboE.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, TxtCancelar.Text) Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
'SI requiere Cotizacion y el estatus a el que se actualizo es el FinalOK, generar las ordenes de compra
|
|
If Not TieneError Then
|
|
If TipoOC.ToUpper = "REQ" And CveEstatusFinalOK = CboE.SelectedValue.ToEntero Then
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then
|
|
If CveConfianzaProveedor > 0 Then
|
|
|
|
If CveConfianzaProveedor = 1 AndAlso Me.NumCotizacionesEvaluar >= 1 Then
|
|
TieneError = GeneraOrdenes(OC, Conta, ObjInventarios)
|
|
ElseIf CveConfianzaProveedor = 2 AndAlso Me.NumCotizacionesEvaluar >= 2 Then
|
|
TieneError = GeneraOrdenes(OC, Conta, ObjInventarios)
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
|
|
Else
|
|
TieneError = GeneraOrdenes(OC, Conta, ObjInventarios)
|
|
End If
|
|
Else
|
|
TieneError = GeneraOrdenes(OC, Conta, ObjInventarios)
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
'Si NO requiere cotizacion y el estatus que estamos guardando es el ultimo Generar una orden de compra a partir de una requisicion
|
|
If TipoOC = "REQ" And ChkCotizacion.Checked = False And CveEstatusSiguiente = CboE.SelectedValue.ToEntero And CveEstatusSiguiente = CveEstatusFinalOK Then
|
|
End If
|
|
|
|
|
|
|
|
'COMMIT
|
|
If Not TieneError Then
|
|
'If MonedaTexto <> DdlMoneda.SelectedItem.Text Then
|
|
' If Not OCBitacora.AddEventoBitacora(String.Format("Se cambió el valor de moneda de '{0}' a '{1}'", MonedaTexto, DdlMoneda.SelectedItem.Text), "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then
|
|
' TieneError = True
|
|
' End If
|
|
'End If
|
|
OC.Commit()
|
|
If Conta IsNot Nothing Then Conta.Commit()
|
|
|
|
If LigaOCs = "" Then
|
|
Alert(String.Format("La {0} se guardó correctamente", TipoLargo), TipoMensaje.MsgInformacion)
|
|
Else
|
|
Dim ImprimirOC = ""
|
|
Dim Msg As New StringBuilder
|
|
|
|
If CveOCGeneradas.Count = 1 Then
|
|
ImprimirOC = String.Format("<br/> <a Class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Orden de Compra</a> ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOCGeneradas(0))))
|
|
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>. Ha sido guardada correctamente<br><br>Se Generó la Orden de Compra {2} - {3}", TipoLargo, Folio, LigaOCs, ImprimirOC)
|
|
Else
|
|
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>. Ha sido guardada correctamente<br><br>Se Generaron las siguientes Ordenes de Compra {2}", TipoLargo, Folio, LigaOCs)
|
|
End If
|
|
|
|
'IMPRIME LIGA A POLIZAS
|
|
If IDPolizasGeneradas.Count > 0 Then
|
|
Msg.Append("<br/><br/> <b>Polizas generadas:</b>")
|
|
For i = 0 To IDPolizasGeneradas.Count - 1
|
|
Msg.AppendFormat("<br/> Poliza: <b><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">{1}</a></b>", IDPolizasGeneradas(i), FoliosPolizas(i))
|
|
Next
|
|
End If
|
|
|
|
Alert(Msg.ToString, TipoMensaje.MsgInformacion, "document.location.href=""/OC/RepOC.aspx""")
|
|
End If
|
|
|
|
DrEliminados.Clear()
|
|
Else
|
|
OC.RollBack()
|
|
If Conta IsNot Nothing Then Conta.RollBack()
|
|
Alert(MsgError, TipoMensaje.MsgError)
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
'TERMINA TODO POR SI OCURRIÓ ALGO RARO
|
|
If TieneError Then
|
|
If OC IsNot Nothing Then OC.RollBack()
|
|
If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then
|
|
If Conta IsNot Nothing Then Conta.RollBack()
|
|
End If
|
|
If OC IsNot Nothing Then OC.Dispose()
|
|
If Conta IsNot Nothing Then Conta.Dispose()
|
|
Else
|
|
'TERMINA TODO POR SI OCURRIÓ ALGO RARO
|
|
If OC IsNot Nothing Then OC.Dispose()
|
|
If ObjVentas IsNot Nothing Then ObjVentas.Dispose()
|
|
If Conta IsNot Nothing Then Conta.Dispose()
|
|
|
|
'MANDA CORREOS SI EL ESTATUS ES MAYOR A 0
|
|
If CboE.SelectedValue.ToEntero > 0 Then
|
|
Notificaciones()
|
|
End If
|
|
|
|
'LIMPIA VALORES GENERALES
|
|
VerificaPresupuesto = False
|
|
|
|
'RECARGA OC CUANDO SE ACTUALIZA PARA TRAERSE LOS DATOS DE DB
|
|
If Not EsNuevo Then
|
|
CargaDatos(CveOrdenCompra)
|
|
End If
|
|
End If
|
|
|
|
|
|
End Sub
|
|
Protected Function GeneraOrdenes(ByRef objOrdenCompra As ClsOC, Conta As ClsContPAQi, ByRef ObjInventarios As ClsInventarios) As Boolean
|
|
|
|
|
|
'If Ddlcliente.txtValue.Value.ToEntero > 0 And DdlVendedor.SelectedValue.ToEntero <= 0 Then
|
|
' Alert("Debe de seleccionar Un vendedor ", TipoMensaje.MsgAdvertencia)
|
|
' Exit Function
|
|
'End If
|
|
|
|
If TipoOS Then Return False
|
|
|
|
Dim CveCotizacion As Integer = 0
|
|
Dim CveColectiva As Integer = 0
|
|
Dim HuboError As Boolean = False
|
|
Dim IVA = If(TxtIVA.Visible, TxtIVA.Text.ToDecimal, LblIVA.Text.ToDecimal)
|
|
|
|
Dim LigaOcsTemp = ""
|
|
Dim CveOCGeneradasTemp = New List(Of Integer)
|
|
Dim FolioOCGeneradasTemp = New List(Of Integer)
|
|
|
|
|
|
Dim LugarEntrega = If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim)
|
|
LugarEntrega = If(DivLugarEntrega1.Visible, LugarEntrega, If(TxtLugarEntregaDirecta.Visible, TxtLugarEntregaDirecta.Text.Trim, ""))
|
|
Dim Promocion = "-1"
|
|
Promocion = TxtPromocion.Text.Trim
|
|
|
|
Try
|
|
Dim NoProveedoresCot As Integer = DtDetalle.COUNT("CveProveedor", "CveProveedor > 0")
|
|
|
|
If ChkCotizacion.Checked AndAlso NoProveedoresCot > 0 AndAlso (NumCotizacionesGanadoras > 0 OrElse Not (NumCotizacionesGanadoras <= 0 AndAlso CveConfianzaProveedor = 1)) Then
|
|
Dim CveProveedor = -1
|
|
Dim TotalCot = 0.0, IVACot = 0D, RetIVA = 0.0, RetISR = 0.0, PorIVA = 0.0
|
|
Dim IdPoliza = -1
|
|
|
|
|
|
For Each dr As DataRow In DtDetalle.FiltraParametros("CveProveedor > 0", "CveProveedor").Rows
|
|
|
|
'SI ES DIFERENTE PROVEEDOR AGREGA UNA OC
|
|
If CveProveedor <> dr("CveProveedor").ToString.ToEntero Then
|
|
|
|
CveProveedor = dr("CveProveedor").ToString.ToEntero
|
|
|
|
PorIVA = Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2) 'GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor)).Rows(0)("IVA").ToString.ToDouble
|
|
IVACot = IVA '(DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)) * PorIVA).ToString.ToDecimal
|
|
RetIVA = TxtRetIVA.Text.ToDecimal
|
|
RetISR = TxtRetISR.Text.ToDecimal
|
|
|
|
If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega,
|
|
CveUsuario, CveEmpresaActual, 0, pCveProveedor:=CveProveedor, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text,
|
|
PorcentajeIVA:=PorIVA, IVA:=IVACot, RetIVA:=RetIVA.ToString.ToDecimal, RetISR:=RetISR.ToString.ToDecimal, IDPoliza:=IdPoliza, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text,
|
|
EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal,
|
|
CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, Promocion:=Promocion, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero) Then
|
|
|
|
'CREA POLIZA POR CADA PROVEEDOR
|
|
|
|
If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto AndAlso objOrdenCompra.Folio > 0 Then
|
|
IdPoliza = GuardaAC(Conta, objOrdenCompra, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio, CveProveedor)
|
|
If IdPoliza <= 0 Then
|
|
HuboError = True
|
|
Exit For
|
|
End If
|
|
End If
|
|
|
|
'17/04/2018 - Se cambia por nuevo esquema de paqueterias guias.
|
|
'ENTREGA FORANEOS
|
|
'If ChkEntregaDirecta.Checked Then
|
|
' If Not ObjInventarios.AddEntregaForanea("", False, 1, UsuarioActual.CveEmpresa, objOrdenCompra.CveOrdenCompra) Then
|
|
' HuboError = True
|
|
' End If
|
|
'End If
|
|
|
|
If Not HuboError Then
|
|
LigaOcsTemp = String.Format("{0}<br><a href='/OC/OC.aspx?OC={1}'>{2}</a>", LigaOcsTemp, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio)
|
|
CveOCGeneradasTemp.Add(objOrdenCompra.CveOrdenCompra)
|
|
FolioOCGeneradasTemp.Add(objOrdenCompra.Folio)
|
|
End If
|
|
|
|
|
|
Else
|
|
HuboError = True
|
|
Exit For
|
|
End If
|
|
|
|
End If
|
|
|
|
'AGREGA DETALLES
|
|
If Not objOrdenCompra.AddOrdenCompraDetalle(objOrdenCompra.CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero,
|
|
dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(),
|
|
dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CveOrdenCompra,
|
|
CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, Descuento:=dr("Descuento").ToString.ToDouble,
|
|
IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble,
|
|
RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble,
|
|
CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble,
|
|
RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble,
|
|
IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble,
|
|
CveTipoGastoObra:=dr("CveTipoGastoObra").ToString.ToEntero, CveCultivoCuadroDetalle:=dr("CveCultivoCuadroDetalle").ToString.ToEntero) Then
|
|
HuboError = True
|
|
Exit For
|
|
End If
|
|
|
|
Next
|
|
|
|
'SI NO HUBO ERROR AGREGA LAS LIGAS OC DE TODAS LAS OC GENERADAS
|
|
If Not HuboError Then
|
|
ViewState("LigaOCs") = String.Format("{0}{1}", LigaOCs, LigaOcsTemp)
|
|
Dim Index = 0
|
|
For Each CveOC As Integer In CveOCGeneradasTemp
|
|
CveOCGeneradas.Add(CveOC)
|
|
FolioOCGeneradas.Add(FolioOCGeneradasTemp(Index))
|
|
Index += 1
|
|
Next
|
|
End If
|
|
|
|
|
|
Else
|
|
If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega,
|
|
CveUsuario, CveEmpresaActual, 0, pCveProveedor:=DdlProveedores.SelectedValue.ToEntero, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero(), CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text,
|
|
PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, IDPoliza:=IDPolizaPresupuestal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text,
|
|
EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero,
|
|
Promocion:=Promocion) Then
|
|
|
|
|
|
'USA AC
|
|
If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA
|
|
' SI NO TIENE COTIZACION SE GENERA 1 POLIZA
|
|
If Not ChkCotizacion.Checked Then
|
|
If GuardaAC(Conta, objOrdenCompra, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio) <= 0 Then
|
|
HuboError = True
|
|
End If
|
|
End If
|
|
End If
|
|
'TERMINA: USA AC
|
|
|
|
'CveOrdenCompra = objOrdenCompra.CveOrdenCompra
|
|
If Not HuboError Then
|
|
For Each dr As DataRow In DtDetalle.Rows
|
|
If Not objOrdenCompra.AddOrdenCompraDetalle(objOrdenCompra.CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CveOrdenCompra, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble, CveTipoGastoObra:=dr("CveTipoGastoObra").ToString.ToEntero, CveCultivoCuadroDetalle:=dr("CveCultivoCuadroDetalle").ToString.ToEntero) Then
|
|
HuboError = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
'17/04/2018 - Se cambia por nuevo esquema de paqueterias guias.
|
|
'ENTREGA FORANEOS
|
|
'If ChkEntregaDirecta.Checked Then
|
|
' If Not ObjInventarios.AddEntregaForanea("", False, 1, UsuarioActual.CveEmpresa, objOrdenCompra.CveOrdenCompra) Then
|
|
' HuboError = True
|
|
' End If
|
|
'End If
|
|
|
|
|
|
If HuboError = False Then
|
|
ViewState("LigaOCs") = String.Format("{0}<br><a href='/OC/OC.aspx?OC={1}'>{2}</a>", LigaOCs, objOrdenCompra.CveOrdenCompra, objOrdenCompra.Folio)
|
|
CveOCGeneradas.Add(objOrdenCompra.CveOrdenCompra)
|
|
FolioOCGeneradas.Add(objOrdenCompra.Folio)
|
|
End If
|
|
Else
|
|
HuboError = True
|
|
End If
|
|
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
HuboError = True
|
|
End Try
|
|
|
|
Return HuboError
|
|
End Function
|
|
Private Function GuardaAC(Conta As ClsContPAQi, OC As ClsOC, CveOC As Integer, FolioOC As Integer, Optional CveProveedor As Integer = -1) As Integer
|
|
Dim TieneError = False
|
|
Dim IDPoliza = -1
|
|
Dim Folio = -1
|
|
|
|
|
|
'SI TIENE POLIZA ANTERIOR LA ELIMINA
|
|
If IDPolizaPresupuestal > 0 Then
|
|
If Not Conta.RemoveAllMovimientos(IDPolizaPresupuestal) Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
'INGRESA POLIZA
|
|
If Not TieneError Then
|
|
Dim ConceptoRenglon As String = String.Format("GC - OC {0}. {1}", FolioOC, TxtDescrip.Text)
|
|
Dim Total As Decimal = LblTotal.Text.ToDecimal
|
|
Dim Fecha As Date = TxtFecha.Text.ToDate
|
|
|
|
If Total > 0 Then
|
|
Total = Math.Round(Total, 2)
|
|
|
|
'INGRESA POLIZA SOLO CUANDO NO EXISTE YA UNA
|
|
If IDPolizaPresupuestal > 0 Then
|
|
IDPoliza = IDPolizaPresupuestal
|
|
Else
|
|
IDPoliza = Conta.AddPoliza(4, If(ConceptoRenglon.Length > 100, ConceptoRenglon.Substring(0, 99), ConceptoRenglon), 0, 0, UsuarioActual.CveUsuario, Fecha)
|
|
Folio = Conta.Folio
|
|
End If
|
|
End If
|
|
|
|
If IDPoliza > 0 Then
|
|
|
|
Dim DtPresupuestosTemp As DataTable
|
|
Dim IdCuentaComprometido, IdCuentaPorEjercer As Integer
|
|
|
|
'SI VIENE CON PROVEEDOR FILTRA SOLO LOS CONCEPTOS DEL PROVEEDOR
|
|
Dim DT = If(CveProveedor = -1, DtDetalle.Copy, DtDetalle.FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor)).Copy)
|
|
|
|
Dim Presup = From gvr As DataRow In DT.Rows.Cast(Of DataRow)()
|
|
Group gvr By Grp = New With {
|
|
Key .CvePresupuestoEgreso = gvr("CvePresupuestoEgreso").ToString.ToEntero
|
|
} Into Group
|
|
Select Grp.CvePresupuestoEgreso,
|
|
TotalImporte = Group.Sum(Function(r) r("Total").ToString.ToDecimal)
|
|
|
|
Dim tTotalIVA, tTotalGral, tIVA, tDiferenciaIVA, Importe, TotalDetalle As Decimal
|
|
Dim tPorIVA = 0D, tAjusteTotal = 0D, ipresup = 0
|
|
|
|
If CveProveedor > 0 Then
|
|
'CUANDO VIENE DE COTIZACION
|
|
tTotalIVA = (DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)) * tPorIVA).ToString.ToDecimal
|
|
tPorIVA = GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros(String.Format("CveProveedor = {0}", CveProveedor)).Rows(0)("IVA").ToString.ToDecimal
|
|
tTotalGral = DtDetalle.SUM("Total", String.Format("CveProveedor = {0}", CveProveedor)).ToString.ToDecimal
|
|
Else
|
|
'CUANDO NO VIENE DE COTIZACION
|
|
If TxtIVA.Visible Then
|
|
tTotalIVA = TxtIVA.Text.ToDecimal
|
|
Else
|
|
tTotalIVA = LblIVA.Text.ToDecimal
|
|
End If
|
|
|
|
tTotalGral = LblTotal.Text.ToDecimal
|
|
tPorIVA = tTotalIVA / (tTotalGral - tTotalIVA)
|
|
End If
|
|
|
|
tDiferenciaIVA = tTotalIVA
|
|
|
|
For Each grp In Presup
|
|
Importe = grp.TotalImporte
|
|
TotalDetalle += Importe
|
|
ipresup += 1
|
|
If Importe > 0 Then
|
|
|
|
'saco la proporcion de iva que le corresponde
|
|
tIVA = Math.Round(Importe * tPorIVA, 2)
|
|
|
|
'le sumo el iva al concepto
|
|
Importe += tIVA
|
|
|
|
'Presupuesto Egresos
|
|
DtPresupuestosTemp = DtPresupuestos.FiltraParametros(String.Format("CvePresupuestoEgreso = {0}", grp.CvePresupuestoEgreso))
|
|
If DtPresupuestosTemp.Rows.Count <> 1 Then
|
|
TieneError = True : Exit For
|
|
End If
|
|
IdCuentaComprometido = DtPresupuestosTemp.Rows(0)("IdCuentaComprometido").ToString.ToEntero
|
|
IdCuentaPorEjercer = DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString.ToEntero
|
|
|
|
If Conta.AddMovimiento(IDPoliza, IdCuentaComprometido, False, Importe, "", ConceptoRenglon, 0, Fecha, "") Then
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaPorEjercer, True, Importe, "", ConceptoRenglon, 0, Fecha, "") Then
|
|
TieneError = True : Exit For
|
|
End If
|
|
Else
|
|
TieneError = True : Exit For
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
|
|
If Not TieneError Then
|
|
If Not OC.UpdateOrdenCompraPoliza(IDPoliza, CveOC) Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
If Not Conta.AjustaPoliza(IDPoliza) Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
ElseIf Total > 0 Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
If TieneError Then
|
|
IDPoliza = -1
|
|
Else
|
|
'GUARDA ID Y FOLIO PARA MOSTRAR LIGA A POLIZA EN ALERT
|
|
IDPolizasGeneradas.Add(IDPoliza)
|
|
FoliosPolizas.Add(Folio)
|
|
End If
|
|
|
|
Return IDPoliza
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region " CANCELAR OC "
|
|
Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Handles BtnCancelar.Click
|
|
Dim ObjEventos As New ClsOIEventos
|
|
|
|
If CveEstatusFinalError > 0 Then
|
|
Dim objOrdenCompra As New ClsOC
|
|
objOrdenCompra.IniciaTransacSQL()
|
|
Dim TieneError = False
|
|
|
|
'AC
|
|
Dim ObjAC As ClsContPAQi = Nothing
|
|
Dim PolizaCancelacion = -1
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
ObjAC = New ClsContPAQi(UsuarioActual.Empresa)
|
|
ObjAC.IniciaTransacSQL()
|
|
End If
|
|
|
|
|
|
If Not objOrdenCompra.UpdateOrdenCompraEstatus(CveEstatusFinalError, CveOrdenCompra, UsuarioActual.CveUsuario, TxtCancelar.Text) Then
|
|
TieneError = True
|
|
End If
|
|
|
|
If IDPolizaPresupuestal > 0 AndAlso UsuarioActual.Empresa.UsaAC Then
|
|
PolizaCancelacion = CancelarAC(ObjAC)
|
|
|
|
If PolizaCancelacion = -1 Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
objOrdenCompra.Commit()
|
|
If ObjAC IsNot Nothing Then ObjAC.Commit()
|
|
|
|
Dim Msg As New StringBuilder
|
|
Msg.AppendFormat("La {0} {1}", TipoLargo, If(IDPolizaPresupuestal > 0, "y su poliza asociada fueron cancelados correctamente", "fue cancelada correctamente"))
|
|
|
|
'POLIZA CANCELACION AC -- CUANDO SE GENERO UNA POLIZA NUEVA (NEGATIVA)
|
|
If PolizaCancelacion > 0 Then
|
|
Msg.AppendFormat("<br/><br/><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Ver Póliza de cancelación</a>", PolizaCancelacion)
|
|
|
|
If Not ObjEventos.AddEventoBitacora(String.Format("Folio de Cancelación: <a target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">{1}</a>", PolizaCancelacion, Folio), "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
Alert(Msg.ToString, TipoMensaje.MsgInformacion)
|
|
RegistraScript("$('#DivCancelarCompra').modal('hide');")
|
|
|
|
EnviarCorreoCambioEstatus(CboE.SelectedValue.ToEntero, CboE.SelectedItem.Text)
|
|
EnviaCorreoSolicitudAnticipoCancelado()
|
|
CargaHistorial()
|
|
CargaDatos(CveOrdenCompra)
|
|
Else
|
|
Alert(String.Format("Ocurrió un error al cancelar la {0}. Por favor vuelva a intentar.", TipoLargo))
|
|
objOrdenCompra.RollBack()
|
|
If ObjAC IsNot Nothing Then ObjAC.RollBack()
|
|
End If
|
|
|
|
objOrdenCompra.Dispose()
|
|
If ObjAC IsNot Nothing Then ObjAC.Dispose()
|
|
Else
|
|
Alert("No tiene configurado un Estatus de Cancelación", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
End Sub
|
|
|
|
Private Function CancelarAC(ObjAC As ClsContPAQi) As Integer
|
|
' = 0: OK, NO OCUPO POLIZA DE CANCELACION
|
|
' > 0: GENERO POLIZA DE CANCELACION
|
|
' < 0: ERROR
|
|
|
|
Dim ErrorCancelar = False
|
|
Dim IdPolizaNueva = 0
|
|
|
|
If IDPolizaPresupuestal > 0 Then
|
|
Dim dt As DataTable
|
|
If ObjAC.GetPoliza(IDPolizaPresupuestal, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then
|
|
dt = ObjAC.DtResultados
|
|
|
|
If dt.Rows(0)("FechaPol").ToString.ToDate.Month < TxtFechaCancelacion.Text.ToDate.Month Or dt.Rows(0)("FechaPol").ToString.ToDate.Year < TxtFechaCancelacion.Text.ToDate.Year Then
|
|
' MES ANTERIOR, MOVIMIENTOS CONTRARIOS (NEGATIVOS)
|
|
|
|
'CREA POLIZA NEGATIVA
|
|
IdPolizaNueva = ObjAC.AddPoliza(dt.Rows(0)("CodigoTipoPoliza").ToString.ToEntero, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), 0, 0, UsuarioActual.CveUsuario, Now)
|
|
|
|
If IdPolizaNueva > 0 Then
|
|
'DETALLES POLIZA NEGATIVA
|
|
For Each dr As DataRow In dt.Rows
|
|
If Not ObjAC.AddMovimiento(IdPolizaNueva, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "True", dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), dr("IdSegNeg").ToString.ToEntero, Now, "") Then
|
|
ErrorCancelar = True : Exit For
|
|
End If
|
|
Next
|
|
|
|
'AJUSTA POLIZA
|
|
If Not ErrorCancelar Then
|
|
If Not ObjAC.AjustaPoliza(IdPolizaNueva) Then
|
|
ErrorCancelar = True
|
|
End If
|
|
End If
|
|
|
|
Else
|
|
ErrorCancelar = True
|
|
End If
|
|
|
|
Else
|
|
' MES ACTUAL, LIMPIA POLIZA PONIENDO IMPORTE EN CEROS
|
|
For Each dr As DataRow In dt.Rows
|
|
If Not ObjAC.UpdateMovimiento(dr("Id").ToString.ToEntero, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "1", 0, dr("Referencia").ToString, dr("Concepto").ToString, dr("IdSegNeg").ToString.ToEntero, dr("Fecha").ToString.ToDate) Then
|
|
ErrorCancelar = True : Exit For
|
|
End If
|
|
Next
|
|
|
|
'AJUSTA POLIZA
|
|
If Not ErrorCancelar Then
|
|
If Not ObjAC.AjustaPoliza(IDPolizaPresupuestal) Then
|
|
ErrorCancelar = True
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
If ErrorCancelar Then
|
|
IdPolizaNueva = -1
|
|
End If
|
|
|
|
Return IdPolizaNueva
|
|
End Function
|
|
#End Region
|
|
|
|
#Region " GVD "
|
|
Protected Sub CargaDatosDetalles()
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
|
|
TxtGrid.Text = If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.Rows.Count.ToString, "")
|
|
|
|
CalculaGenerales()
|
|
|
|
UPPDetalle.Update()
|
|
CompruebaAgregar()
|
|
CargaSuperior()
|
|
End Sub
|
|
Protected Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvD.RowDataBound
|
|
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
Try
|
|
If e.Row.FCLabel("LtlCantidad") IsNot Nothing Then
|
|
e.Row.FCLabel("LtlCantidad").Attributes.Add("data-toggle", "tooltip")
|
|
e.Row.FCLabel("LtlCantidad").Attributes.Add("Title", e.Row.DataKey("CveOrdenCompraDetalle"))
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
|
|
If Not (e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5) Then
|
|
|
|
If e.Row.RowState = DataControlRowState.Normal Or e.Row.RowState = DataControlRowState.Alternate Then
|
|
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
Dim Str As String = e.Row.DBCampo("SubProyecto")
|
|
If e.Row.DBCampo("Cuadro") <> "" Then Str = String.Format("{0}<br/>{1}", Str, e.Row.DBCampo("Cuadro"))
|
|
e.Row.FCLiteral("LtlSubProyecto").Text = Str
|
|
End If
|
|
End If
|
|
|
|
e.Row.Cells(0).ToolTip = e.Row.DBCampo("CvePresupuestoEgreso")
|
|
'comente esta linea, RMF: 2015.04.20
|
|
'If DtEstatusUsuarios.FiltraParametros(String.Format("CveSubProyecto = {0}", e.Row.DBCampo("CveSubProyecto"))).Rows.Count = 0 Then e.Row.FCImageButton("ImgEdit").Visible = False : e.Row.FCImageButton("ImgDelete").Visible = False
|
|
|
|
If TipoOC = "OC" AndAlso Not IsDBNull(e.Row.DBCampo("CveOrdenCompraPadre")) AndAlso IsNumeric(e.Row.DBCampo("CveOrdenCompraPadre")) Then
|
|
GvD.Columns(10).Visible = True
|
|
lblTipoPadreHijo.Visible = True
|
|
e.Row.FCLiteral("LtlLiga").Text = String.Format("<a class='Texto' href='/OC/OC.aspx?OC={0}'>{1}</a>", e.Row.DBCampo("CveOrdenCompraPadre"), e.Row.DBCampo("FolioOrdenCompraPadre"))
|
|
ElseIf TipoOC = "REQ" AndAlso Not IsDBNull(e.Row.DBCampo("CveOrdenCompraHija")) AndAlso IsNumeric(e.Row.DBCampo("CveOrdenCompraHija")) Then
|
|
GvD.Columns(10).Visible = True
|
|
lblTipoPadreHijo.Visible = True
|
|
e.Row.FCLiteral("LtlLiga").Text = String.Format("<a class='Texto' href='/OC/OC.aspx?OC={0}'>{1}</a>", e.Row.DBCampo("CveOrdenCompraHija"), e.Row.DBCampo("FolioOrdenCompraHija"))
|
|
End If
|
|
|
|
'CveAFVinculado
|
|
e.Row.FCLiteral("LitMaq").Text = String.Format("<a class='Texto' href='../AF/AF.aspx?CveActivoFijo={0}'>{1}</a>", e.Row.DBCampo("CveActivoFijo"), e.Row.DBCampo("CodigoAF"))
|
|
|
|
'CveCompraDetalle Vinculada
|
|
Dim ObjOC As New ClsOC
|
|
If ObjOC.GetOCVinculadasPendientes(e.Row.DBCampo("CveOrdenCompraDetalle").ToEntero) Then
|
|
If ObjOC.DtResultados.Rows.Count = 1 Then
|
|
e.Row.FCLiteral("LtlCompra").Text = String.Format("<a class='Texto' target='_blank' href='../Compras/Compras.aspx?CveCompra={0}'>{1}</a>", ObjOC.DtResultados.FiltroPrimeroValor("CveCompra"), e.Row.DBCampo("FolioCompra"))
|
|
LblCompra.Visible = True
|
|
GvD.Columns(11).Visible = True
|
|
ElseIf ObjOC.DtResultados.Rows.Count > 1 Then
|
|
LblCompra.Visible = True
|
|
e.Row.FCLiteral("LtlCompra").Visible = False
|
|
e.Row.FCLinkButton("LnkCompra").Visible = True
|
|
e.Row.FCLinkButton("LnkCompra").Enabled = True
|
|
'e.Row.FCLinkButton("LnkCompra").CausesValidation = False
|
|
'e.Row.FCLinkButton("LnkCompra").OnClientClick = "return true;" 'return true;
|
|
e.Row.FCLinkButton("LnkCompra").CommandArgument = e.Row.DBCampo("CveOrdenCompraDetalle")
|
|
GvD.Columns(11).Visible = True
|
|
Else
|
|
e.Row.FCLiteral("LtlCompra").Text = ""
|
|
LblCompra.Visible = True
|
|
End If
|
|
End If
|
|
ObjOC.Dispose()
|
|
|
|
'CargaPresupuestosEgresos
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
e.Row.FCDropDownList("DdlAC1").Visible = VerificaPresupuesto
|
|
e.Row.FCDropDownList("DdlAC1").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveProgramaOperativo", "ProgramaOperativo"})
|
|
e.Row.FCDropDownList("DdlAC1").DataBind()
|
|
|
|
e.Row.FCDropDownList("DdlAC2").Visible = VerificaPresupuesto
|
|
e.Row.FCDropDownList("DdlAC2").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveUnidadAdministrativa", "UnidadAdministrativa"})
|
|
e.Row.FCDropDownList("DdlAC2").DataBind()
|
|
|
|
e.Row.FCDropDownList("DdlAC3").Visible = VerificaPresupuesto
|
|
e.Row.FCDropDownList("DdlAC3").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveFuenteFinanciamiento", "FuenteFinanciamiento"})
|
|
e.Row.FCDropDownList("DdlAC3").DataBind()
|
|
|
|
e.Row.FCDropDownList("DdlAC4").Visible = VerificaPresupuesto
|
|
e.Row.FCDropDownList("DdlAC4").DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveTipoGasto", "TipoGasto"})
|
|
e.Row.FCDropDownList("DdlAC4").DataBind()
|
|
|
|
' e.Row.FCLabel("LblClasificacion").Visible = False
|
|
e.Row.FCDropDownList("DdlAC5").Visible = VerificaPresupuesto
|
|
e.Row.FCDropDownList("DdlAC5").DataSource = DtPresupuestos.FiltraParametros("Not CodigoCOG Like '1%'", DistinctColumns:={"CveClasificacion", "CodigoClasificacion"}, Orderby:="CodigoClasificacion")
|
|
e.Row.FCDropDownList("DdlAC5").DataBind()
|
|
|
|
If e.Row.DBCampo("CveProgramaOperativo").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC1").SelectedValue = e.Row.DBCampo("CveProgramaOperativo")
|
|
If e.Row.DBCampo("CveUnidadAdministrativa").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC2").SelectedValue = e.Row.DBCampo("CveUnidadAdministrativa")
|
|
If e.Row.DBCampo("CveFuenteFinanciamiento").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC3").SelectedValue = e.Row.DBCampo("CveFuenteFinanciamiento")
|
|
If e.Row.DBCampo("CveTipoGasto").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC4").SelectedValue = e.Row.DBCampo("CveTipoGasto")
|
|
If e.Row.DBCampo("CveClasificacionOG").ToString.ToEntero > 0 Then e.Row.FCDropDownList("DdlAC5").SelectedValue = e.Row.DBCampo("CveClasificacionOG")
|
|
End If
|
|
|
|
'CLASIFICACION
|
|
If isWithFamily() Then
|
|
e.Row.FCLabel("LblClasificacion").Text = e.Row.DBCampo("SubFamilia")
|
|
Else
|
|
e.Row.FCLabel("LblClasificacion").Text = e.Row.DBCampo("Clasificacion")
|
|
End If
|
|
|
|
Dim Drr As DataRow = Nothing
|
|
Drr = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus))(0)
|
|
If Drr IsNot Nothing AndAlso UsuarioActual.TienePermisoProceso(203) AndAlso Drr("TipoTermino").ToString.ToEntero = 3 AndAlso Drr("Tipo").ToString = "OC" Then
|
|
If e.Row.DataKey("CveCompra").ToEntero > 0 Then
|
|
If e.Row.DBCampo("CantidadNoEditable").ToDouble >= e.Row.DBCampo("Cantidad").ToDouble Then '[IPP] PARA PODER EDITAR
|
|
e.Row.FCLinkButton("imgE").Enabled = False
|
|
e.Row.FCLinkButton("imgE").ToolTip = "El concepto no se puede editar porque ya esta asignado a una compra"
|
|
e.Row.FCLinkButton("imgD").Enabled = False
|
|
e.Row.FCLinkButton("imgD").ToolTip = "El concepto no se puede eliminar porque ya esta asignado a una compra"
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
'SI EL CONCEPTO YA TIENE ALGUNA RECEPCIÓN A ALMACÉN O VINCULACIÓN A COMPRA NO SE PUEDE ELIMINAR
|
|
If e.Row.DBCampo("CantidadNoEditable").ToDouble > 0 Then
|
|
e.Row.FCLinkButton("imgD").Enabled = False
|
|
e.Row.FCLinkButton("imgD").ToolTip = "El concepto no se puede eliminar porque ya esta asignado a una compra"
|
|
e.Row.FCLinkButton("imgD").Attributes.Remove("Data-toggle")
|
|
e.Row.FCLinkButton("imgD").Attributes.Add("Data-toggle", "tooltip")
|
|
End If
|
|
End If
|
|
|
|
|
|
If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
|
|
e.Row.FCTextBox("TxtObsPS").Attributes.Add("maxlength", "750")
|
|
Dim FiltroClasificacion = ""
|
|
'DDL CLASIFICACION
|
|
If isWithFamily() Then
|
|
e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTSubFamilias(CveEmpresaActual) 'GlobalDTClasificaciones(CveEmpresaActual).FiltraParametros("Codigo is null OR Codigo = ''")
|
|
e.Row.FCDropDownList("DdlClasificacion").DataBind()
|
|
e.Row.FCDropDownList("DdlClasificacion").SelectedValueExist(e.Row.DBCampo("CveSubFamilia"))
|
|
FiltroClasificacion = String.Format("CveClasificacionCosto = {0}", e.Row.DBCampo("CveSubFamilia"))
|
|
Else
|
|
e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTClasificaciones(CveEmpresaActual)
|
|
e.Row.FCDropDownList("DdlClasificacion").DataBind()
|
|
e.Row.FCDropDownList("DdlClasificacion").SelectedValueExist(e.Row.DBCampo("CveClasificacion"))
|
|
FiltroClasificacion = String.Format("CveClasificacion = {0}", e.Row.DBCampo("CveClasificacion"))
|
|
End If
|
|
|
|
If e.Row.DBCampo("CantidadVinculadaCompra").ToDouble > 0 OrElse e.Row.DBCampo("CantidadSurtidaAmacen").ToDouble > 0 OrElse e.Row.DBCampo("CantidadVinculada").ToDouble > 0 Then
|
|
e.Row.FCDropDownList("DdlPS").Enabled = False
|
|
e.Row.FCDropDownList("DdlClasificacion").Enabled = False
|
|
e.Row.FCDropDownList("CboUnidadMedidaEdit").Enabled = False
|
|
e.Row.FCTextBox("TxtImporteEdit").Enabled = False
|
|
e.Row.FCTextBox("TxtDescuentoEdit").Enabled = False
|
|
End If
|
|
|
|
'DDL PS
|
|
If e.Row.DBCampo("CveClasificacion").ToString() <> "" Then
|
|
e.Row.FCDropDownList("DdlPS").DataSource = GlobalDTPS(CveEmpresaActual).FiltraParametros(FiltroClasificacion, "PS")
|
|
Else
|
|
e.Row.FCDropDownList("DdlPS").DataSource = GlobalDTPSSimplificado(CveEmpresaActual)
|
|
End If
|
|
e.Row.FCDropDownList("DdlPS").DataBind()
|
|
e.Row.FCDropDownList("DdlPS").SelectedValueExist(e.Row.DBCampo("CvePS"))
|
|
DdlPS_SelectedIndexChanged1(e.Row.FCDropDownList("DdlPS"), EventArgs.Empty)
|
|
|
|
|
|
Dim dr As DataRow = GlobalDTSubProyectos(-1, e.Row.DBCampo("CveSubProyecto").ToEntero, CveEmpresaActual).FiltroPrimero("")
|
|
If dr IsNot Nothing Then
|
|
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
e.Row.FCDropDownList("DdlProyectoEdit").Visible = False
|
|
Else
|
|
e.Row.FCDropDownList("DdlProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa)
|
|
e.Row.FCDropDownList("DdlProyectoEdit").DataBind()
|
|
e.Row.FCDropDownList("DdlProyectoEdit").SelectedValue = dr("CveProyecto").ToString
|
|
End If
|
|
|
|
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
|
|
Else
|
|
e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", dr("CveProyecto").ToString.ToEntero), "", {"CveSubProyecto", "SubProyecto"}) ' 'GlobalDTSubProyectos(dr("CveProyecto").ToString.ToEntero)
|
|
End If
|
|
e.Row.FCDropDownList("DdlSubProyectoEdit").DataBind()
|
|
e.Row.FCDropDownList("DdlSubProyectoEdit").SelectedValue = e.Row.DBCampo("CveSubProyecto")
|
|
End If
|
|
|
|
'SI ES POR GENERAR CONTRATO
|
|
If e.Row.DBCampo("CveContratoDetalle").ToEntero > 0 Then
|
|
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
e.Row.FCDropDownList("DdlProyectoEdit").Visible = False
|
|
Else
|
|
e.Row.FCDropDownList("DdlProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveProyecto", "Proyecto"}) 'GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa)
|
|
e.Row.FCDropDownList("DdlProyectoEdit").DataBind()
|
|
If e.Row.DBCampo("CveProyecto").ToEntero > 0 Then
|
|
e.Row.FCDropDownList("DdlProyectoEdit").SelectedValueExist(e.Row.DBCampo("CveProyecto").ToEntero)
|
|
End If
|
|
End If
|
|
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
|
|
Else
|
|
e.Row.FCDropDownList("DdlSubProyectoEdit").DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", e.Row.FCDropDownList("DdlProyectoEdit").SelectedValue.ToEntero), "", {"CveSubProyecto", "SubProyecto"}) ' 'GlobalDTSubProyectos(dr("CveProyecto").ToString.ToEntero)
|
|
End If
|
|
e.Row.FCDropDownList("DdlSubProyectoEdit").DataBind()
|
|
If e.Row.DBCampo("CveSubProyecto").ToEntero > 0 Then
|
|
e.Row.FCDropDownList("DdlProyectoEdit").SelectedValueExist(e.Row.DBCampo("CveSubProyecto").ToEntero)
|
|
End If
|
|
End If
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 Then 'empresa agricola
|
|
e.Row.FCDropDownList("DdlCultivosCuadroEdit").Visible = True
|
|
e.Row.FCDropDownList("DdlCultivosCuadroEdit").DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {e.Row.DBCampo("CveSubProyecto").ToEntero}")
|
|
e.Row.FCDropDownList("DdlCultivosCuadroEdit").DataBind()
|
|
|
|
e.Row.FCDropDownList("DdlCultivosCuadroEdit").Items.Insert(0, New ListItem("Seleccione uno", "-1"))
|
|
e.Row.FCDropDownList("DdlCultivosCuadroEdit").SelectedValueExist(e.Row.DBCampo("CveCultivoCuadroDetalle").ToEntero)
|
|
|
|
End If
|
|
|
|
e.Row.FCTextBox("LblEditCodigo").Attributes.Add("onkeyup", String.Format("EnterAFEdit(event,this,{0},{1});", e.Row.FCHiddenField("HdnCveActivoFijo").ClientID, e.Row.FCHiddenField("HdnCodigoAF").ClientID))
|
|
e.Row.FCTextBox("LblEditCodigo").Attributes.Add("onblur", String.Format("AFBlurEdit(this,{0},{1});", e.Row.FCHiddenField("HdnCveActivoFijo").ClientID, e.Row.FCHiddenField("HdnCodigoAF").ClientID))
|
|
e.Row.FCImage("ImgAF").Attributes.Add("onclick", String.Format("AbrirVentana('/AF/PopUpBuscarAF.aspx?OPCION=OCE&RI={0}',950,600,'N');", e.Row.RowIndex))
|
|
|
|
e.Row.FCTextBox("TxtDescuentoEdit").Attributes.Add("onkeyup", String.Format("FormatoMoneda(this);ValidaDescuentoDetalle(this,{0});", e.Row.FCTextBox("TxtImporteEdit").ClientID))
|
|
e.Row.FCTextBox("TxtImporteEdit").Attributes.Add("onkeyup", String.Format("ValidaDescuentoDetalle({0},this);", e.Row.FCTextBox("TxtImporteEdit").ClientID))
|
|
|
|
e.Row.FCTextBox("TxtCantEdit").Attributes.Add("onblur", $"ValidarCantidadMenor(this,{e.Row.DBCampo("CantidadNoEditable").ToDouble});")
|
|
|
|
End If
|
|
|
|
|
|
End If
|
|
End Sub
|
|
Protected Sub GvD_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvD.RowDeleting
|
|
|
|
If GvD.Rows(e.RowIndex).DataKey("TipoDato").Contiene("1", "2") Then 'cuando viene de la bd o es editado, solo lo borraré
|
|
DrEliminados.Add(GvD.Rows(e.RowIndex).DataKey("CveOrdenCompraDetalle").ToString.ToEntero)
|
|
End If
|
|
|
|
Dim dr As DataRow() = DtDetalle.Select("CveOrdenCompraDetalle = " & GvD.Rows(e.RowIndex).DataKey("CveOrdenCompraDetalle").ToString.ToEntero)
|
|
|
|
' If UsuarioActual.Empresa.UsaAC Then UpdateAC(dr(0).Item("CvePresupuestoEgreso").ToString.ToEntero, dr(0).Item("Total").ToString.ToEntero, True)
|
|
|
|
dr(0).Delete()
|
|
DtDetalle.AcceptChanges()
|
|
|
|
CargaDatosDetalles()
|
|
|
|
|
|
End Sub
|
|
Protected Sub GvD_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvD.RowEditing
|
|
GvD.EditIndex = e.NewEditIndex
|
|
CargaDatosDetalles()
|
|
Dim EditingRow As GridViewRow = GvD.Rows(e.NewEditIndex)
|
|
If Not EsCreaApartirDe AndAlso Not UsuarioActual.TienePermisoProceso(203) Then 'si tiene el proce 131, e va a permitir, sino que lo bloquee
|
|
If EditingRow.DataKey("TipoDato").ToEntero = 2 Or EditingRow.DataKey("CantidadNoEditable").ToDecimal > 0 Then
|
|
EditingRow.FCDropDownList("DdlClasificacion").Enabled = False
|
|
EditingRow.FCDropDownList("DdlPS").Enabled = False
|
|
EditingRow.FCDropDownList("CboUnidadMedidaEdit").Enabled = False
|
|
EditingRow.FCDropDownList("DdlProyectoEdit").Enabled = False
|
|
EditingRow.FCDropDownList("DdlSubProyectoEdit").Enabled = False
|
|
EditingRow.FCTextBox("LblEditCodigo").Enabled = False
|
|
End If
|
|
End If
|
|
|
|
If ContratoObraAplciado Then
|
|
EditingRow.FCDropDownList("DdlClasificacion").Enabled = False
|
|
EditingRow.FCDropDownList("DdlPS").Enabled = False
|
|
EditingRow.FCDropDownList("CboUnidadMedidaEdit").Enabled = False
|
|
EditingRow.FCDropDownList("DdlProyectoEdit").Enabled = False
|
|
EditingRow.FCDropDownList("DdlSubProyectoEdit").Enabled = False
|
|
EditingRow.FCTextBox("LblEditCodigo").Enabled = False
|
|
End If
|
|
|
|
End Sub
|
|
Protected Sub GvD_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvD.RowUpdating
|
|
Dim Cantidad, Importe, Descuento As Double
|
|
Dim CveUnidad, CveClasificacion, CveActivoFijo, CvePS, CveSubProyecto, CveProyecto, CveCultivoCuadroDetalle As Integer
|
|
Dim Obs, UM, Clasificacion, Codigo, PS, SubProyecto, Proyecto, Cuadro As String
|
|
|
|
Dim gvr As GridViewRow = GvD.Rows(e.RowIndex)
|
|
Cantidad = gvr.FCTextBox("TxtCantEdit").Text.Trim.ToDouble
|
|
Importe = gvr.FCTextBox("TxtImporteEdit").Text.Trim.ToDouble
|
|
Descuento = gvr.FCTextBox("TxtDescuentoEdit").Text.Trim.ToDouble
|
|
Obs = gvr.FCTextBox("TxtObsPS").Text.Trim
|
|
CveUnidad = gvr.FCDropDownList("CboUnidadMedidaEdit").SelectedValue.ToEntero
|
|
UM = gvr.FCDropDownList("CboUnidadMedidaEdit").SelectedItem.Text
|
|
CveClasificacion = gvr.FCDropDownList("DdlClasificacion").SelectedValue.ToEntero
|
|
Clasificacion = gvr.FCDropDownList("DdlClasificacion").SelectedItem.Text
|
|
|
|
'SE TOMAN VALORES EN CASO DE QUE LA CvePS SEA DIFERENTE DE LA ANTERIOR
|
|
Dim CvePSAnterior = gvr.DataKey("CvePS").ToEntero
|
|
PS = gvr.DataKey("PS").ToString
|
|
Dim RetISR = gvr.DataKey("RetISRPorcentaje").ToDouble
|
|
Dim RetIVA = gvr.DataKey("RetIVAPorcentaje").ToDouble
|
|
'Dim IvaPS = gvr.DataKey("IVAPorcentaje").ToDouble
|
|
Dim IEPSPS = gvr.DataKey("IEPSPSPorcentaje").ToDouble
|
|
Dim IEPSPSIVA = gvr.DataKey("IEPSPSIVAPorcentaje").ToDouble
|
|
Dim Total = Importe * Cantidad - Descuento
|
|
|
|
|
|
'VALORES DEL PS
|
|
CvePS = gvr.FCDropDownList("DdlPS").SelectedValue.ToEntero
|
|
|
|
PS = gvr.FCDropDownList("DdlPS").SelectedItem.Text
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("")
|
|
If DrPS Is Nothing Then
|
|
Alert("Ocurrió un error al cargar la información del producto para actualizar. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
Dim IvaPS = DrPS("IVA").ToString.ToDecimal
|
|
IEPSPS = DrPS("IEPSPorcentaje").ToString.ToDouble
|
|
IEPSPSIVA = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDecimal, 0)
|
|
|
|
If CvePS <> CvePSAnterior Or Not CveOrdenCompra > 0 Then
|
|
RetISR = DrPS("RetISR").ToString.ToDouble
|
|
RetIVA = DrPS("RetIVA").ToString.ToDouble
|
|
'If IvaPS = -1 Then 'IVA DE LA SUCURSAL
|
|
' IvaPS = GlobalDTSubProyectos(-1, gvr.FCDropDownList("DdlSubProyectoEdit").SelectedValue.ToEntero).FiltroPrimeroValor("IVA").ToDouble
|
|
'End If
|
|
|
|
' IEPSPSIVA = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0)
|
|
End If
|
|
|
|
|
|
|
|
CveSubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedValue.ToEntero
|
|
SubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedItem.Text
|
|
|
|
|
|
CveCultivoCuadroDetalle = gvr.FCDropDownList("DdlCultivosCuadroEdit").SelectedValue.ToEntero
|
|
Cuadro = ""
|
|
If CveCultivoCuadroDetalle > 0 Then
|
|
Cuadro = gvr.FCDropDownList("DdlCultivosCuadroEdit").SelectedItem.Text
|
|
End If
|
|
|
|
|
|
|
|
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
CveProyecto = -1
|
|
Proyecto = "Seleccione"
|
|
Else
|
|
CveProyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedValue.ToEntero
|
|
Proyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedItem.Text
|
|
End If
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then
|
|
Dim ObjCon As New ClsContratos
|
|
Dim CvePresupuesto As Integer = 0
|
|
Dim Autorizado As Double = 0
|
|
Dim Ejercido As Double = 0
|
|
If ObjCon.GetPresupuestos(-1, "-1", CveSubProyecto, 2, -1, UsuarioActual.CveEmpresa) Then
|
|
If ObjCon.DtResultados.Rows.Count > 0 Then
|
|
CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero
|
|
If CvePresupuesto > 0 Then
|
|
If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then
|
|
If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} And Importe > 0").Rows.Count > 0 Then
|
|
Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} And Importe > 0").Rows(0)("Importe").ToString.ToDouble
|
|
End If
|
|
End If
|
|
If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{DateTime.Now.Year - 1}".ToDate, Now, UsuarioActual.CveEmpresa, CveProyecto,
|
|
CveSubProyecto, UsuarioActual.CveUsuario, CveClasificacion) Then
|
|
If ObjCon.DtResultados.Rows.Count > 0 Then
|
|
Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDouble
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
ObjCon.Dispose()
|
|
|
|
If CvePresupuesto > 0 And Autorizado > 0 Then
|
|
Dim Diferencia As Double = (Ejercido + Total) - Autorizado
|
|
If Diferencia > 0 Then
|
|
Alert($"No hay presupuesto disponible en el subproyecto <b>{SubProyecto}</b> y la clasificación <b>{Clasificacion}</b> se excede por <b>{Diferencia.FormatoNumero}</b>", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
|
|
'Agarra el nuevo AF si se modifico o deja el pasado
|
|
CveActivoFijo = If(gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero > 0, gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero, HdnEditCveActivoFijo.Value.ToEntero)
|
|
Codigo = If(gvr.FCHiddenField("HdnCodigoAF").Value <> "-1", gvr.FCHiddenField("HdnCodigoAF").Value, HdnEditCodigo.Value)
|
|
|
|
HdnEditCveActivoFijo.Value = ""
|
|
HdnEditCodigo.Value = ""
|
|
|
|
Dim dr As DataRow() = DtDetalle.Select("CveOrdenCompraDetalle = " & gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero)
|
|
|
|
dr(0)("Cantidad") = Cantidad
|
|
dr(0)("CveUnidadMedida") = CveUnidad
|
|
dr(0)("UM") = UM
|
|
dr(0)("CveClasificacion") = CveClasificacion
|
|
dr(0)("Clasificacion") = Clasificacion
|
|
|
|
If isWithFamily() Then
|
|
dr(0)("CveSubFamilia") = CveClasificacion
|
|
dr(0)("SubFamilia") = Clasificacion
|
|
End If
|
|
|
|
dr(0)("CvePS") = CvePS
|
|
dr(0)("PS") = PS
|
|
dr(0)("Observacion") = Obs
|
|
|
|
dr(0)("CveSubProyecto") = CveSubProyecto
|
|
dr(0)("SubProyecto") = SubProyecto
|
|
dr(0)("CveProyecto") = CveProyecto
|
|
dr(0)("Proyecto") = Proyecto
|
|
dr(0)("Importe") = Importe
|
|
dr(0)("Descuento") = Descuento
|
|
dr(0)("Total") = Total
|
|
dr(0)("IEPSPS") = IEPSPS * Total
|
|
dr(0)("IEPSPSPorcentaje") = IEPSPS
|
|
dr(0)("IEPSPSIVA") = IEPSPSIVA * Total
|
|
dr(0)("IEPSPSIVAPorcentaje") = IEPSPSIVA
|
|
|
|
'If DdlIVA.SelectedValue.ToDouble = 1 Then dr(0)("IVA") = 0 Else dr(0)("IVA") = IvaPS * Total
|
|
dr(0)("IVAPorcentaje") = If(IvaPS = -1, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), 0)
|
|
Dim TotalGravado As Decimal = Total
|
|
If IEPSPSIVA > 0 Then TotalGravado = Total * (1 + IEPSPSIVA) 'grava para iva, el importe del IEPS
|
|
dr(0)("IVA") = Math.Round(dr(0)("IVAPorcentaje").ToString.ToDouble * TotalGravado, 2)
|
|
|
|
dr(0)("RetIVA") = RetIVA * Total
|
|
dr(0)("RetIVAPorcentaje") = RetIVA
|
|
dr(0)("RetISR") = RetISR * Total
|
|
dr(0)("RetISRPorcentaje") = RetISR
|
|
|
|
|
|
dr(0)("CveActivoFijo") = CveActivoFijo
|
|
dr(0)("CodigoAF") = Codigo
|
|
|
|
dr(0)("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle
|
|
dr(0)("Cuadro") = Cuadro
|
|
|
|
'si el tipodato viene de la BD, entonces sufrió una actualización
|
|
If dr(0)("TipoDato").ToString.ToEntero = 2 Then dr(0)("TipoDato") = 1
|
|
DtDetalle.AcceptChanges()
|
|
GvD.EditIndex = -1
|
|
|
|
CargaDatosDetalles()
|
|
|
|
' If UsuarioActual.Empresa.UsaAC Then UpdateAC(dr(0).Item("CvePresupuestoEgreso").ToString.ToEntero, totalanterior - dr(0).Item("Total").ToString.ToEntero, True)
|
|
End Sub
|
|
Protected Sub GvD_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvD.RowCancelingEdit
|
|
GvD.EditIndex = -1
|
|
CargaDatosDetalles()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region " DESHABILITAR "
|
|
Protected Sub DesHabilitar()
|
|
TxtFechaEstimadaEntrega.Enabled = False
|
|
|
|
TxtDescrip.Enabled = False
|
|
TxtFolioAdicional.Enabled = False
|
|
TxtJustificacion.Enabled = False
|
|
DdlPrioridad.Enabled = False
|
|
txtobsprioridad.Enabled = False
|
|
DdlMoneda.Enabled = False
|
|
TxtCant.Enabled = False
|
|
CboUnidadMedida.Enabled = False
|
|
DdlClasificacion.Enabled = False
|
|
DdlP2.Enabled = False
|
|
DdlP2.ddl.Enabled = False
|
|
TxtObsPS.Enabled = False
|
|
HplMaq.Enabled = False
|
|
LbAgregar.Enabled = False
|
|
If CveEstatusFinalError <= 0 Then CboE.Enabled = False
|
|
ChkCotizacion.Enabled = False
|
|
hplAgregarCotizacion.Visible = False
|
|
hplEnviarCorreo.Visible = False
|
|
BtnGuardar.Enabled = False
|
|
BtnCancelar.Enabled = False
|
|
DdlProyecto.Enabled = False
|
|
DdlSubProyecto.Enabled = False
|
|
txtPrecioUnitario.Enabled = False
|
|
gvCotizaciones.Enabled = False
|
|
DdlProveedorSucursal.Enabled = False
|
|
DdlProveedorContacto.Enabled = False
|
|
|
|
GvD.Columns(9).Visible = False
|
|
GvD.Columns(10).Visible = True
|
|
|
|
If Not (BtnCancelarPrevio.Enabled And (CveEstatus <> CveEstatusFinalError OrElse CveEstatus <> CveEstatusFinalOK OrElse UsuarioActual.TienePermisoProceso(148).ToEntero > 0)) Then
|
|
BtnCancelarPrevio.Enabled = False
|
|
End If
|
|
|
|
'PROVEEDOR
|
|
DdlProveedores.Enabled = False
|
|
DdlIVA.Enabled = False
|
|
ImgCambiaProv.Visible = False
|
|
UPProv.Update()
|
|
|
|
'DATOS DE VENTA
|
|
txtLugarEntrega.Enabled = False
|
|
TxtLugarEntregaDirecta.Enabled = False
|
|
ChkEntregaDirecta.Enabled = False
|
|
If UsuarioActual.CveUsuario = CveUsuario And Not (TieneVenta > 0 Or TieneCompraInv > 0) Then 'SI ES EL MISMO USUARIO QUE CREO LA OC PUEDE EDITAR CLIENTE Y VENDEDOR
|
|
ImgCambiaClienteVendedor.Visible = True
|
|
Else
|
|
Ddlcliente.Enabled = False
|
|
DdlVendedor.Enabled = False
|
|
End If
|
|
ChkPromocion.Enabled = False
|
|
TxtPromocion.ReadOnly = True
|
|
TxtGuia.ReadOnly = True
|
|
DdlUsoCFDI.Enabled = False
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "AMORNIZACION CONTABLE - A C"
|
|
|
|
|
|
#Region "ANTERIOR AC -- YA NO SE USA"
|
|
Private Sub CargaCombosPOA()
|
|
CargaFuenteFinanciamiento()
|
|
CargaTipoGasto()
|
|
CargaUnidadAdministrativa()
|
|
CargaClasificacionOG()
|
|
End Sub
|
|
Private Sub CargaFuenteFinanciamiento()
|
|
CboFuenteFinanciamiento.DataSource = GlobalDTAC_FuentesFinanciamiento(CveEmpresaActual)
|
|
CboFuenteFinanciamiento.DataBind()
|
|
CboFuenteFinanciamiento.Items.Insert(0, New ListItem("Todos", "-1"))
|
|
End Sub
|
|
|
|
Private Sub CargaTipoGasto()
|
|
CboTipoGasto.DataSource = GlobalDTAC_TipoGasto
|
|
CboTipoGasto.DataBind()
|
|
CboTipoGasto.Items.Insert(0, New ListItem("Todos", "-1"))
|
|
End Sub
|
|
|
|
Private Sub CargaUnidadAdministrativa()
|
|
CboUnidadAdministrativa.DataSource = GlobalDTAC_UnidadesAdministrativas(CveEmpresaActual)
|
|
CboUnidadAdministrativa.DataBind()
|
|
CboUnidadAdministrativa.Items.Insert(0, New ListItem("Todos", "-1"))
|
|
End Sub
|
|
|
|
Private Sub CargaClasificacionOG()
|
|
Dim Filtro As New StringBuilder
|
|
' Filtro.AppendFormat("Afectable= '{0}'", "Si")
|
|
CboClasificacionOG.DataSource = GlobalDTACClasificadorObjetoGasto(CveEmpresaActual).FiltraParametros("Afectable = 1 AND NOT Codigo like '1%' ", "CodigoClasificacion")
|
|
CboClasificacionOG.DataBind()
|
|
CboClasificacionOG.Items.Insert(0, New ListItem("Todos", "-1"))
|
|
End Sub
|
|
Protected Sub consultarAC_Click(sender As Object, e As EventArgs)
|
|
Dim filtro As New StringBuilder
|
|
If CboFuenteFinanciamiento.SelectedValue.ToEntero > 0 Then
|
|
filtro.AppendFormat("CveFuenteFinanciamiento= {0}", CboFuenteFinanciamiento.SelectedValue.ToString)
|
|
End If
|
|
|
|
If CboUnidadAdministrativa.SelectedValue.ToEntero > 0 Then
|
|
filtro.AppendFormat("{1} CveUnidadAdministrativa= {0}", CboUnidadAdministrativa.SelectedValue.ToString, If(filtro.Length > 0, "AND", ""))
|
|
End If
|
|
|
|
If CboTipoGasto.SelectedValue.ToEntero > 0 Then
|
|
filtro.AppendFormat("{1} CveTipoGasto= {0}", CboTipoGasto.SelectedValue.ToString, If(filtro.Length > 0, "AND", ""))
|
|
End If
|
|
|
|
If CboClasificacionOG.SelectedValue.ToEntero > 0 Then
|
|
filtro.AppendFormat("{1} CveClasificadorOG= {0}", CboClasificacionOG.SelectedValue.ToString, If(filtro.Length > 0, "AND", ""))
|
|
End If
|
|
|
|
GvAC.DataSource = DtAC.FiltraParametros(filtro.ToString)
|
|
GvAC.DataBind()
|
|
End Sub
|
|
Protected Sub SeleccionarPOA_Click(ByVal sender As Object, ByVal e As EventArgs)
|
|
Dim gvr As GridViewRow = CType(CType(sender, LinkButton).BindingContainer, GridViewRow)
|
|
Dim Clave As String = gvr.DataKey("CvePresupuestoEgreso")
|
|
Dim CuentaporEjercer = gvr.DataKey("IdCuentaPorEjercer")
|
|
Dim CuentaComprometido = gvr.DataKey("IdCuentaComprometido")
|
|
Dim Presupuesto As String = gvr.DataKey("Total")
|
|
|
|
If Presupuesto.ToEntero < TxtImporte.Text.ToEntero Then
|
|
Alert("El Presupuesto seleccionado no cubre el gasto. Favor de seleccionar otro.", TipoMensaje.MsgAdvertencia)
|
|
Else
|
|
LblCvePOA.Text = Clave.ToString
|
|
HdnCveCuentaPorEjercer.Value = CuentaporEjercer.ToString
|
|
HdnCveCuentaComprometido.Value = CuentaComprometido.ToString
|
|
LbAgregar.Enabled = True
|
|
UpPoaClave.Update()
|
|
UPPDetalle.Update()
|
|
Alert("Presupuesto Seleccionado correctamente!.", TipoMensaje.MsgInformacion)
|
|
End If
|
|
End Sub
|
|
Protected Sub GvAC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvAC.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
e.Row.Cells(0).Attributes.Add("onclick", "tb_remove();")
|
|
e.Row.Cells(1).Attributes.Add("onclick", "tb_remove();")
|
|
e.Row.Cells(2).Attributes.Add("onclick", "tb_remove();")
|
|
e.Row.Cells(3).Attributes.Add("onclick", "tb_remove();")
|
|
e.Row.Cells(4).Attributes.Add("onclick", "tb_remove();")
|
|
e.Row.Cells(5).Attributes.Add("onclick", "tb_remove();")
|
|
e.Row.Cells(6).Attributes.Add("onclick", "tb_remove();")
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
Private Sub ActivaAC()
|
|
|
|
'SI ES REQ Y YA ESTA AUTORIZADA NO MUESTRA PE
|
|
If TipoOC = "REQ" AndAlso CveEstatus = CveEstatusFinalOK Then
|
|
Exit Sub
|
|
End If
|
|
|
|
'VALIDA SI NECESITA AC
|
|
VerificaPresupuesto = If(CboE.SelectedValue.ToEntero = CveEstatusFinalOK, True, False)
|
|
VerificaPresupuesto = If(TipoOC = "OC", True, VerificaPresupuesto)
|
|
|
|
'Seccion Grid
|
|
If VerificaPresupuesto Then
|
|
TxtFecha.Attributes.Add("onblur", "CambiaFecha();")
|
|
CargaPresupuesto()
|
|
Else
|
|
TxtFecha.Attributes.Add("onblur", "")
|
|
BtnGuardar.Enabled = True
|
|
End If
|
|
|
|
MuestraPresupuestosEgresos()
|
|
|
|
End Sub
|
|
Private Sub CargaPresupuesto()
|
|
Dim AC As New ClsAC
|
|
Dim Ejercicio = If(IsDate(TxtFecha.Text), Year(TxtFecha.Text.ToDate), UsuarioActual.Empresa.EjercicioActual)
|
|
|
|
If AC.GetPresupuestoEgresos(-1, True, Ejercicio, CveEmpresaActual, True) Then
|
|
DtPresupuestos = AC.DtResultados.Copy
|
|
Else
|
|
Alert("Ocurrio un error al cargar los Presupuestos. Por favor vuelva a cargar la página", TipoMensaje.MsgError)
|
|
End If
|
|
AC.Dispose()
|
|
|
|
EjercicioAC = Ejercicio
|
|
CargaDatosDetalles()
|
|
UpPresupuestosAC.Update()
|
|
End Sub
|
|
Private Sub MuestraPresupuestosEgresos()
|
|
|
|
Dim Width = GvD.Width
|
|
Dim Width2 = DivConceptosContenido.Style("Width")
|
|
|
|
|
|
'Seccion Grid
|
|
If VerificaPresupuesto Then
|
|
GvD.Width = 1750
|
|
GvD.Columns(12).Visible = True
|
|
GvD.Columns(13).Visible = True
|
|
GvD.Columns(14).Visible = True
|
|
GvD.Columns(15).Visible = True
|
|
GvD.Columns(16).Visible = True
|
|
|
|
'Panel General
|
|
UpPresupuestosAC.Visible = True
|
|
DdlACGeneral1.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveProgramaOperativo", "ProgramaOperativo"})
|
|
DdlACGeneral1.DataBind()
|
|
DdlACGeneral2.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveUnidadAdministrativa", "UnidadAdministrativa"})
|
|
DdlACGeneral2.DataBind()
|
|
DdlACGeneral3.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveFuenteFinanciamiento", "FuenteFinanciamiento"})
|
|
DdlACGeneral3.DataBind()
|
|
DdlACGeneral4.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveTipoGasto", "TipoGasto"})
|
|
DdlACGeneral4.DataBind()
|
|
'carga los que no sean de nomina
|
|
DdlACGeneral5.DataSource = DtPresupuestos.FiltraParametros("NOT CodigoCOG like '1%'", DistinctColumns:={"CveClasificacion", "CodigoClasificacion"}, Orderby:="CodigoClasificacion")
|
|
DdlACGeneral5.DataBind()
|
|
|
|
UpPresupuestosAC.Update()
|
|
|
|
If TipoOC = "REQ" Then
|
|
CalculaSaldoACGeneral()
|
|
Else
|
|
RegistraScript("$get('DivPresupuestoEgresosGeneral').style.display = 'none';")
|
|
BtnVerPE.Visible = True
|
|
End If
|
|
|
|
Else
|
|
'GvD.Width = Width.ToEntero
|
|
GvD.Columns(12).Visible = False
|
|
GvD.Columns(13).Visible = False
|
|
GvD.Columns(14).Visible = False
|
|
GvD.Columns(15).Visible = False
|
|
GvD.Columns(16).Visible = False
|
|
|
|
UpPresupuestosAC.Visible = False
|
|
End If
|
|
|
|
'CargaDatosDetalles()
|
|
UPPDetalle.Update()
|
|
UPPTab.Update()
|
|
|
|
ConservaAC()
|
|
CompruebaAgregar()
|
|
|
|
End Sub
|
|
|
|
|
|
#Region " CAMBIA EJERICIO AC "
|
|
Protected Sub BtnCambiaFecha_Click(sender As Object, e As EventArgs)
|
|
CambiaEjercicioAC()
|
|
End Sub
|
|
Private Sub CambiaEjercicioAC(Optional CargaTodo As Boolean = True)
|
|
Dim Ejercicio = If(IsDate(TxtFecha.Text), Year(TxtFecha.Text.ToDate), UsuarioActual.Empresa.EjercicioActual)
|
|
|
|
If Ejercicio = EjercicioAC Then
|
|
Exit Sub
|
|
End If
|
|
|
|
If Ejercicio <> EjercicioAC Then
|
|
Dim AC As New ClsAC
|
|
If AC.GetPresupuestoEgresos(-1, True, Ejercicio, CveEmpresaActual, True) Then
|
|
DtPresupuestos = AC.DtResultados.Copy
|
|
Else
|
|
Alert("Ocurrio un error al cargar los Presupuestos. Por favor vuelva a cargar la página", TipoMensaje.MsgError)
|
|
End If
|
|
AC.Dispose()
|
|
|
|
EjercicioAC = Ejercicio
|
|
|
|
'CAMBIA LOS COMBOS DE TODOS LOS DETALLES DEL GRID
|
|
For Each gvr As GridViewRow In GvD.Rows
|
|
gvr.FCDropDownList("DdlAC1").SelectedValue = DdlACGeneral1.SelectedValue
|
|
gvr.FCDropDownList("DdlAC2").SelectedValue = DdlACGeneral2.SelectedValue
|
|
gvr.FCDropDownList("DdlAC3").SelectedValue = DdlACGeneral3.SelectedValue
|
|
gvr.FCDropDownList("DdlAC4").SelectedValue = DdlACGeneral4.SelectedValue
|
|
gvr.FCDropDownList("DdlAC5").SelectedValue = DdlACGeneral5.SelectedValue
|
|
Next
|
|
|
|
MuestraPresupuestosEgresos()
|
|
|
|
End If
|
|
|
|
UPPDetalle.Update()
|
|
UpPresupuestosAC.Update()
|
|
End Sub
|
|
#End Region
|
|
|
|
Protected Sub InfoPOA(sender As Object, e As EventArgs)
|
|
Dim AC As New ClsAC
|
|
Dim cvepe As String = CType(sender, LinkButton).Text.ToString
|
|
Dim filtro As New StringBuilder
|
|
Dim datos As New StringBuilder
|
|
|
|
filtro.AppendFormat("CvePresupuestoEgreso = {0}", cvepe)
|
|
If AC.GetPresupuestoEgresos(cvepe.ToEntero, True, -1, CveEmpresaActual) Then
|
|
For Each dr As DataRow In AC.DtResultados.FiltraParametros(filtro.ToString).Rows
|
|
datos.AppendFormat("Proyecto = {0} {1}", dr("ProgramaOperativo").ToString, vbCr)
|
|
datos.AppendFormat("Fuente Financiamiento = {0} {1}", dr("FuenteFinanciamiento").ToString, vbCr)
|
|
datos.AppendFormat("Unidad Administrativa = {0} {1}", dr("UnidadAdministrativa").ToString, vbCr)
|
|
datos.AppendFormat("Tipo de Gasto = {0} {1}", dr("TipoGasto").ToString, vbCr)
|
|
datos.AppendFormat("Clasificador del Objeto de Gasto = {0} {1}", dr("Clasificacion").ToString, vbCr)
|
|
Next
|
|
CType(sender, LinkButton).ToolTip = datos.ToString
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub ConservaAC()
|
|
'Guarda valores AC en TmpDT
|
|
Dim Index = 0
|
|
For Each gvr As GridViewRow In GvD.Rows
|
|
DtDetalle.Rows(Index)("CveProgramaOperativo") = gvr.FCDropDownList("DdlAC1").SelectedValue.ToEntero
|
|
DtDetalle.Rows(Index)("CveUnidadAdministrativa") = gvr.FCDropDownList("DdlAC2").SelectedValue.ToEntero
|
|
DtDetalle.Rows(Index)("CveFuenteFinanciamiento") = gvr.FCDropDownList("DdlAC3").SelectedValue.ToEntero
|
|
DtDetalle.Rows(Index)("CveTipoGasto") = gvr.FCDropDownList("DdlAC4").SelectedValue.ToEntero
|
|
DtDetalle.Rows(Index)("CveClasificacionOG") = gvr.FCDropDownList("DdlAC5").SelectedValue.ToEntero
|
|
Index += 1
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub ConservaACDetalle(Gvr As GridViewRow)
|
|
'Guarda valores AC en TmpDT
|
|
DtDetalle.Rows(Gvr.RowIndex)("CveProgramaOperativo") = Gvr.FCDropDownList("DdlAC1").SelectedValue.ToEntero
|
|
DtDetalle.Rows(Gvr.RowIndex)("CveUnidadAdministrativa") = Gvr.FCDropDownList("DdlAC2").SelectedValue.ToEntero
|
|
DtDetalle.Rows(Gvr.RowIndex)("CveFuenteFinanciamiento") = Gvr.FCDropDownList("DdlAC3").SelectedValue.ToEntero
|
|
DtDetalle.Rows(Gvr.RowIndex)("CveTipoGasto") = Gvr.FCDropDownList("DdlAC4").SelectedValue.ToEntero
|
|
DtDetalle.Rows(Gvr.RowIndex)("CveClasificacionOG") = Gvr.FCDropDownList("DdlAC5").SelectedValue.ToEntero
|
|
End Sub
|
|
|
|
Protected Sub CompruebaSaldoAC(sender As Object, e As EventArgs)
|
|
ConservaACDetalle(CType(CType(sender, DropDownList).NamingContainer, GridViewRow))
|
|
CompruebaAgregar()
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
End Sub
|
|
Protected Sub CambiaACGeneral(sender As Object, e As EventArgs)
|
|
'If ChkACGeneral.Checked Then
|
|
|
|
'CAMBIA LOS COMBOS DE TODOS LOS DETALLES DEL GRID
|
|
For Each gvr As GridViewRow In GvD.Rows
|
|
gvr.FCDropDownList("DdlAC1").SelectedValue = DdlACGeneral1.SelectedValue
|
|
gvr.FCDropDownList("DdlAC2").SelectedValue = DdlACGeneral2.SelectedValue
|
|
gvr.FCDropDownList("DdlAC3").SelectedValue = DdlACGeneral3.SelectedValue
|
|
gvr.FCDropDownList("DdlAC4").SelectedValue = DdlACGeneral4.SelectedValue
|
|
gvr.FCDropDownList("DdlAC5").SelectedValue = DdlACGeneral5.SelectedValue
|
|
Next
|
|
|
|
'REESCRIBE LOS VALORES NUEVOS EN DT
|
|
ConservaAC()
|
|
|
|
CompruebaAgregar()
|
|
' UpPS.Update()
|
|
|
|
CalculaSaldoACGeneral()
|
|
|
|
' End If
|
|
End Sub
|
|
Private Sub CalculaSaldoACGeneral()
|
|
Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa)
|
|
Dim DtPresupuestosTemp = DtPresupuestos.FiltraParametros(String.Format("CveProgramaOperativo = {0} and CveUnidadAdministrativa = {1} and CveFuenteFinanciamiento = {2} and CveTipoGasto= {3} and CveClasificacion = {4}", DdlACGeneral1.SelectedValue.ToString, DdlACGeneral2.SelectedValue.ToString, DdlACGeneral3.SelectedValue.ToString, DdlACGeneral4.SelectedValue.ToString, DdlACGeneral5.SelectedValue.ToString))
|
|
If DtPresupuestosTemp IsNot Nothing AndAlso DtPresupuestosTemp.Rows.Count > 0 Then
|
|
LbACGeneralSaldo.Text = ContPaq.GetSaldoCuenta(DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString.ToEntero, 0, TxtFecha.Text.ToDate.Year).ToString.FormatoNumero
|
|
Else
|
|
LbACGeneralSaldo.Text = "0.00"
|
|
End If
|
|
ContPaq.Dispose()
|
|
End Sub
|
|
Private Sub CompruebaAgregar()
|
|
|
|
If GvD.Rows.Count = 0 Then Exit Sub
|
|
|
|
If UsuarioActual.Empresa.UsaAC And VerificaPresupuesto Then
|
|
|
|
Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa)
|
|
Dim disponible As Double
|
|
Dim ErrorPresupuesto = False
|
|
|
|
Dim Ddl1 As DropDownList
|
|
Dim Ddl2 As DropDownList
|
|
Dim Ddl3 As DropDownList
|
|
Dim Ddl4 As DropDownList
|
|
Dim Ddl5 As DropDownList
|
|
Dim Total As Double
|
|
|
|
Dim DtPresupuestosTemp As DataTable
|
|
Dim Filtro As New StringBuilder
|
|
|
|
For Each grid As GridViewRow In GvD.Rows
|
|
Ddl1 = grid.FCDropDownList("DdlAC1")
|
|
Ddl2 = grid.FCDropDownList("DdlAC2")
|
|
Ddl3 = grid.FCDropDownList("DdlAC3")
|
|
Ddl4 = grid.FCDropDownList("DdlAC4")
|
|
Ddl5 = grid.FCDropDownList("DdlAC5")
|
|
Total = grid.FCLiteral("LtlTotal").Text.ToDouble
|
|
|
|
'OBTENEMOS EL REGISTRO DEL PE SELECCIONADO
|
|
Filtro.AppendFormat("CveProgramaOperativo = {0} and CveUnidadAdministrativa = {1} and CveFuenteFinanciamiento = {2} and CveTipoGasto= {3} and CveClasificacion = {4}", If(Ddl1.SelectedValue.ToString = "", "-1", Ddl1.SelectedValue.ToString), If(Ddl2.SelectedValue.ToString = "", "-1", Ddl2.SelectedValue.ToString), If(Ddl3.SelectedValue.ToString = "", "-1", Ddl3.SelectedValue.ToString), If(Ddl4.SelectedValue.ToString = "", "-1", Ddl4.SelectedValue.ToString), If(Ddl5.SelectedValue.ToString = "", "-1", Ddl5.SelectedValue.ToString))
|
|
DtPresupuestosTemp = DtPresupuestos.FiltraParametros(Filtro.ToString)
|
|
Filtro.Clear()
|
|
|
|
If DtPresupuestosTemp.Rows.Count > 0 Then
|
|
disponible = ContPaq.GetSaldoCuenta(DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString.ToEntero, 0, TxtFecha.Text.ToDate.Year)
|
|
|
|
If disponible > 0 AndAlso disponible > Total Then
|
|
'Alert("Si hay dinero: ")
|
|
|
|
DtDetalle.Rows(grid.RowIndex)("CvePresupuestoEgreso") = DtPresupuestosTemp.Rows(0)("CvePresupuestoEgreso").ToString
|
|
DtDetalle.Rows(grid.RowIndex)("IdCuentaComprometido") = DtPresupuestosTemp.Rows(0)("IdCuentaComprometido").ToString
|
|
DtDetalle.Rows(grid.RowIndex)("IdCuentaPorEjercer") = DtPresupuestosTemp.Rows(0)("IdCuentaPorEjercer").ToString
|
|
|
|
grid.Cells(8).BackColor = Drawing.Color.Green
|
|
Else
|
|
Alert("No hay presupuesto asignado", TipoMensaje.MsgAdvertencia)
|
|
grid.Cells(8).BackColor = Drawing.Color.Red
|
|
ErrorPresupuesto = True
|
|
Exit For
|
|
End If
|
|
|
|
DtDetalle.Rows(grid.RowIndex)("CvePresupuestoEgreso") = DtPresupuestosTemp.Rows(0)("CvePresupuestoEgreso").ToString
|
|
|
|
Else
|
|
DtDetalle.Rows(grid.RowIndex)("CvePresupuestoEgreso") = "-1"
|
|
Alert("No hay presupuesto asignado", TipoMensaje.MsgAdvertencia)
|
|
grid.Cells(8).BackColor = Drawing.Color.Red
|
|
ErrorPresupuesto = True
|
|
Exit For
|
|
End If
|
|
|
|
Next
|
|
|
|
If ErrorPresupuesto Then
|
|
BtnGuardar.Enabled = False
|
|
Else
|
|
BtnGuardar.Enabled = True
|
|
End If
|
|
|
|
uppOpciones.Update()
|
|
UPPDetalle.Update()
|
|
ContPaq.Dispose()
|
|
|
|
End If
|
|
|
|
End Sub
|
|
Private Sub AgregaAC()
|
|
Dim dr As DataRow
|
|
For Each gvr As GridViewRow In GvD.Rows
|
|
dr = DtDetalle.Rows(gvr.RowIndex)
|
|
|
|
dr("CveProgramaOperativo") = gvr.FCDropDownList("DdlAC1").SelectedValue.ToEntero
|
|
dr("CveUnidadAdministrativa") = gvr.FCDropDownList("DdlAC2").SelectedValue.ToEntero
|
|
dr("CveFuenteFinanciamiento") = gvr.FCDropDownList("DdlAC3").SelectedValue.ToEntero
|
|
dr("CveTipoGasto") = gvr.FCDropDownList("DdlAC4").SelectedValue.ToEntero
|
|
dr("CveClasificacionOG") = gvr.FCDropDownList("DdlAC5").SelectedValue.ToEntero
|
|
Next
|
|
|
|
DtDetalle.AcceptChanges()
|
|
End Sub
|
|
|
|
Protected Sub UpdateAC(CvePresupuestoEgreso As Integer, Importe As Integer, TipoMovimiento As Boolean)
|
|
'' True = suma ||| False = resta
|
|
Dim indice As Integer = DtAC.Rows.IndexOf(DtAC.Select("CvePresupuestoEgreso = " + CvePresupuestoEgreso.ToString).FirstOrDefault())
|
|
Dim Total As Integer = DtAC(indice).Item("Total").ToString.ToEntero
|
|
|
|
If TipoMovimiento Then
|
|
DtAC(indice).Item("Total") = Math.Round((Total + Importe), 2)
|
|
Else
|
|
DtAC(indice).Item("Total") = Math.Round((Total - Importe), 2)
|
|
End If
|
|
|
|
GvAC.DataSource = DtAC
|
|
GvAC.DataBind()
|
|
UpdatePanel2.Update()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "COTIZACIONES"
|
|
Protected Sub ChkCotizacion_CheckedChanged(sender As Object, e As EventArgs) Handles ChkCotizacion.CheckedChanged
|
|
VerificaSiRequiereCotizacion()
|
|
End Sub
|
|
|
|
Protected Sub VerificaCotizacionesGanadoras()
|
|
'If CveEstatusFinalOK = CboE.SelectedValue.ToEntero AndAlso NumCotizacionesGanadoras <> GvD.Rows.Count Then
|
|
' BtnGuardar.Enabled = False
|
|
' uppOpciones.Update()
|
|
'End If
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(556) = "1" AndAlso ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then
|
|
CboE.Enabled = False
|
|
LblMsgEstatus.Visible = True
|
|
LblMsgEstatus.Text = "Cotización requerida para avanzar"
|
|
Else
|
|
CboE.Enabled = True
|
|
LblMsgEstatus.Visible = False
|
|
LblMsgEstatus.Text = ""
|
|
End If
|
|
|
|
uppEstatus.Update()
|
|
End Sub
|
|
Protected Sub gvCotizaciones_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles gvCotizaciones.RowCommand
|
|
|
|
''Registro el proveedor seleccionado en la orden de compra
|
|
' Sin captura
|
|
If e.CommandName = "RegProv" Then
|
|
|
|
If e.CommandArgument.ToString <> "" Then
|
|
Dim OC As New ClsOC
|
|
OC.IniciaTransacSQL()
|
|
Dim TieneError = False
|
|
Dim Cve As String() = e.CommandArgument.ToString.Split("|"c)
|
|
|
|
If OC.UpdateCotizacionDetalleGanadora(Cve(0).ToEntero, If(Cve(1).ToString.ToUpper = "TRUE", False, True)) > 0 Then
|
|
|
|
Dim index = CType(DirectCast(e.CommandSource, Button).NamingContainer, GridViewRow).RowIndex
|
|
Dim dr = DtDetalle.Rows(index)
|
|
|
|
If Not Cve(1).ToString.ToUpper = "TRUE" Then
|
|
|
|
Dim Importe = DirectCast(e.CommandSource, Button).Text.ToDecimal
|
|
Dim Total = Importe * dr("Cantidad").ToString.ToDecimal
|
|
|
|
dr("Importe") = DirectCast(e.CommandSource, Button).Text
|
|
dr("Total") = dr("Importe").ToString.ToDecimal * dr("Cantidad").ToString.ToDecimal
|
|
|
|
dr("IVA") = dr("IVAPorcentaje").ToString.ToDecimal * Total
|
|
dr("RetIVA") = dr("RetIVAPorcentaje").ToString.ToDecimal * Total
|
|
dr("RetISR") = dr("RetISRPorcentaje").ToString.ToDecimal * Total
|
|
dr("IEPSPS") = dr("IEPSPSPorcentaje").ToString.ToDecimal * Total
|
|
dr("IEPSPSIVA") = dr("IEPSPSIVAPorcentaje").ToString.ToDecimal * Total
|
|
|
|
dr("CveProveedor") = Cve(2).ToString.ToEntero
|
|
Else
|
|
dr("Importe") = "0"
|
|
dr("Total") = "0"
|
|
dr("CveProveedor") = Cve(2).ToString.ToEntero
|
|
End If
|
|
|
|
'ACTUALIZO DATO EN DB
|
|
If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero,
|
|
dr("Observacion").ToString.ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, dr("CvePresupuestoEgreso").ToString.ToEntero, dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then
|
|
TieneError = True
|
|
End If
|
|
|
|
CargaDatosDetalles()
|
|
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
OC.Commit()
|
|
Else
|
|
OC.RollBack()
|
|
Alert("Ocurrió un error al seleccionar ganador en la cotización. Por favor vuelva a intentar.", TipoMensaje.MsgError)
|
|
End If
|
|
OC.Dispose()
|
|
CargaCotizaciones(CveOrdenCompra)
|
|
End If
|
|
End If
|
|
|
|
|
|
End Sub
|
|
Protected Sub gvCotizaciones_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvCotizaciones.RowDataBound
|
|
|
|
'Pongo el nombre del proveedor en el encabezado
|
|
If e.Row.RowType = DataControlRowType.Header Then
|
|
|
|
For i As Integer = 1 To NumCotizaciones
|
|
e.Row.Cells(i + 2).Text = String.Format("<a class=' Texto thickbox col-md-12 truncate' style='width:200px;' title='{2}' data-toggle='tooltip' href='/OC/RepCotizacionesDetalle.aspx?CveOrdenCompra={0}&CveCotizacion={1}&TB_iframe=true&height=600&width=800;'>{2}</a>", CveOrdenCompra, DtCotizaciones.Rows(i - 1)("CveCotizacion"), If(Not IsDBNull(DtCotizaciones.Rows(i - 1)("CveProveedor")), DtCotizaciones.Rows(i - 1)("RazonSocial"), DtCotizaciones.Rows(i - 1)("Colectiva")), If(Not IsDBNull(DtCotizaciones.Rows(i - 1)("CveProveedor")), DtCotizaciones.Rows(i - 1)("RazonSocial"), DtCotizaciones.Rows(i - 1)("Colectiva")))
|
|
e.Row.Cells(i + 2).Attributes.Add("style", "text-align:center!important")
|
|
'<button onclick='showDivEC({1});' class='btn btn-circle btn-sm red'><i class='fa fa-close'><i/></button>",
|
|
Next
|
|
End If
|
|
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
|
|
If e.Row.DataKey("Descripcion").ToString = "Total" Then
|
|
e.Row.Cells(2).Attributes.Add("style", "text-align:right")
|
|
End If
|
|
|
|
|
|
|
|
If e.Row.DBCampo("CveOrdenCompraDetalle") = "" Then
|
|
'si es el totalizador
|
|
e.Row.CssClass = "SubTotales"
|
|
For i As Integer = 1 To NumCotizaciones
|
|
Dim Btn As Button = e.Row.FCButton(String.Format("Btn{0}", i))
|
|
Btn.Text = e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble.ToString("N2")
|
|
Btn.Visible = True
|
|
'Btn.Enabled = True
|
|
'Btn.OnClientClick = "return false;"
|
|
e.Row.Cells(2 + i).Text = String.Format("{0}", e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble.ToString("N2"))
|
|
Next
|
|
Else
|
|
Dim CellMasBarato As Integer = -1
|
|
Dim Monto As Double = -1
|
|
|
|
For i As Integer = 1 To NumCotizaciones
|
|
|
|
Dim Btn As Button = e.Row.FCButton(String.Format("Btn{0}", i))
|
|
Btn.Text = e.Row.DBCampo("PU" & i).ToDouble.ToString("N2")
|
|
Btn.CommandArgument = String.Format("{0}|{1}|{2}", e.Row.DBCampo(String.Format("CveCotizacionDetalle{0}", i)), False, DtCotizaciones.Rows(i - 1)("CveProveedor").ToString)
|
|
Btn.Style.Add("cursor:", "pointer")
|
|
|
|
If e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble > 0 Then
|
|
If Monto.ToString = "-1" Then
|
|
Monto = e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble
|
|
CellMasBarato = i
|
|
End If
|
|
If e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble < Monto Then
|
|
CellMasBarato = i
|
|
Monto = e.Row.DBCampo(String.Format("PU{0}", i)).ToDouble
|
|
End If
|
|
Else
|
|
Btn.Text = "Sin captura"
|
|
Btn.Attributes.Add("onclick", "return false;")
|
|
|
|
'Btn.Enabled = True
|
|
'Btn.Visible = False
|
|
End If
|
|
Next
|
|
|
|
'Coloreo el más barato
|
|
If CellMasBarato > 0 Then e.Row.Cells(CellMasBarato + 2).BackColor = Drawing.Color.LightBlue
|
|
|
|
|
|
'COLOREA GANADORES
|
|
If e.Row.DBCampo("CveCotizacionDetalleGanadora").ToEntero > 0 Then
|
|
NumCotizacionesGanadoras = NumCotizacionesGanadoras + 1
|
|
TotalCotizacionesGanadoras += e.Row.DBCampo("TotalCotizacionDetalleGanadora").ToDecimal
|
|
|
|
Dim i As Integer = 1
|
|
For Each dr As DataRow In DtCotizaciones.Rows
|
|
Dim Btn As Button = e.Row.FCButton("Btn" & i)
|
|
' Btn.Text = e.Row.DBCampo("PU" & i).ToDouble.ToString("N2")
|
|
|
|
|
|
If e.Row.DBCampo("EsGanadora" & i).ToString = "True" Then
|
|
e.Row.Cells(i + 2).BackColor = Drawing.Color.LightGreen
|
|
Btn.CommandArgument = String.Format("{0}|{1}|{2}", e.Row.DBCampo(String.Format("CveCotizacionDetalle{0}", i)), True, DtCotizaciones.Rows(i - 1)("CveProveedor").ToString)
|
|
'Btn.OnClientClick = "return false;"
|
|
'Btn.Enabled = True
|
|
End If
|
|
i = i + 1
|
|
Next
|
|
End If
|
|
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
Private Sub BtnEliminarCotizacion_Click(sender As Object, e As EventArgs) Handles BtnEliminarCotizacion.Click
|
|
Dim Body = GeneraCorreoEliminarCotizacion(HdnCveCotizacion.Value.ToEntero, TxtMotivoEliminacion.Text.Trim)
|
|
RegistraScript("hideDivEC();")
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " ACTIVOS FIJOS "
|
|
Protected Sub GVAF_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVAF.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
If e.Row.RowIndex = 0 Then
|
|
e.Row.Cells(0).Width = Unit.Pixel(55)
|
|
e.Row.Cells(1).Width = Unit.Pixel(350)
|
|
e.Row.Cells(2).Width = Unit.Pixel(80)
|
|
'e.Row.Cells(3).Width = Unit.Pixel(200)
|
|
'e.Row.Cells(4).Width = Unit.Pixel(80)
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub LnkAFSeleccionar_Click(sender As Object, e As EventArgs)
|
|
Dim gvr As GridViewRow = CType(CType(sender, LinkButton).BindingContainer, GridViewRow)
|
|
HdnAFCveActivoFijo.Value = gvr.DataKey("CveActivoFijo")
|
|
HdnAFCodigo.Value = gvr.DataKey("Codigo")
|
|
CargaAF()
|
|
GVAF.SelectedIndex = gvr.RowIndex
|
|
'carga las últimas compras
|
|
BtnAFAceptar.Visible = True
|
|
CargaComprasActivoFijo(gvr.DataKey("CveActivoFijo").ToEntero)
|
|
|
|
End Sub
|
|
|
|
Protected Sub BtnBuscarAF_Click(sender As Object, e As EventArgs) Handles BtnBuscarAF.Click
|
|
GVAF.SelectedIndex = -1
|
|
HdnAFCveActivoFijo.Value = ""
|
|
HdnAFCodigo.Value = ""
|
|
GVAFC.Visible = False
|
|
GVAFC.DataBind()
|
|
BtnAFAceptar.Visible = False
|
|
CargaAF()
|
|
|
|
End Sub
|
|
|
|
Private Sub CargaComprasActivoFijo(pCveActivoFijo As Integer)
|
|
Dim ObjActivoFijo As New ClsAF()
|
|
If ObjActivoFijo.GetActivosFijosCompras(pCveActivoFijo, DdlClasificacion.SelectedValue.ToEntero) Then
|
|
GVAFC.DataSource = ObjActivoFijo.DtResultados
|
|
Else
|
|
GVAFC.DataSource = Nothing
|
|
End If
|
|
ObjActivoFijo.Dispose()
|
|
GVAFC.DataBind()
|
|
GVAFC.Visible = True
|
|
End Sub
|
|
|
|
Private Sub CargaAF()
|
|
Dim Codigo As String = "-1"
|
|
Dim Descripcion As String = "-1"
|
|
Dim CveTipoActivoFijo As Integer = -1
|
|
Dim CveSubTipoActivoFijo As Integer = -1
|
|
|
|
If TxtAFCodigo.Text.Trim <> String.Empty Then Codigo = TxtAFCodigo.Text.Trim
|
|
If TxtAFDescripcion.Text.Trim <> String.Empty Then Descripcion = TxtAFDescripcion.Text.Trim
|
|
If DdlAFTipoActivoFijo.SelectedValue <> String.Empty Then CveTipoActivoFijo = DdlAFTipoActivoFijo.SelectedValue.ToEntero
|
|
If DdlAFSubTipoActivoFijo.SelectedValue <> String.Empty Then CveSubTipoActivoFijo = DdlAFSubTipoActivoFijo.SelectedValue.ToEntero
|
|
|
|
Dim ObjAF As New ClsAF()
|
|
If ObjAF.GetActivosFijos(-1, CveEmpresaActual, Codigo, Descripcion, CveTipoActivoFijo, CveSubTipoActivoFijo, "-1", -1, -1, -1, -1, -1, "", -1, UsuarioActual.CveEmpresa) Then
|
|
If ObjAF.DtResultados.Rows.Count > 0 Then
|
|
|
|
GVAF.DataSource = ObjAF.DtResultados
|
|
Else
|
|
GVAF.DataSource = Nothing
|
|
Alert("No se encontraron registros con los parámetros solicitados.", Extensiones.TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
GVAF.DataBind()
|
|
End If
|
|
|
|
ObjAF.Dispose()
|
|
End Sub
|
|
|
|
Private Sub CargaTipoActivoFijo()
|
|
DdlAFTipoActivoFijo.Items.Clear()
|
|
DdlAFTipoActivoFijo.DataSource = GlobalDTTipoActivoFijo(CveEmpresaActual) '.FiltraParametros("CveEmpresa = " & CveEmpresaActual)
|
|
DdlAFTipoActivoFijo.DataBind()
|
|
DdlAFTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
End Sub
|
|
Private Sub CargaSubTipoActivoFijo()
|
|
DdlAFSubTipoActivoFijo.Items.Clear()
|
|
DdlAFSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo(CveEmpresaActual).FiltraParametros("CveTipoActivoFijo = '" & DdlAFTipoActivoFijo.SelectedValue & "'")
|
|
'DdlSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo.FiltraParametros("CveEmpresa = " & CveEmpresaActual & " AND CveTipoActivoFijo = '" & DdlTipoActivoFijo.SelectedValue & "'")
|
|
DdlAFSubTipoActivoFijo.DataBind()
|
|
DdlAFSubTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
|
|
End Sub
|
|
|
|
Protected Sub DdlAFTipoActivoFijo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlAFTipoActivoFijo.SelectedIndexChanged
|
|
CargaSubTipoActivoFijo()
|
|
End Sub
|
|
|
|
Protected Sub GVAFC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVAFC.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
If e.Row.RowIndex = 0 Then
|
|
e.Row.CssClass = "Totales"
|
|
ElseIf e.Row.FCLiteral("LtlFecha").Text = String.Empty Then
|
|
e.Row.CssClass = "SubTotales"
|
|
End If
|
|
|
|
End If
|
|
End Sub
|
|
Protected Sub BtnAFAceptar_Click(sender As Object, e As EventArgs) Handles BtnAFAceptar.Click
|
|
If HdnEditCveActivoFijo.Value.Trim = "" Then
|
|
LblCodigo.Text = HdnAFCodigo.Value
|
|
HdnCveActivoFijo.Value = HdnAFCveActivoFijo.Value
|
|
UPPDetalle.Update()
|
|
HdnAFCodigo.Value = ""
|
|
HdnAFCveActivoFijo.Value = ""
|
|
GVAF.DataBind()
|
|
GVAFC.Visible = False
|
|
BtnAFAceptar.Visible = False
|
|
RegistraScript("$get('divActivosFijos').style.display='none';")
|
|
Else
|
|
'LblCodigo.Text = HdnAFCodigo.Value
|
|
GvD.Rows(GvD.EditIndex).FCLabel("LblEditCodigo").Text = HdnAFCodigo.Value
|
|
HdnEditCodigo.Value = HdnAFCodigo.Value
|
|
HdnEditCveActivoFijo.Value = HdnAFCveActivoFijo.Value
|
|
'UPPDetalle.Update()
|
|
'HdnAFCodigo.Value = ""
|
|
'HdnAFCveActivoFijo.Value = ""
|
|
GVAF.DataBind()
|
|
GVAFC.Visible = False
|
|
BtnAFAceptar.Visible = False
|
|
RegistraScript("$get('divActivosFijos').style.display='none';")
|
|
UPPDetalle.Update()
|
|
End If
|
|
End Sub
|
|
Protected Sub BtnVinculaAF_Click(sender As Object, e As EventArgs)
|
|
If HdnCveActivoFijo.Value.ToEntero = -2 Then
|
|
If LblCodigo.Text.Trim = "" Then Exit Sub
|
|
Dim ObjAF As New ClsAF
|
|
|
|
If ObjAF.GetActivosFijos(-1, CveEmpresaActual, LblCodigo.Text, "-1", -1, -1, "-1", -1, -1, -1, -1, -1, "", -1, UsuarioActual.CveEmpresa) Then
|
|
If ObjAF.DtResultados.Rows.Count = 1 Then
|
|
HdnCodigoAF.Value = ObjAF.DtResultados.Rows(0)("Codigo").ToString
|
|
HdnCveActivoFijo.Value = ObjAF.DtResultados.Rows(0)("CveActivoFijo").ToString
|
|
Else
|
|
HdnCodigoAF.Value = "-1"
|
|
HdnCveActivoFijo.Value = "-1"
|
|
LblCodigo.Text = ""
|
|
Alert("No se encontró un Activo Fijo con el código proporcionado.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
End If
|
|
|
|
ObjAF.Dispose()
|
|
Else
|
|
LblCodigo.Text = HdnCodigoAF.Value
|
|
End If
|
|
|
|
UPPDetalle.Update()
|
|
End Sub
|
|
|
|
Protected Sub BtnVinculaAFEdit_Click(sender As Object, e As EventArgs)
|
|
Dim ObjAF As New ClsAF
|
|
|
|
If ObjAF.GetActivosFijos(-1, CveEmpresaActual, HdnCodAFEdit.Value, "-1", -1, -1, "-1", -1, -1, -1, -1, -1, "", UsuarioActual.CveEmpresa) Then
|
|
If ObjAF.DtResultados.Rows.Count = 1 Then
|
|
RegistraScript(String.Format("EnterAFEditOK('{0}','{1}');", ObjAF.DtResultados.Rows(0)("CveActivoFijo").ToString, ObjAF.DtResultados.Rows(0)("Codigo").ToString))
|
|
Else
|
|
Alert("No se encontró un Activo Fijo con el código proporcionado.", TipoMensaje.MsgAdvertencia)
|
|
RegistraScript(String.Format("EnterAFEditOK({0},{1});", "-1", "-1"))
|
|
End If
|
|
End If
|
|
|
|
ObjAF.Dispose()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "E V E N T O - B I T A C O R A"
|
|
Protected Sub GVEventoBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
If e.Row.DBCampo("Archivo").ToString.Trim <> "" AndAlso CveOrdenCompra > 0 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
|
|
End If
|
|
End Sub
|
|
Protected Sub GvBitacoraEva_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvBitacoraEva.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
If e.Row.DBCampo("Archivo").ToString.Trim <> "" AndAlso CveOrdenCompra > 0 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
|
|
End If
|
|
End Sub
|
|
Protected Sub LnkAddCotEva_Click(sender As Object, e As EventArgs) Handles LnkAddCotEva.Click
|
|
HdnEsCotizacion.Value = "1"
|
|
ChkEventoPrioridad.Visible = False
|
|
HBitacora.InnerText = "Cotización"
|
|
LblBitacora.InnerText = "Cotización"
|
|
|
|
UPAddEventoBitacora.Update()
|
|
UpTituloBitacora.Update()
|
|
RegistraScript("$('#ModalBitacora').modal('show');")
|
|
End Sub
|
|
Protected Sub ImgAddObs_Click(sender As Object, e As EventArgs) Handles ImgAddObs.Click
|
|
HdnEsCotizacion.Value = "0"
|
|
ChkEventoPrioridad.Visible = True
|
|
HBitacora.InnerText = "Bitácora"
|
|
LblBitacora.InnerText = "Bitácora/Observaciones"
|
|
|
|
UPAddEventoBitacora.Update()
|
|
UpTituloBitacora.Update()
|
|
RegistraScript("$('#ModalBitacora').modal('show');")
|
|
End Sub
|
|
Protected Sub BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click
|
|
|
|
If CveOrdenCompra > 0 Then
|
|
GuardaBitacora(HdnEsCotizacion.Value.ToEntero() > 0)
|
|
Else
|
|
AgregaBitacoraTemporal()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
#Region " GUARDA DIRECTO "
|
|
Private Sub GuardaBitacora(Optional EsCotizacion As Boolean = False)
|
|
Dim ObjEventoBitacora As New ClsOIEventos
|
|
Dim FileExtension As String = ""
|
|
Dim Filesgral As List(Of Archivo) = Anexo.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
|
|
|
|
Dim descripcion As String = TxtEventoDescripcion.Text.Trim
|
|
Dim Prioridad As Integer = If(EsCotizacion, 4, If(ChkEventoPrioridad.Checked, 3, 1))
|
|
|
|
If ObjEventoBitacora.AddEventoBitacora(descripcion, String.Format("{0}", FileExtension), UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra, Prioridad:=Prioridad) Then
|
|
|
|
If Filename <> "" Then
|
|
Filename.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("Empresas\{0}\OI", CveEmpresaActual))
|
|
End If
|
|
|
|
GvEB.DataSource = ObjEventoBitacora.DtResultados
|
|
TxtEventoDescripcion.Text = ""
|
|
Anexo.Text = "[]"
|
|
ChkEventoPrioridad.Checked = False
|
|
Alert($"La {If(EsCotizacion, "cotización", "bitácora/observación")} se guardó correctamente", TipoMensaje.MsgInformacion)
|
|
RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal")
|
|
|
|
'obtener el Evento de bitacora para enviar el correo
|
|
If ObjEventoBitacora.GetEvento(ObjEventoBitacora.CveEvento, UsuarioActual.CveUsuario, CveEmpresaActual) Then
|
|
If ObjEventoBitacora.DtResultados IsNot Nothing AndAlso ObjEventoBitacora.DtResultados.Rows.Count > 0 Then
|
|
Dim dr As DataRow = ObjEventoBitacora.DtResultados.Rows(0)
|
|
EnviarCorreoBitacora(String.Format("{0}, {1} comento: ""{2}""", dr("FechaIng"), dr("Usuario"), dr("Descripcion")), String.Format("{0}Empresas/{1}/OI/{2}", UrlSitio, CveEmpresaActual, ObjEventoBitacora.Archivo))
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
|
|
ObjEventoBitacora.Dispose()
|
|
GvEB.DataBind()
|
|
|
|
UPEventoBitacora.Update()
|
|
CargaEventoBitacora()
|
|
UPAddEventoBitacora.Update()
|
|
End Sub
|
|
Private Sub CargaEventoBitacora()
|
|
Dim ObjEventoBitacora As New ClsOIEventos()
|
|
|
|
If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then
|
|
If ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento IN (6,2) AND CvePrioridad=3").Rows.Count > 0 Then
|
|
DivEventoUrgente.Visible = True
|
|
End If
|
|
GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento IN (6,2) AND CvePrioridad <> 4")
|
|
GvBitacoraEva.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CvePrioridad = 4")
|
|
Else
|
|
GvEB.DataSource = Nothing
|
|
End If
|
|
|
|
ObjEventoBitacora.Dispose()
|
|
|
|
GvEB.DataBind()
|
|
GvBitacoraEva.DataBind()
|
|
UPEventoBitacora.Update()
|
|
UpIvas.Update()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " GUARDA TEMPORAL "
|
|
Private Sub InicializaBitacoraTemporal()
|
|
If Not CveOrdenCompra > 0 Then
|
|
|
|
DtBitacora = New DataTable
|
|
DtBitacora.Columns.Add("FechaIng", GetType(String))
|
|
DtBitacora.Columns.Add("FechaInicio", GetType(String))
|
|
DtBitacora.Columns.Add("Usuario", GetType(String))
|
|
DtBitacora.Columns.Add("CveUsuario", GetType(String))
|
|
DtBitacora.Columns.Add("Descripcion", GetType(String))
|
|
DtBitacora.Columns.Add("Prioridad", GetType(String))
|
|
DtBitacora.Columns.Add("FileExtension", GetType(String))
|
|
DtBitacora.Columns.Add("Archivo", GetType(String))
|
|
DtBitacora.Columns.Add("CveOrdenCompra", GetType(String))
|
|
DtBitacora.Columns.Add("CveEmpresa", GetType(String))
|
|
|
|
End If
|
|
End Sub
|
|
Private Sub AgregaBitacoraTemporal()
|
|
Dim ObjEventoBitacora As New ClsOIEventos
|
|
|
|
'Archivo
|
|
Dim FileExtension As String = ""
|
|
Dim Filename As String = ""
|
|
Dim Filesgral As List(Of Archivo) = Anexo.getfiles().Archivos
|
|
|
|
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
|
|
|
|
Dim Archivo As New System.IO.FileInfo(String.Format("{0}OI\Temp\OI{1}{2}.{3}", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension))
|
|
If Archivo.Exists() Then
|
|
Archivo.Delete()
|
|
'File.Delete(String.Format("\Empresas\{0}\OI\Temp\OI{1}{2}.{3}", CveEmpresaActual, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension))
|
|
End If
|
|
|
|
If Filename <> "" Then
|
|
Filename.FilesMove(String.Format("OI{0}{1}", UsuarioActual.CveUsuario, DtDetalle.Rows.Count), String.Format("Empresas\{0}\OI\Temp", CveEmpresaActual))
|
|
End If
|
|
|
|
|
|
|
|
'AGREGA
|
|
Dim Dr = DtBitacora.NewRow
|
|
Dr("FechaIng") = Now
|
|
Dr("FechaInicio") = ""
|
|
Dr("Usuario") = UsuarioActual.Usuario
|
|
Dr("CveUsuario") = UsuarioActual.CveUsuario
|
|
Dr("Descripcion") = TxtEventoDescripcion.Text.Trim
|
|
Dr("Prioridad") = If(ChkEventoPrioridad.Checked, 3, 1)
|
|
Dr("Archivo") = String.Format("{0}OI\Temp\OI{1}{2}.{3}", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension)
|
|
Dr("FileExtension") = String.Format(".{0}", FileExtension)
|
|
Dr("CveOrdenCompra") = -1
|
|
Dr("CveEmpresa") = CveEmpresaActual
|
|
DtBitacora.Rows.Add(Dr)
|
|
|
|
|
|
|
|
'LIMPIA
|
|
TxtEventoDescripcion.Text = ""
|
|
ChkEventoPrioridad.Checked = False
|
|
RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal")
|
|
|
|
CargaEventoBitacoraTemp()
|
|
|
|
|
|
End Sub
|
|
Private Sub CargaEventoBitacoraTemp()
|
|
GvEB.DataSource = DtBitacora
|
|
GvEB.DataBind()
|
|
UPAddEventoBitacora.Update()
|
|
UPEventoBitacora.Update()
|
|
End Sub
|
|
Private Function GuardaBitacoraTemporal(ObjEventoBitacora As ClsOIEventos) As Boolean
|
|
Dim Retorno = False
|
|
Dim Archivo As System.IO.FileInfo = Nothing
|
|
|
|
For Each Dr As DataRow In DtBitacora.Rows
|
|
If ObjEventoBitacora.AddEventoBitacora(Dr("Descripcion").ToString, Dr("FileExtension").ToString, UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra, Prioridad:=Dr("Prioridad").ToString.ToEntero) Then
|
|
|
|
Archivo = New System.IO.FileInfo(Dr("Archivo").ToString)
|
|
If Archivo.Exists() Then
|
|
File.Move(Archivo.ToString, String.Format("{0}OI\OI{1}{2}", UsuarioActual.Empresa.Ruta, ObjEventoBitacora.CveEvento.ToString, Archivo.Extension))
|
|
End If
|
|
|
|
|
|
Else
|
|
Retorno = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
Return Retorno
|
|
End Function
|
|
#End Region
|
|
|
|
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)
|
|
If IO.File.Exists(filePath) Then
|
|
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
|
|
Else
|
|
UPEventoBitacora.Update()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
#Region " GENERAR ANTICIPOS "
|
|
Private Sub CargarOptionAnticipos()
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(108) = "1" Then
|
|
DivVendedor.Visible = True
|
|
option72.Visible = True
|
|
DivFolioAdicional.Visible = True
|
|
generarAnticipo.Visible = True
|
|
Ddlcliente.DataSource = GlobalDTCliente(CveEmpresaActual)
|
|
Ddlcliente.DataBind()
|
|
|
|
'Ddlcliente.Items.Insert(0, New ListItem(" - ", "-1"))
|
|
|
|
DdlVendedor.DataSource = GlobalDTVendedores(CveEmpresaActual)
|
|
DdlVendedor.DataBind()
|
|
DdlVendedor.Items.Insert(0, New ListItem(" - ", "-1"))
|
|
'DivLugarEntrega1.Visible = False
|
|
'DivLugarEntrega2.Visible = False
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " SOLICITAR ANTICIPOS "
|
|
|
|
'Private Sub InicializaSolicitarAnticipo()
|
|
' If CveOrdenCompra > 0 Then
|
|
|
|
' If CveIEAnticipo > 0 Then
|
|
' PorletIEAnticipo.Visible = True
|
|
' UpIEAnticipo.Update()
|
|
' Else
|
|
' If GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimeroValor("TipoTermino", $"CveEstatus = {CveEstatus}").ToEntero.Contiene(0, 3) Then
|
|
' BtnSolicitudAnticipo.Visible = True
|
|
' DdlSAUsuario.DataSource = GlobalDTUsuarios(-1, CveEmpresaActual)
|
|
' DdlSAUsuario.DataBind()
|
|
' DdlSAUsuario.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
' End If
|
|
' End If
|
|
|
|
' End If
|
|
'End Sub
|
|
|
|
|
|
Protected Sub BtnSolicitarAnticipo_Click(sender As Object, e As EventArgs) Handles BtnSolicitarAnticipo.Click
|
|
|
|
|
|
|
|
If TxtSAImporte.Text.ToDecimal > SaldoOCAnticipo Then
|
|
|
|
Alert("El importe solicitado supera el saldo de la orden de compra", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
|
|
End If
|
|
|
|
Dim Descripcion As New StringBuilder
|
|
Descripcion.AppendFormat("Importe anticipo : ${0} ({1}%) - <a target=""_blank"" href=""/Bancos/IE.aspx?Opcion=EGSSINFACT&CveOC={2}"">Pagar anticipo</a> - <b>Observacion:</b> {2} ", TxtSAImporte.Text.FormatoNumero, TxtSAImPorcentaje.Text, CveOrdenCompra, TxtSAObservaciones.Text)
|
|
Descripcion.AppendFormat("Orden de compra : {0} - <a target=""_blank"" href=""/OC/OC.aspx?OC={1}"">Ir a la orden de compra</a> - <a target=""_blank"" href=""/Compras/PopUpVerFactura.aspx?P={2}"">Imprimir OC</a>", Folio, CveOrdenCompra, Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra)))
|
|
|
|
'Dim Descripcion = $"Importe anticipo : ${TxtSAImporte.Text.FormatoNumero} ({TxtSAImPorcentaje.Text}%) - <a target=""_blank"" href=""/Bancos/IE.aspx?Opcion=EGSSINFACT&CveOC={CveOrdenCompra}"">Pagar anticipo</a> - <b>Observacion:</b> {TxtSAObservaciones.Text} "
|
|
Dim Asunto = $"Solicitud de anticipo ({lblFolio.Text})"
|
|
Dim ObjOC As New ClsOC
|
|
Dim ObjOI As New ClsOIEventos(ObjOC.IniciaTransacSQL)
|
|
Dim TieneError = False
|
|
|
|
If ObjOI.AddEventoTarea(Asunto, Descripcion.ToString, 1, UsuarioActual.CveUsuario, DdlSAUsuario.SelectedValue.ToString.ToEntero, DateTime.Now, DateTime.Now.AddMinutes(15), -1, 1, -1, "-1", -1, -1, -1, -1, -1, CveOrdenCompra.ToEntero, -1, -1, UsuarioActual.CveUsuario, -1, CveEmpresaActual) Then
|
|
If Not ObjOC.AddSolicitudAnticipo(CveOrdenCompra, TxtSAImporte.Text.ToDouble, CveEmpresaActual) Then
|
|
TieneError = True
|
|
End If
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
|
|
|
|
If Not ObjOI.AddEventoBitacora($"Solicitud de anticipo de orden de compra por ${TxtSAImporte.Text.FormatoNumero}", "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompra) Then
|
|
TieneError = True
|
|
End If
|
|
|
|
|
|
If Not TieneError Then
|
|
RegistraScript("$('#ModalSolicitarAnticipo').modal('hide');", "ModalSolicitarAnticipoHide")
|
|
ObjOC.Commit()
|
|
EnviaCorreoSolicitudAnticipo(ObjOI.CveEvento)
|
|
|
|
'LIMPIA
|
|
BtnSolicitudAnticipo.Visible = False
|
|
DdlSAUsuario.SelectedValue = "-1"
|
|
TxtSAImporte.Text = ""
|
|
TxtSAObservaciones.Text = ""
|
|
TxtSAImPorcentaje.Text = ""
|
|
|
|
Alert("La solicitud de anticipo ha sido enviada correctamente.", TipoMensaje.MsgInformacion)
|
|
|
|
|
|
Else
|
|
ObjOC.RollBack()
|
|
Alert("Ocurrió un error al hacer la solicitud de anticipo.", TipoMensaje.MsgError)
|
|
End If
|
|
ObjOC.Dispose()
|
|
|
|
'RECARGA LA BITACORA
|
|
If Not TieneError Then
|
|
CargaEventoBitacora()
|
|
End If
|
|
|
|
End Sub
|
|
Private Sub EnviaCorreoSolicitudAnticipo(CveEvento As Integer)
|
|
Dim Param As New List(Of String)
|
|
Dim DtPara As DataTable = GlobalDTUsuarios(DdlSAUsuario.SelectedValue.ToString.ToEntero, CveEmpresaActual)
|
|
Param.Add(DtPara.Rows(0)("Correo").ToString()) 'Para
|
|
Param.Add("Solicitud de anticipo de Orden de Compra") 'Asunto
|
|
Param.Add(GeneraCorreoAnticipo(lblFolio.Text, DtPara.Rows(0)("Nombre").ToString(), String.Format("http://sig.adssistemas.mx/OI/EventoDetalle.aspx?CveTipoEvento=1&CveEvento={0}", CveEvento), TxtSAImporte.Text, DdlProveedores.SelectedText))
|
|
Param.Add(String.Format("{0}PDF\OC-{1}.pdf", UsuarioActual.Empresa.Ruta, CveOrdenCompra))
|
|
Dim Hilo As New Threading.Thread(AddressOf MandaCorreoAnticipo)
|
|
Hilo.Start(Param)
|
|
End Sub
|
|
Private Sub EnviaCorreoSolicitudAnticipoCancelado()
|
|
'If Not CveIEAnticipo > 0 Then 'SI NO SE HA REALIZADO EL ANTICIPO NOTIFICA QUE SE HA CANCELADO
|
|
Dim ObjOC As New ClsOC
|
|
If ObjOC.GetSolicitudAnticipoUsuarios(CveOrdenCompra, CveEmpresaActual) Then
|
|
For Each Dr As DataRow In ObjOC.DtResultados.Rows
|
|
Dim Param As New List(Of String)
|
|
Dim DtPara As DataTable = GlobalDTUsuarios(Dr("CveUsuarioPara").ToString.ToEntero, CveEmpresaActual)
|
|
Param.Add(DtPara.Rows(0)("Correo").ToString()) 'Para
|
|
Param.Add("Solicitud de anticipo de Orden de Compra Cancelada") 'Asunto
|
|
Param.Add(GeneraCorreoAnticipo(lblFolio.Text, DtPara.Rows(0)("Nombre").ToString(), String.Format("http://sig.s/OI/EventoDetalle.aspx?CveTipoEvento=1&CveEvento={0}", Dr("CveEvento").ToString.ToEntero), "", DdlProveedores.SelectedText))
|
|
Param.Add(String.Format("{0}PDF\OC-{1}.pdf", UsuarioActual.Empresa.Ruta, CveOrdenCompra))
|
|
Dim Hilo As New Threading.Thread(AddressOf MandaCorreoAnticipo)
|
|
Hilo.Start(Param)
|
|
Next
|
|
End If
|
|
ObjOC.Dispose()
|
|
'End If
|
|
End Sub
|
|
Private Sub MandaCorreoAnticipo(Data As Object)
|
|
Dim Parametros As List(Of String) = DirectCast(Data, List(Of String))
|
|
|
|
Dim Mail As New ClsSisMail()
|
|
Dim Para As String = Parametros(0)
|
|
Dim Asunto As String = Parametros(1)
|
|
Dim Body As String = Parametros(2)
|
|
|
|
'Dim ArrayAttachment As New List(Of String)
|
|
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
|
|
If Parametros(3) IsNot Nothing AndAlso Parametros(3) <> "" Then
|
|
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = Parametros(3).ToString})
|
|
End If
|
|
|
|
'If Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayAttachment:=ArrayAttachment) Then
|
|
If Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail) Then
|
|
Alert("Correos enviados")
|
|
Else
|
|
Alert("Correos no enviados")
|
|
End If
|
|
|
|
End Sub
|
|
Private Function GeneraCorreoAnticipo(folio As String, para As String, link As String, importe As String, Proveedor As String) As String
|
|
'NOTA: CUANDO EL IMPORTE SEA "" QUIERE DECIR QUE ES EL CORREO DE CANCELACIÓN
|
|
Dim Abreviatura As String = GlobalDTMonedas().FiltroPrimeroValor("Abreviatura", $"CveMoneda={DdlMoneda.SelectedValue}")
|
|
|
|
Dim strBody As New StringBuilder
|
|
strBody.Append("<!DOCTYPE html>")
|
|
strBody.Append("<html lang=""en""> ")
|
|
strBody.Append("<body class=""page-header-fixed page-quick-sidebar-over-content "">")
|
|
strBody.Append("<style>")
|
|
strBody.Append(".portlet {margin-top: 0px;margin-bottom: 25px;padding: 0px;-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;-o-border-radius: 4px;border-radius: 4px;padding: 0px !important;border: 1px solid #d78184;border-top: 0;background-color: #cb5a5e;}")
|
|
strBody.Append(".portlet > .portlet-title {border-bottom: 0px solid #eee;padding: 0 10px;margin-bottom: 0px;min-height: 41px;-webkit-border-radius: 4px 4px 0 0;-moz-border-radius: 4px 4px 0 0;-ms-border-radius: 4px 4px 0 0;-o-border-radius: 4px 4px 0 0;border-radius: 4px 4px 0 0;color: #fff;}")
|
|
strBody.Append(".portlet > .portlet-title {background-color: #cb5a5e;}")
|
|
strBody.Append(".portlet > .portlet-title > div {padding: 11px 0 9px 0;}")
|
|
strBody.Append(".portlet > .portlet-title > div {float: left;display: inline-block;font-size: 24px;line-height: 18px;padding: 10px 0;}")
|
|
strBody.Append(".portlet > .portlet-body {background-color: #fff;padding: 10px;} ")
|
|
strBody.Append(".portlet > .portlet-body {clear: both;-webkit-border-radius: 0 0 4px 4px;-moz-border-radius: 0 0 4px 4px;-ms-border-radius: 0 0 4px 4px;-o-border-radius: 0 0 4px 4px;border-radius: 0 0 4px 4px;}")
|
|
strBody.Append(".mitablita td:nth-child(1){width: 100px; font-weight:700;}")
|
|
strBody.Append("a{ color: #666;padding: 3px 9px; line-height: 1.5;background-color: #fff;border: 1px solid #ccc; text-decoration: none;}a:hover{background-color: #ededed;}")
|
|
strBody.Append(".mitablita tr:nth-child(5) td{ text-align: right;}td{min-width:100px; }")
|
|
strBody.Append("</style>")
|
|
strBody.Append(" <div style=""Width:400px;"">")
|
|
strBody.Append(" <div class=""portlet box red"">")
|
|
strBody.Append(" <div class=""portlet-title"">")
|
|
strBody.Append(" <div class=""caption"">")
|
|
strBody.Append($" <i class=""fa fa-cart-plus""></i>Solicitud de anticipo {If(importe.ToDouble > 0, "", " <b>CANCELADA</b> ")}")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" <div class=""portlet-body "">")
|
|
strBody.Append(" <table class=""mitablita"">")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>Empresa</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(UsuarioActual.Empresa.Empresa)
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>Proveedor</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(Proveedor)
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>Fecha</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(DateTime.Now.ToString("dd/MM/yy"))
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>De</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(UsuarioActual.Nombre)
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>Para</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(para)
|
|
strBody.Append("</td> </tr>")
|
|
strBody.Append(" <tr>")
|
|
strBody.Append(" <td>Folio</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.Append(folio)
|
|
strBody.Append("</td> </tr>")
|
|
If importe.ToDouble > 0 Then
|
|
strBody.Append(" <td>Importe Anticipo:</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.AppendFormat("{0} {1}", importe, Abreviatura)
|
|
strBody.Append("</td> </tr>")
|
|
End If
|
|
If LblTotal.Text.Trim.ToDouble > 0 Then
|
|
strBody.Append(" <td>Importe OC:</td>")
|
|
strBody.Append(" <td>")
|
|
strBody.AppendFormat("{0} {1}", LblTotal.Text, Abreviatura)
|
|
strBody.Append("</td> </tr>")
|
|
End If
|
|
strBody.Append("<tr><td colspan=""4"" ><a href=""")
|
|
strBody.Append(link)
|
|
strBody.Append(""">Ver mas</a></td></tr>")
|
|
strBody.Append(" <table>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append(" </div>")
|
|
strBody.Append("</body>")
|
|
strBody.Append("</html>")
|
|
Return strBody.ToString
|
|
End Function
|
|
#End Region
|
|
|
|
#Region "C O T I Z A C I O N E S"
|
|
Protected Sub VerificaSiRequiereCotizacion()
|
|
If TipoOC = "REQ" Then
|
|
If ChkCotizacion.Checked Then
|
|
If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then
|
|
If CveOrdenCompra > 0 AndAlso CveEstatus.Contiene(CveEstatusSupervisada, CveEstatusFinalOK) Then
|
|
DdlProveedores.Attributes.Add("disabled", "disabled")
|
|
DdlProveedores.Enabled = False
|
|
ImgCambiaProv.Visible = False
|
|
End If
|
|
Else
|
|
PnlProveedor.Visible = False
|
|
End If
|
|
|
|
UPProv.Update() : UPPEmp.Update()
|
|
BtnGuardar.Text = "Guardar"
|
|
tabCotizaciones.Enabled = True
|
|
Else
|
|
tabCotizaciones.Enabled = False
|
|
''temporal, si es nueva, le podras mover el proveedor, pero si ya esta registrada, debes de tener permisos para hacerlo
|
|
If CveOrdenCompra = 0 OrElse (CveOrdenCompra > 0 AndAlso UsuarioActual.TienePermisoProceso(106) AndAlso ChkCotizacion.Checked = False) Then
|
|
PnlProveedor.Visible = True : UPProv.Update() : UPPEmp.Update()
|
|
DdlProveedores.Enabled = True
|
|
End If
|
|
BtnGuardar.Enabled = True
|
|
If CveEstatus = CveEstatusFinalOK Then
|
|
BtnGuardar.Text = String.Format("Guardar{0}", If(CboE.SelectedValue.ToEntero = CveEstatusFinalOK, " y Generar OC", ""))
|
|
PnlProveedor.Visible = True
|
|
DdlProveedores.Enabled = True
|
|
|
|
UPProv.Update() : UPPEmp.Update()
|
|
End If
|
|
|
|
End If
|
|
|
|
UPPTab.Update()
|
|
uppOpciones.Update()
|
|
VerificaCotizacionesGanadoras()
|
|
End If
|
|
End Sub
|
|
|
|
Protected Function ActualizarCotizacion(ByRef ObjVentas As ClsVentas) As Boolean
|
|
Dim OcurrioError As Boolean = False
|
|
Try
|
|
Dim PorcentajeGanancia As Decimal = 0.3D
|
|
For Each Row As DataRow In DtDetalle.Rows
|
|
Dim CvePS As Integer = Row("CvePS").ToString.ToEntero
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("")
|
|
|
|
Dim Cantidad As Decimal = Row("Cantidad").ToString.ToDecimal
|
|
Dim PU As Decimal = Row("Importe").ToString.ToDecimal() + (Row("Importe").ToString.ToDecimal() * PorcentajeGanancia)
|
|
|
|
|
|
Dim TotalCalculableImpuestos = (Cantidad * (PU))
|
|
Dim TotalCalculableImpuestosIVA = TotalCalculableImpuestos * (1 + DrPS("IEPSPorcentaje").ToString().ToDecimal)
|
|
|
|
Dim PorcentajeIEPS As Decimal = DrPS("IEPSPorcentaje").ToString.ToDecimal
|
|
|
|
Dim PorcentajeIVA As Decimal = 0D
|
|
|
|
If DrPS("IVA").ToString().Contiene("-1", "") Then
|
|
PorcentajeIVA = Row("IVAPorcentaje")
|
|
Else
|
|
PorcentajeIVA = DrPS("IVA")
|
|
End If
|
|
|
|
Dim ImporteIEPS As Decimal = (TotalCalculableImpuestos * PorcentajeIEPS).RoundSQL(2)
|
|
Dim ImporteIVA As Decimal = (TotalCalculableImpuestosIVA * PorcentajeIVA).RoundSQL(2)
|
|
|
|
If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalleCotizacion").ToString.ToEntero, CvePS, Cantidad, PU, ImporteIEPS, PorcentajeIEPS, ImporteIVA, PorcentajeIVA, "", UsuarioActual.CveUsuario) Then
|
|
OcurrioError = True
|
|
Exit For
|
|
End If
|
|
|
|
Next
|
|
Catch ex As Exception
|
|
OcurrioError = True
|
|
OnError("Ocurrió un error al guardar la cotización", ex)
|
|
End Try
|
|
|
|
Return Not OcurrioError
|
|
End Function
|
|
#End Region
|
|
|
|
Private Function notienepresupuesto() As Boolean
|
|
Dim notienerecursos = False
|
|
Dim SinRecursos As New StringBuilder
|
|
SinRecursos.AppendFormat("No se cuenta con los Recursos Suficientes en los siguientes subproyectos ")
|
|
Dim subproyectosSr As New List(Of Integer)
|
|
Dim filtro As New StringBuilder
|
|
'me traigo los proyectos y subproyectos para traer presupuesots de la bd
|
|
Dim subproyectos As New List(Of Integer)
|
|
|
|
For Each Row As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows
|
|
Dim RowCon As DataRow = GlobalDTContratos.FiltroPrimero(String.Format("CveSubProyecto={0}", Row("CveSubProyecto")))
|
|
If Not IsNothing(RowCon) Then
|
|
filtro.AppendFormat(",{0}", Row("CveSubProyecto"))
|
|
subproyectos.Add(Row("CveSubProyecto").ToString.ToEntero)
|
|
End If
|
|
Next
|
|
'me traigo los presupuestos de la base de datos
|
|
Dim dtpresupuestos As New DataTable
|
|
Dim objContratos As New ClsContratos
|
|
If objContratos.GetContratosPresupuesto(filtro.ToString) Then
|
|
dtpresupuestos = objContratos.DtResultados
|
|
End If
|
|
objContratos.Dispose()
|
|
|
|
'resto los importes actuales a los presupuestos obtenidos de la bd
|
|
For Each dr As DataRow In DtDetalle.Rows
|
|
Dim psclasificacion As String = String.Format("CveSubFamilia='{0}' AND CveSubProyecto={1}", GlobalDTPS(CveEmpresaActual, CvePS:=dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("CveSubFamilia"), dr("CveSubProyecto").ToString)
|
|
'Dim psclasificacion As String = String.Format("CveSubFamilia='{0}' AND CveSubProyecto={1}", GlobalDTProductosServicios(CveEmpresaActual, -1, -1).FiltroPrimero(String.Format("CvePS={0}", dr("CvePS").ToString.ToEntero))("CveSubFamilia").ToString, dr("CveSubProyecto").ToString)
|
|
|
|
If dtpresupuestos.Rows.Count > 0 AndAlso dtpresupuestos.Select(psclasificacion).Count > 0 Then
|
|
Dim rowpresupuesto As DataRow = dtpresupuestos.Select(psclasificacion)(0)
|
|
rowpresupuesto("Importe") = rowpresupuesto("Importe").ToString.ToDouble - dr("Total").ToString.ToDouble()
|
|
Else
|
|
If subproyectos.Contains(dr("CveSubProyecto").ToString.ToEntero) Then
|
|
notienerecursos = True
|
|
If Not subproyectosSr.Contains(dr("CveSubProyecto").ToString.ToEntero) Then
|
|
subproyectosSr.Add(dr("CveSubProyecto").ToString.ToEntero)
|
|
SinRecursos.AppendFormat(",{0}", dr("SubProyecto").ToString)
|
|
End If
|
|
End If
|
|
End If
|
|
Next
|
|
dtpresupuestos.AcceptChanges()
|
|
'
|
|
For Each rowpresupuesto As DataRow In dtpresupuestos.Rows
|
|
If (rowpresupuesto("Importe").ToString.ToDouble() < 0) Then
|
|
If Not subproyectosSr.Contains(rowpresupuesto("CveSubProyecto").ToString.ToEntero) Then
|
|
subproyectosSr.Add(rowpresupuesto("CveSubProyecto").ToString.ToEntero)
|
|
SinRecursos.AppendFormat(",{0}", rowpresupuesto("SubProyecto").ToString)
|
|
End If
|
|
notienerecursos = True
|
|
End If
|
|
Next
|
|
If (notienerecursos) Then
|
|
Alert(SinRecursos.ToString, TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
dtpresupuestos.Dispose()
|
|
Return notienerecursos
|
|
End Function
|
|
|
|
Public Function isWithFamily() As Boolean
|
|
Return CveEmpresaActual = 66
|
|
End Function
|
|
|
|
Protected Sub DdlProveedores_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProveedores.selectedindexchange
|
|
Dim Objeto As New ClsCompProveedores
|
|
|
|
DdlProveedorSucursal.Items.Clear()
|
|
DdlProveedorSucursal.SelectedValue = Nothing
|
|
|
|
DdlProveedorContacto.Items.Clear()
|
|
DdlProveedorContacto.SelectedValue = Nothing
|
|
|
|
If DdlProveedores.SelectedValue = "-1" Then
|
|
DivProveedorSucursal.Visible = False
|
|
DivProveedorContacto.Visible = False
|
|
Else
|
|
If Objeto.GetSucursales(DdlProveedores.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
|
|
If Objeto.DtResultados.Rows.Count > 0 Then
|
|
DivProveedorSucursal.Visible = True
|
|
DdlProveedorSucursal.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
DdlProveedorSucursal.Items.Insert(1, New ListItem("Matriz", "0"))
|
|
DdlProveedorSucursal.DataSource = Objeto.DtResultados
|
|
Else
|
|
DivProveedorSucursal.Visible = False
|
|
End If
|
|
End If
|
|
|
|
If Objeto.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, DdlProveedores.SelectedValue.ToEntero, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then
|
|
If Objeto.DtResultados.Rows.Count > 0 Then
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then
|
|
Me.CveConfianzaProveedor = Objeto.DtResultados.FiltroPrimeroValor("CveConfianzaProveedor").ToEntero()
|
|
'SI NO TIENE ASIGNADO UN NIVEL DE CONFIANZA SE ASIGNARA EL VALOR DE 'PROVEEDOR NO DEDICADO'
|
|
If CveConfianzaProveedor <= 0 Then
|
|
CveConfianzaProveedor = 2
|
|
End If
|
|
End If
|
|
|
|
ChkCotizacion.Checked = CveConfianzaProveedor > 0
|
|
ChkCotizacion.Enabled = CveConfianzaProveedor <= 0
|
|
|
|
End If
|
|
End If
|
|
|
|
'MONEDA PREFERENTE
|
|
If CveOrdenCompra <= 0 Then
|
|
DdlMoneda.SelectedValueExist(Objeto.CveMonedaPreferente)
|
|
MonedaTexto = DdlMoneda.SelectedItem.Text
|
|
End If
|
|
|
|
'MUESTRA IVA PROVEEDOR EXTRANJERO
|
|
If GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {DdlProveedores.SelectedValue} AND RFC = 'XEXX010101000'").Rows.Count = 1 Then
|
|
'Alert("Proveedor extranjero")
|
|
LblLeyendaProveedorIVA.Text = "IVA 0%"
|
|
|
|
'Si es proveedor extranjero selecciona iva al 0%
|
|
DdlIVA.SelectedValue = "1"
|
|
|
|
Else
|
|
LblLeyendaProveedorIVA.Text = ""
|
|
'Si es proveedor selecciona iva al 16%
|
|
'DdlIVA.SelectedValue = "1.16"
|
|
|
|
End If
|
|
End If
|
|
|
|
Objeto.Dispose()
|
|
|
|
VerificaSiRequiereCotizacion()
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(565) = "1" And CveOrdenCompra > 0 And TipoOC.ToUpper() = "REQ" Then
|
|
'LAS COTIZACIONES RAPIDAS SOLO DEBE APARECER SI EL PROVEEDOR ES DEDICADO
|
|
If CveConfianzaProveedor = 1 Then
|
|
RowCotizaciones.Visible = True
|
|
End If
|
|
UpIvas.Update()
|
|
End If
|
|
|
|
DdlProveedorSucursal.DataBind()
|
|
UPProv.Update() : UPPEmp.Update()
|
|
UPPDetalle.Update()
|
|
uppEstatus.Update()
|
|
|
|
End Sub
|
|
|
|
Protected Sub CboE_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboE.SelectedIndexChanged
|
|
CargaProyectos()
|
|
CargaSubProyectos()
|
|
CargaSuperior()
|
|
UPPDetalle.Update()
|
|
PnlUsuarioAsignado.Visible = False
|
|
|
|
|
|
'RVProveedores.Enabled = False
|
|
'Si NO requiere cotizacion y el estatus siguiente es el final,
|
|
If TipoOC.ToUpper = "REQ" Then
|
|
|
|
If ChkCotizacion.Checked = False Then
|
|
PnlProveedor.Visible = True : UPProv.Update()
|
|
Else
|
|
PnlProveedor.Visible = UsuarioActual.Empresa.Funcionalidad(565) = "1" : UPProv.Update()
|
|
End If
|
|
|
|
If ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero.Contiene(CveEstatusFinalOK) AndAlso TipoOS = False Then
|
|
BtnGuardar.Text = "Guardar y Generar OC" : uppOpciones.Update()
|
|
'RVProveedores.Enabled = True
|
|
|
|
If CveEmpresaActual.Contiene(13, 83, 72, 80) Then
|
|
PnlUsuarioAsignado.Visible = True
|
|
DdlUsuariosAsignado.DataSource = GlobalDTUsuarios(CveEmpresa:=CveEmpresaActual).FiltraParametros("Estatus = 1", "Nombre")
|
|
DdlUsuariosAsignado.DataBind()
|
|
DdlUsuariosAsignado.Items.Insert(0, New ListItem(" - ", "-1"))
|
|
DdlUsuariosAsignado.SelectedValueExist(CveUsuarioAsignado)
|
|
|
|
End If
|
|
Else
|
|
VerificaCotizacionesGanadoras()
|
|
|
|
If CboE.SelectedValue.ToEntero.Contiene(CveEstatusFinalOK) AndAlso LblMsgEstatus.Text = "" Then
|
|
BtnGuardar.Text = "Guardar y Generar OC"
|
|
Else
|
|
BtnGuardar.Text = "Guardar"
|
|
End If
|
|
uppOpciones.Update()
|
|
End If
|
|
|
|
|
|
If ChkCotizacion.Checked = False AndAlso CboE.SelectedValue.ToEntero = CveEstatusFinalError AndAlso TipoOS = False Then
|
|
BtnGuardar.Text = "Guardar" : uppOpciones.Update()
|
|
If CveEstatus <> CveEstatusFinalError Then RegistraScript("$get('divCE').style.display='';PosicionaObjeto('C_CboE','divCE'); ")
|
|
End If
|
|
Else
|
|
'RVProveedores.Enabled = True
|
|
End If
|
|
|
|
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
ActivaAC()
|
|
End If
|
|
|
|
UPPEmp.Update()
|
|
End Sub
|
|
|
|
#Region " DATOS DE VENTA (PORLET) "
|
|
Protected Sub ChkEntregaDirecta_CheckedChanged(sender As Object, e As EventArgs)
|
|
CambiaEntregaDirecta()
|
|
End Sub
|
|
Private Sub CambiaEntregaDirecta()
|
|
DivLugarEntregaDirecta1.Visible = ChkEntregaDirecta.Checked
|
|
DivLugarEntregaDirecta2.Visible = ChkEntregaDirecta.Checked
|
|
DivAddDireccionEnvio.Visible = ChkEntregaDirecta.Checked
|
|
|
|
DdlDireccionEnvio.Visible = False
|
|
TxtLugarEntregaDirecta.Visible = False
|
|
BtnAgregarDireccion.Visible = False
|
|
|
|
If ChkEntregaDirecta.Checked Then
|
|
CargaDireccionesEnvioCliente()
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub Ddlcliente_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Ddlcliente.selectedindexchange
|
|
|
|
DdlVendedor.SelectedValueExist(GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveVendedor", $"CveCliente = {Ddlcliente.SelectedValue}"))
|
|
|
|
DdlDireccionEnvio.Visible = False
|
|
TxtLugarEntregaDirecta.Visible = False
|
|
BtnAgregarDireccion.Visible = False
|
|
CargaDdlSucursalCliente()
|
|
|
|
If ChkEntregaDirecta.Checked Then
|
|
CargaDireccionesEnvioCliente()
|
|
End If
|
|
|
|
End Sub
|
|
Private Sub CargaDireccionesEnvioCliente()
|
|
Dim ObjClientes As New ClsClientes
|
|
If ObjClientes.DireccionEnvioGet(-1, Ddlcliente.txtValue.Value.ToEntero, -1) Then
|
|
DdlDireccionEnvio.DataSource = ObjClientes.DtResultados
|
|
If ObjClientes.DtResultados.Rows.Count > 0 Then
|
|
DdlDireccionEnvio.Visible = True
|
|
BtnAgregarDireccion.Visible = True
|
|
Else
|
|
TxtLugarEntregaDirecta.Visible = True
|
|
TxtLugarEntregaDirecta.Text = ""
|
|
BtnAgregarDireccion.Visible = True
|
|
End If
|
|
End If
|
|
ObjClientes.Dispose()
|
|
DdlDireccionEnvio.DataBind()
|
|
DdlDireccionEnvio.SelectedValueExist(CveDireccionEnvio)
|
|
UpVendedor.Update()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "ENVIAR CORREO"
|
|
Private Sub Notificaciones()
|
|
If UsuarioActual.Empresa.Funcionalidad(140).ToString.ToEntero = 1 Then
|
|
'CORREO DE CAMBIA ESTATUS PARA USUARIOS SIGUIENTE ESTATUS
|
|
If (EsNuevo = False AndAlso CveEstatus <> CboE.SelectedValue.ToEntero) Or EsNuevo = True Then
|
|
Dim RowActual As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimero(String.Format("CveEstatus = {0}", CboE.SelectedValue))
|
|
If RowActual IsNot Nothing Then CveEstatusSiguiente = RowActual("CveEstatusSiguiente").ToString.ToEntero
|
|
EnviarCorreoCambioEstatus(CveEstatusSiguiente, CboE.SelectedItem.Text)
|
|
End If
|
|
|
|
'CORREO MODIFICADA
|
|
If EsNuevo = False And DtHistorial IsNot Nothing Then
|
|
Dim Bitacora = DtHistorial.FiltraParametros("CveConceptoHistorialBitacora <> 1").Rows.Count
|
|
Dim ObjGral As New ClsGenerales
|
|
If ObjGral.GetHistorialBitacora(-1, CveOrdenCompra, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
|
|
DtHistorial = ObjGral.DtResultados.FiltraParametros("CveConceptoHistorialBitacora <> 1")
|
|
End If
|
|
ObjGral.Dispose()
|
|
|
|
If Bitacora < DtHistorial.Rows.Count Then
|
|
EnviarCorreoModificada()
|
|
End If
|
|
End If
|
|
|
|
'CORREO PROVEEDOR - SE GENERO OC
|
|
If CveOCGeneradas.Count > 0 Then
|
|
For i = 0 To CveOCGeneradas.Count - 1
|
|
EnviarCorreoOrdenCompra(CveOCGeneradas(i))
|
|
Next
|
|
|
|
If DdlUsuariosAsignado.SelectedValue.ToEntero > 0 Then
|
|
CorreoUsuarioAsignado(CveEstatusSiguiente, CboE.SelectedItem.Text)
|
|
End If
|
|
End If
|
|
|
|
''CORREO CANCELACIÓN
|
|
'If CanceladoOC Then
|
|
|
|
'End If
|
|
|
|
''CORREO COTIZACIÓN
|
|
|
|
''CORREO BITACORA
|
|
'If Bitacora Then
|
|
|
|
'End If
|
|
End If
|
|
End Sub
|
|
Private Sub MandaCorreo()
|
|
Dim Asunto, Para, ArrayCC, RutaPDF, Body As String
|
|
Asunto = If(IsNothing(ViewState("Asunto")), "", ViewState("Asunto").ToString)
|
|
Para = If(IsNothing(ViewState("Para")), "", ViewState("Para").ToString)
|
|
ArrayCC = If(IsNothing(ViewState("ArrayCC")), "", ViewState("ArrayCC").ToString)
|
|
RutaPDF = If(IsNothing(ViewState("RutaPDF")), "", ViewState("RutaPDF").ToString)
|
|
Body = If(IsNothing(ViewState("Body")), "", ViewState("Body").ToString)
|
|
Dim a As String = String.Format("{0} -- {1} --- {2}", Asunto, Para, ArrayCC)
|
|
'a.GuardaLog()
|
|
|
|
Dim Mail As New ClsSisMail()
|
|
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
|
|
If RutaPDF <> "" AndAlso File.Exists(RutaPDF) Then LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = RutaPDF})
|
|
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC, LSRutasMail)
|
|
End Sub
|
|
Private Sub MandaCorreo2(File As Byte(), Para As String, Asunto As String, Body As String)
|
|
|
|
Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para)
|
|
'a.GuardaLog()
|
|
Dim Mail As New ClsSisMail()
|
|
|
|
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
|
|
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "OrdenCompra.pdf"})
|
|
|
|
'Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, , , ".pdf", rutaxml, , , )
|
|
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail)
|
|
End Sub
|
|
Protected Sub EnviarCorreoBitacora(Bitacora As String, LigaAdjunto As String)
|
|
Dim Body As String
|
|
'Dim ArrayCC As String()
|
|
|
|
|
|
Dim Correo As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString
|
|
'Dim CorreosCCP As New List(Of String)
|
|
Dim StrCorreos As New StringBuilder
|
|
|
|
'Sacar los correos a los que se les notificara
|
|
'Aqui seran los que cambiaron de estatus, que son los niveles inferiores
|
|
If DtHistorial IsNot Nothing Then
|
|
For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialBitacora = 1").Rows
|
|
StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString)
|
|
'CorreosCCP.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString)
|
|
Next
|
|
End If
|
|
|
|
''Aqui seran todos los usuarios que tienen habilitado el estatus actual
|
|
'Dim objOC As New ClsOC
|
|
''PENDIENTE POR EL SUBPROYECTO
|
|
'If objOC.GetEstatusUsuarios(-1, CveEstatus, -1, -1, CveEmpresaActual) Then
|
|
' For Each Row As DataRow In objOC.DtResultados.Rows
|
|
' Array.Resize(CorreosCCP, If(CorreosCCP IsNot Nothing, UBound(CorreosCCP) + 2, 1))
|
|
' CorreosCCP(UBound(CorreosCCP)) = GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString
|
|
' Next
|
|
'End If
|
|
'objOC.Dispose()
|
|
|
|
Try
|
|
Body = GeneraCorreo(CveOrdenCompra, "", False, Bitacora, LigaAdjunto)
|
|
ViewState("Para") = Correo
|
|
ViewState("ArrayCC") = StrCorreos.ToString 'CorreosCCP.Distinct()
|
|
ViewState("Asunto") = String.Format("SIG. {0} #{1} Bitacora", TipoLargo, Folio)
|
|
'ViewState("RutaPDF") = ""
|
|
ViewState("Body") = Body
|
|
Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo)
|
|
Hilo.Start()
|
|
' Alert("Se enviara correo por cambio Modificacion")
|
|
Catch ex As Exception
|
|
OnError("Ocurrió error al mandar MAIL de bitacora", ex)
|
|
End Try
|
|
End Sub
|
|
Protected Sub EnviarCorreoModificada()
|
|
If CBool(GlobalDTUsuarios(CveUsuario)(0)("Estatus").ToString) Then
|
|
Dim Body As String
|
|
Dim Correo As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString
|
|
Dim StrCorreos As New StringBuilder
|
|
|
|
'Sacar los correos a los que se les notificara
|
|
'Aqui seran los que cambiaron de estatus, que son los niveles inferiores
|
|
For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialBitacora = 1").Rows
|
|
StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString)
|
|
Next
|
|
|
|
Try
|
|
Body = GeneraCorreo(CveOrdenCompra, "")
|
|
ViewState("Para") = Correo
|
|
ViewState("ArrayCC") = StrCorreos.ToString 'CorreosCCP.Distinct()
|
|
ViewState("Asunto") = String.Format("SIG. {0} #{1} Modificada", TipoLargo, Folio)
|
|
ViewState("RutaPDF") = ""
|
|
ViewState("Body") = Body
|
|
Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo)
|
|
Hilo.Start()
|
|
' Alert("Se enviara correo por cambio Modificacion")
|
|
Catch ex As Exception
|
|
OnError("Ocurrió error al mandar MAIL de modificación", ex)
|
|
End Try
|
|
End If
|
|
End Sub
|
|
Protected Sub EnviarCorreoCambioEstatus(pCveEstatus As Integer, Estatus As String, Optional NotificarAlert As Boolean = True, Optional AsuntoMail As String = "")
|
|
Dim strOpciones As New StringBuilder
|
|
If CveUsuario = -1 Or Not CBool(GlobalDTUsuarios(CveUsuario)(0)("Estatus").ToString) Then CveUsuario = UsuarioActual.CveUsuario
|
|
Dim Para As String = GlobalDTUsuarios(CveUsuario)(0)("correo").ToString
|
|
Dim CorreosCCPNombre As New List(Of String)
|
|
Dim objUsuarios As New ClsSisUsuarios
|
|
Dim StrCorreos As New StringBuilder
|
|
|
|
'MANDA CORREO A LOS USUARIOS CON EL ESTATUS SIGUIENTE (MODIFICADO) PARA QUE DEN EL SIGUIENTE PASO
|
|
If CveEstatusSiguiente > 0 Then
|
|
If hdnCveSuperior.Value.ToEntero > 0 Then
|
|
'SI TIENE SUPERIOR MANDA CORREO A TODOS LOS DEL SIGUIENTE ESTATUS
|
|
StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(hdnCveSuperior.Value.ToEntero)(0)("correo").ToString)
|
|
Else
|
|
'SI NO TIENE SUPERIOR LO BUSCA PARA MANDAR CORREO
|
|
Dim objOC As New ClsOC
|
|
For Each RowSP As DataRow In DtDetalle.FiltraParametros("", "", {"CveSubProyecto"}).Rows
|
|
If RowSP("CveSubProyecto").ToString.ToEntero > 0 Then
|
|
If objOC.GetEstatusUsuarios(-1, pCveEstatus, RowSP("CveSubProyecto").ToString.ToEntero, -1, CveEmpresaActual, -1, 1) Then
|
|
For Each Row As DataRow In objOC.DtResultados.Rows
|
|
'INCLUIR FILTRO DE LIMITE SUPERIOR E INFERIOR
|
|
If (IsDBNull(Row("LimiteInferior")) OrElse Row("LimiteInferior").ToString.ToDecimal < LblTotal.Text.ToDecimal) And (IsDBNull(Row("LimiteSuperior")) OrElse Row("LimiteSuperior").ToString.ToDecimal > LblTotal.Text.ToDecimal) Then
|
|
StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString)
|
|
CorreosCCPNombre.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("nombre").ToString)
|
|
End If
|
|
Next
|
|
End If
|
|
End If
|
|
Next
|
|
objOC.Dispose()
|
|
End If
|
|
End If
|
|
|
|
'MANDA CORREO A TODOS LOS USUARIOS INVOLUCRADOS
|
|
If DtHistorial IsNot Nothing Then
|
|
For Each Row As DataRow In DtHistorial.FiltraParametros("CveConceptoHistorialBitacora = 1").Rows
|
|
StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("correo").ToString)
|
|
CorreosCCPNombre.Add(GlobalDTUsuarios(Row("CveUsuario").ToString.ToEntero)(0)("nombre").ToString)
|
|
Next
|
|
End If
|
|
|
|
strOpciones.AppendFormat("Se ha cambiado la {0} #{1} al estatus <b>{2}</b><br><br>", TipoLargo, Folio, Estatus)
|
|
strOpciones.Append(" <div style='width: 400px'> ")
|
|
strOpciones.Append(" <fieldset> ")
|
|
strOpciones.Append(" <legend>Opciones</legend> ")
|
|
strOpciones.Append(" <table width=""350px""> ")
|
|
|
|
'verifico los permisos según el estatus
|
|
'Const Sitio As String = "rm:90/"
|
|
Dim StrSupervisa As String = "" '= String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=SUPERVISAR&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, CveUsuario, Now)))
|
|
Dim StrAutoriza As String = "" '= String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=AUTORIZAR&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, CveUsuario, Now)))
|
|
Dim StrCancela As String = "" ' = String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=CANCELAR&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, UsuarioActual.CveUsuario, Now)))
|
|
Dim StrReqCotiza As String = "" '= String.Format("http://{0}/OC/RegOp.aspx?p={1}", Sitio, Encripta(String.Format("Op=REQCONTIZACION&Oc={0}&CveUsuario={1}&Fecha={2}", CveOrdenCompra, CveUsuario, Now)))
|
|
|
|
'si se acaba de solicitar y se necesita supervisar
|
|
If pCveEstatus = 1 Then strOpciones.AppendFormat(" <tr><td><a href=""{0}""><span style=""font-size: 15px""><strong>Supervisar</strong></span></a></td></tr> ", StrSupervisa)
|
|
'si se acaba de supervisar y se necesita autorizar
|
|
If pCveEstatus = 2 Then
|
|
strOpciones.AppendFormat(" <tr><td><a href=""{0}""><span style=""font-size: 15px""><strong>Autorizar</strong></span></a></td></tr> ", StrAutoriza)
|
|
strOpciones.AppendFormat(" <tr><td><a href=""{0}""><span style=""font-size: 15px""><strong> Autorizar con Cotización</strong></span></a></td></tr> ", StrReqCotiza)
|
|
End If
|
|
'si se quiere cancelar
|
|
strOpciones.AppendFormat(" <tr><td><a href=""{0}""><span style=""font-size: 15px""><strong>Cancelar</strong></span></a></td></tr> ", StrCancela)
|
|
|
|
strOpciones.Append(" </table> ")
|
|
strOpciones.Append(" </fieldset> ")
|
|
strOpciones.Append(" </div> ")
|
|
|
|
'NOTIFICA QUE OCS SE GENERARON
|
|
Dim OCsGeneradas As New StringBuilder
|
|
If FolioOCGeneradas.Count > 0 Then
|
|
OCsGeneradas.Append("Se generaron la(s) siguiente(s) orden(es) de compra: ")
|
|
For Each FolioOC In FolioOCGeneradas
|
|
OCsGeneradas.Append($" #<b>{FolioOC}</b> ")
|
|
Next
|
|
End If
|
|
|
|
Dim Body As String = GeneraCorreo(CveOrdenCompra, OCsGeneradas.ToString) 'strOpciones.ToString) 'genero los datos de la OC
|
|
Try
|
|
ViewState("Para") = Para
|
|
ViewState("ArrayCC") = StrCorreos
|
|
ViewState("Asunto") = String.Format("SIG - La {0} #{1} cambió de estatus.", TipoLargo, Folio)
|
|
ViewState("RutaPDF") = ""
|
|
ViewState("Body") = Body
|
|
Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo)
|
|
Hilo.Start()
|
|
Catch ex As Exception
|
|
If NotificarAlert = True Then OnError("Ocurrió error al mandar MAIL por cambio de Estatus", ex)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
#Region " ENVIAR CORREO USUARIO ASIGNADO "
|
|
|
|
Protected Sub MandaCorreoUsuario(Para As String, CorreosCCP As String, CorreosCCPNombre As List(Of String), Optional NotificarAlert As Boolean = True)
|
|
Dim strOpciones As New StringBuilder
|
|
Dim Body As String = GeneraCorreo(CveOrdenCompra, "") 'strOpciones.ToString) 'genero los datos de la OC
|
|
|
|
Try
|
|
ViewState("Para") = Para
|
|
ViewState("ArrayCC") = CorreosCCP
|
|
ViewState("Asunto") = String.Format("SIG - La {0} #{1} se le ha asignado", TipoLargo, Folio)
|
|
ViewState("RutaPDF") = ""
|
|
ViewState("Body") = Body
|
|
|
|
'ViewState("ArrayCCNombre") = CorreosCCPNombre.Distinct()
|
|
|
|
Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo)
|
|
Hilo.Start()
|
|
' If NotificarAlert = True Then Alert("Se enviara correo por cambio de Estatus")
|
|
Catch ex As Exception
|
|
If NotificarAlert = True Then OnError("Ocurrió error al mandar MAIL por cambio de Estatus", ex)
|
|
End Try
|
|
End Sub
|
|
|
|
Protected Sub CorreoUsuarioAsignado(pCveEstatus As Integer, Estatus As String, Optional NotificarAlert As Boolean = True)
|
|
If CBool(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("Estatus").ToString) Then
|
|
'Dim CorreosCCP As New List(Of String)
|
|
Dim StrCorreos As New StringBuilder
|
|
Dim CorreosCCPNombre As New List(Of String)
|
|
Dim Para As String = GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString
|
|
|
|
'SI TIENE ASIGNADO TAMBIEN SE LE MANDA CORREO
|
|
If DdlUsuariosAsignado.SelectedValue.ToEntero > 0 Then
|
|
'CorreosCCP.Add(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString)
|
|
StrCorreos.AppendFormat("{0};", GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("correo").ToString)
|
|
CorreosCCPNombre.Add(GlobalDTUsuarios(DdlUsuariosAsignado.SelectedValue.ToEntero)(0)("nombre").ToString)
|
|
End If
|
|
|
|
Dim strOpciones As New StringBuilder
|
|
|
|
|
|
strOpciones.AppendFormat("La orden de Compra {0} se le ha asignado br><br>", Folio)
|
|
|
|
strOpciones.Append(" <div style='width: 400px'> ")
|
|
strOpciones.Append(" <fieldset> ")
|
|
strOpciones.Append(" <legend>Opciones</legend> ")
|
|
strOpciones.Append(" <table width=""350px""> ")
|
|
|
|
strOpciones.AppendFormat(" <tr><td><a href=""{0}OC/OC=""{1}"" ""><span style=""font-size: 15px""><strong>Ir a OC</strong></span></a></td></tr> ", UrlSitio, CveOrdenCompra)
|
|
|
|
|
|
strOpciones.Append(" </table> ")
|
|
strOpciones.Append(" </fieldset> ")
|
|
strOpciones.Append(" </div> ")
|
|
|
|
MandaCorreoUsuario(Para, StrCorreos.ToString, CorreosCCPNombre, NotificarAlert)
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " enviarCorreoOrdenDeCompra "
|
|
Protected Sub EnviarCorreoOrdenCompra(CveOrdenCompra As Integer)
|
|
Dim CveProveedor As Integer
|
|
Dim strOpciones As New StringBuilder
|
|
|
|
strOpciones.AppendFormat("Se ha Generado una Orden de Compra.<br><br>")
|
|
|
|
Dim Body As String = GeneraCorreoProveedor(CveOrdenCompra, CveProveedor) 'genero los datos de la OC
|
|
Dim Correo As String = ""
|
|
'si tiene seleccionada una sucursal, obtengo su correo, sino tiene especificado tomo el correo principal del proveedor
|
|
If DdlProveedorSucursal.SelectedValue.ToEntero > 0 Then Correo = GlobalDTProveedorSucursales(CveProveedor, UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo", $"CveProveedorSucursal={DdlProveedorSucursal.SelectedValue}")
|
|
If Correo = "" Then Correo = GlobalDTCompProveedores(CveEmpresaActual).FiltraParametros($"CveProveedor = {CveProveedor}")(0)("ContactoMail").ToString
|
|
|
|
Try
|
|
Dim File As Byte() = NewGeneraBytesOC(CveOrdenCompra)
|
|
Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo2(File, Correo, "SIG - Se Genero una Orden de Compra", Body))
|
|
Hilo.Start()
|
|
Catch ex As Exception
|
|
OnError("Ocurrió error al mandar MAIL de Orden de Compra", ex)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
Private Function GeneraCorreo(CveOrdenCompra As Integer, Opciones As String, Optional IncluirDetalles As Boolean = True, Optional Bitacora As String = "", Optional LigaAdjunto As String = "") As String
|
|
Dim strBody As New StringBuilder
|
|
Dim objOC As New ClsOC
|
|
|
|
If objOC.GetOC(CveOrdenCompra, CveEmpresaActual) Then
|
|
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:center; 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:center; ")
|
|
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(" .Verde {color: #00CC00;} ")
|
|
strBody.Append(" .Negro {color: #000000;} ")
|
|
strBody.Append(" .Rojo {color: #FF0000;} ")
|
|
strBody.Append(" </style> ")
|
|
strBody.Append("</head> ")
|
|
strBody.Append("<body> ")
|
|
strBody.AppendFormat(" <div id=""C_divOC"" style=""width: 550px""> <fieldset> <legend><b>Datos {0}</b></legend> ", TipoLargo)
|
|
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Folio:</td><td style=""width: 125px""><b><a href=""{0}OC/OC.aspx?OC={1}"">{2}<a></b></td><td style=""width: 90px""> Estatus: </td><td><b>{3}</b></td> ", UrlSitio, objOC.CveOrdenCompra, objOC.Folio, objOC.Estatus)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Empresa:</td><td colspan=""3""><b>{0}</b></td> ", objOC.Empresa)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 20px""> ")
|
|
strBody.AppendFormat(" <td>Descripción:</td><td colspan='3'><b>{0}</b></td> ", objOC.Descripcion)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 20px""> ")
|
|
strBody.AppendFormat(" <td>Justificación</td><td colspan=""3""><textarea name=""ctlTJ"" rows=""5"" cols=""20"" readonly=""readonly""id=""ctlTJ"" style=""width: 300px;"">{0}</textarea></td> ", objOC.Justificacion)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
'Cargo el detalle
|
|
If IncluirDetalles = True Then
|
|
strBody.Append(" <div style='width: 550px'> ")
|
|
strBody.Append(" <fieldset> ")
|
|
strBody.Append(" <legend>Opciones</legend> ")
|
|
strBody.Append(" <table width=""550px""> <tr style='background-color:gray;color:White;font-family:Verdana;font-size:10px;text-align:center;vertical-align:middle;font-weight:bold;height:20px;text-decoration:none;'><th scope='col' style='width: 50px'>Cantidad</th><th scope='col' style='width: 50px'>Unidad</th><th scope='col' style='width: 225px'>Producto o Servicio</th>")
|
|
strBody.AppendFormat(" <th scope='col' style='width: 100px'>Observacion</th><th scope='col' style='width: 150px'>{0}</th><th scope='col' style='width: 85px'>Activo Fijo</th><th scope='col' style='width: 70px'>P.U.</th><th scope='col' style='width: 85px'>Total</th></tr>", If(CveEmpresaActual = 66, "Proyecto", "Proyecto<br>SubProyecto"))
|
|
|
|
'verifico los permisos según el estatus
|
|
|
|
If objOC.GetOrdenesDetalle(CveOrdenCompra) Then
|
|
For Each dr As DataRow In objOC.DtResultados.Rows
|
|
strBody.AppendFormat("<tr class='Texto'><td>{0}</td><td>{1}</td><td><span style='width: 220px; border-bottom: 1px solid gray;'>{2}</span><br>{3}</td><td>{4}</td><td style='width:150px;'><span style='width: 150px; border-bottom: 1px solid gray;'>{5}</span><br>{6}</td><td>{7}</td><td align='right'>{8}</td><td align='right'>{9}</td></tr>",
|
|
dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("Clasificacion"), dr("PS"), dr("Observacion"), dr("Proyecto"), If(CveEmpresaActual = 66, "", dr("SubProyecto")), dr("Codigo"), If(Not IsDBNull(dr("Importe")), FormatCurrency(dr("Importe").ToString), ""), If(Not IsDBNull(dr("Total")), FormatCurrency(dr("Total").ToString), ""))
|
|
|
|
Next
|
|
End If
|
|
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
Else
|
|
strBody.Append(" <div style='width: 550px; height: 50px'> ")
|
|
strBody.Append(" <fieldset> ")
|
|
strBody.Append(" <legend>Bitacora</legend> ")
|
|
strBody.Append(" <table width=""550px""> ")
|
|
strBody.Append(" <tr> ")
|
|
strBody.Append(" <td> ")
|
|
strBody.AppendFormat(" {0}", Bitacora)
|
|
strBody.Append(" </td> ")
|
|
If LigaAdjunto <> "" Then strBody.AppendFormat(" <tr><td>El usuario agrego el siguiente archivo: <a href='{0}'>Adjunto</a></td></tr>", LigaAdjunto)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
End If
|
|
'strBody.Append(Opciones)
|
|
strBody.Append(Opciones)
|
|
strBody.Append("</body></html>")
|
|
End If
|
|
|
|
objOC.Dispose()
|
|
|
|
Return strBody.ToString
|
|
End Function
|
|
Private Function GeneraCorreoProveedor(CveOrdenCompra As Integer, ByRef CveProveedor As Integer) As String
|
|
Dim strBody As New StringBuilder
|
|
Dim objOC As New ClsOC
|
|
|
|
objOC.GetOC(CveOrdenCompra, CveEmpresaActual)
|
|
CveProveedor = objOC.CveProveedor
|
|
Dim DttDetalle As DataTable = Nothing
|
|
If objOC.GetOrdenesDetalle(CveOrdenCompra) Then
|
|
DttDetalle = objOC.DtResultados
|
|
End If
|
|
|
|
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:center; 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:center; ")
|
|
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(" .Verde {color: #00CC00;} ")
|
|
strBody.Append(" .Negro {color: #000000;} ")
|
|
strBody.Append(" .Rojo {color: #FF0000;} ")
|
|
strBody.Append(" </style> ")
|
|
strBody.Append("</head> ")
|
|
strBody.Append("<body> ")
|
|
strBody.AppendFormat(" <div id=""C_divOC"" style=""width: 550px""> <fieldset> <legend><b>Datos de Orden de Compra</b></legend> ")
|
|
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Folio:</td><td style=""width: 125px""><b>{0}</b></td><td style=""width: 90px""> Estatus: </td><td><b>{1}</b></td> ", objOC.Folio, objOC.Estatus)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Empresa:</td><td colspan=""3""><b>{0}</b></td> ", objOC.Empresa)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 20px""> ")
|
|
strBody.AppendFormat(" <td>Descripción:</td><td colspan='3'><b>{0}</b></td> ", objOC.Descripcion)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
'Cargo el detalle
|
|
|
|
strBody.Append(" <div style='width: 550px'> ")
|
|
strBody.Append(" <fieldset> ")
|
|
strBody.Append(" <legend>Opciones</legend> ")
|
|
strBody.Append(" <table width=""550px""> <tr style='background-color:gray;color:White;font-family:Verdana;font-size:10px;text-align:center;vertical-align:middle;font-weight:bold;height:20px;text-decoration:none;'><th scope='col' style='width: 50px'>Cantidad</th><th scope='col' style='width: 50px'>Unidad</th><th scope='col' style='width: 225px'>Descripción</th>")
|
|
strBody.Append(" <th scope='col' style='width: 100px'>Observación</th><th scope='col' style='width: 85px'>Precio</th></tr>")
|
|
|
|
'verifico los permisos según el estatus
|
|
|
|
For Each dr As DataRow In DttDetalle.Rows
|
|
strBody.AppendFormat("<tr class='Texto'><td style='width:50px;'>{0}</td><td style='width:50px;'>{1}</td><td align='left' style='width:225px;'>{2}</td><td style='width:100px;'>{3}</td><td style='width:85px;'>{4}</td></tr>",
|
|
dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS"), dr("Obs"), dr("Importe").ToString.FormatoNumero)
|
|
|
|
Next
|
|
|
|
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
strBody.Append("</body></html>")
|
|
|
|
objOC.Dispose()
|
|
|
|
Return strBody.ToString
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "Correo Eliminar Cotización"
|
|
Private Function GeneraCorreoEliminarCotizacion(CveCotizacion As Integer, Motivo As String) As String
|
|
Dim ObjCotizacion As New ClsOC
|
|
ObjCotizacion.GetCotizaciones(CveOrdenCompra, CveCotizacion)
|
|
Dim strBody As New StringBuilder
|
|
'strBody.Append("<br/ ><p>Motivo de Eliminación</p>")
|
|
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:center; 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:center; ")
|
|
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:center; ")
|
|
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.AppendFormat("<div class='Titulos'>Por medio del presente correo electrónico se notifica que se ha eliminado la cotización con folio {0}</div><br>", ObjCotizacion.Folio)
|
|
strBody.Append("<div class='Contenido2' style='display: table!important'>")
|
|
strBody.AppendFormat(" <div id=""C_divOC"" style=""width: 550px""> <fieldset> <legend><b>Datos {0}</b></legend> ", "Cotización")
|
|
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td style=""width: 90px""> Empresa:</td><td colspan=""3""><b>{0}</b></td> ", ObjCotizacion.Empresa)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" <tr style=""height: 22px""> ")
|
|
strBody.AppendFormat(" <td>Fecha Eliminación:</td><td><b>{0}</b></td><td> </td><td><b> </b></td> ", Now.ToShortDateString)
|
|
strBody.Append(" </tr> ")
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
'Cargo el detalle
|
|
strBody.Append(" <div style='width: 550px'> ")
|
|
strBody.Append(" <fieldset> ")
|
|
strBody.Append(" <legend>Productos a Cotizar</legend> ")
|
|
strBody.Append(" <table width=""550px""> <tr style='background-color:gray;color:White;font-family:Verdana;font-size:10px;text-align:center;vertical-align:middle;font-weight:bold;height:20px;text-decoration:none;'><th scope='col' style='width: 50px'>Cantidad</th><th scope='col' style='width: 50px'>Unidad</th><th scope='col' style='width: 225px'>Descripción</th>")
|
|
strBody.Append(" </tr>")
|
|
|
|
Dim dtConceptos As DataTable = Nothing
|
|
If ObjCotizacion.GetOrdenesDetalle(CveOrdenCompra) Then
|
|
dtConceptos = ObjCotizacion.DtResultados
|
|
End If
|
|
|
|
For Each dr As DataRow In dtConceptos.Rows
|
|
strBody.AppendFormat("<tr class='Texto'><td style='width:50px;'>{0}</td><td style='width:50px;'>{1}</td><td align='left' style='width:225px;'>{2}</td></tr>", dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS")) ', dr("Clasificacion"), dr("Codigo"))
|
|
Next
|
|
'For Each dr As GridViewRow In gvCotizaciones.Rows
|
|
' strBody.AppendFormat("<tr class='Texto'><td style='width:50px;'>{0}</td><td style='width:50px;'>{1}</td><td align='left' style='width:225px;'>{2}</td></tr>", dr.Cells(0).ToString.FormatoNumero, dr.Cells(1).ToString, dr.Cells(2).ToString) ', dr("Clasificacion"), dr("Codigo"))
|
|
'Next
|
|
|
|
strBody.Append(" </table> ")
|
|
strBody.Append(" </fieldset> ")
|
|
strBody.Append(" </div> ")
|
|
strBody.AppendFormat("<div><p><b>Motivo de eliminación:</b></p></div>", Motivo)
|
|
strBody.AppendFormat("<div><p>{0}</p></div>", Motivo)
|
|
strBody.Append("</div>")
|
|
strBody.Append("</body></html>")
|
|
ObjCotizacion.Dispose()
|
|
Return strBody.ToString
|
|
End Function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
#Region " CARGAR DESDE EXCEL "
|
|
|
|
Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
|
|
If TxtExcel.getfiles().Archivos.Count > 0 Then
|
|
Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
|
|
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch
|
|
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
|
|
CargarArchivo(Directorio, file.filename, Tipo)
|
|
Else
|
|
Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError)
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String)
|
|
|
|
Dim dt As New DataTable
|
|
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 = "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(1).ColumnName = "Código" Then
|
|
Alert("El nombre de la segunda columna debe ser 'Código'.Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(2).ColumnName = "Código de Barras" Then
|
|
Alert("El nombre de la tercera columna debe ser 'Código de Barras'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(3).ColumnName = "Producto/Servicio" Then
|
|
Alert("El nombre de la cuarta columna debe ser 'Producto/Servicio'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(4).ColumnName = "Proyecto" Then
|
|
Alert("El nombre de la quinta columna debe ser 'Proyecto'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(5).ColumnName = "Observaciones" Then
|
|
Alert("El nombre de la sexta columna debe ser 'Observaciones'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(6).ColumnName = "PU" Then
|
|
Alert("El nombre de la séptima columna debe ser 'P.U'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(7).ColumnName = "Descuento" Then
|
|
Alert("El nombre de la octava columna debe ser 'Descuento'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
|
|
dt.TableName = "Datos"
|
|
|
|
If Not ErrorArchivo Then
|
|
NumRow = 0
|
|
Dim RowNoEncontrados As String = String.Empty
|
|
Dim NumAgregados As Integer = 0
|
|
For Each Row As DataRow In dt.Rows
|
|
Dim Cantidad As String = Row("Cantidad").ToString
|
|
Dim Codigo As String = Row("Código").ToString.Trim.ToUpper
|
|
Dim CodigoBarras As String = Row("Código de Barras").ToString.Trim.ToUpper
|
|
Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper
|
|
Dim Proyecto As String = Row("Proyecto").ToString.Trim.ToUpper
|
|
Dim Observaciones As String = Row("Observaciones").ToString
|
|
Dim PrecioUnitario As String = Row("PU").ToString
|
|
Dim Descuento As Double = Row("Descuento").ToString.ToDouble * Cantidad.ToDouble 'RMF, cambio a multiplicar por cantidad 2018.04.21
|
|
Dim CvePS As Integer = 0
|
|
Dim CveProyecto As Integer = 0
|
|
Dim CveSubProyecto As Integer = 0
|
|
Dim Existe As Boolean = False
|
|
Dim DrProyecto As DataRow
|
|
Dim SubProyecto As String = ""
|
|
|
|
NumRow = NumRow + 1
|
|
|
|
If Proyecto <> "" Then
|
|
Dim DtSubProyecto As DataTable = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
|
|
DtSubProyecto.CaseSensitive = False
|
|
DrProyecto = DtSubProyecto.FiltroPrimero($"(SubProyecto) = '{Proyecto}'")
|
|
If DrProyecto IsNot Nothing Then
|
|
CveSubProyecto = DrProyecto("CveSubProyecto").ToString.ToEntero
|
|
CveProyecto = DrProyecto("CveProyecto").ToString.ToEntero
|
|
SubProyecto = DrProyecto("SubProyecto").ToString
|
|
End If
|
|
Else
|
|
CveProyecto = -1
|
|
CveSubProyecto = -1
|
|
End If
|
|
|
|
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> - En la fila " & NumRow & " no se especificó código, código de barras ó descripción."
|
|
End If
|
|
|
|
|
|
If Not CvePS > 0 Then
|
|
Continue For
|
|
End If
|
|
|
|
'Agregar PS
|
|
If DtDetalle IsNot Nothing Then
|
|
Dim dr As DataRow = DtDetalle.NewRow
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("")
|
|
If DrPS Is Nothing Then
|
|
Alert("Ocurrió un error al cargar la información de los productos del archivo. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Continue For
|
|
End If
|
|
Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble
|
|
Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble
|
|
Dim PS As String = DrPS("PS").ToString
|
|
Dim TotalPS As Double = If(PrecioUnitario.ToDouble > 0, PrecioUnitario.ToDouble * Cantidad.ToDouble - Descuento, 0)
|
|
Dim CveUnidadMedida As Integer = DrPS("CveUnidadMedida").ToString.ToEntero
|
|
Dim UM As String = DrPS("UnidadMedida").ToString
|
|
Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble
|
|
'If IvaPS = -1 Then
|
|
' Dim Drr As DataRow = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero())(0)
|
|
' IvaPS = Drr("IVA").ToString().ToDouble()
|
|
'End If
|
|
Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble
|
|
Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0)
|
|
Dim CveClasificacion As Integer = DrPS("CveClasificacion").ToString.ToEntero
|
|
Dim Clasificacion As String = DrPS("Clasificacion").ToString
|
|
Dim CveActivoFijo = HdnCveActivoFijo.Value.ToEntero
|
|
Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero)
|
|
Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero)
|
|
Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100
|
|
|
|
AddPS(Cantidad, CvePS, PS, Observaciones, PrecioUnitario.ToDouble, Descuento, TotalPS, CveUnidadMedida, IvaPS, IEPSPS, IEPSPSIVA, CveClasificacion, UM, Clasificacion, CveSubProyecto, Proyecto, CveSubProyecto, SubProyecto, LblCodigo.Text,
|
|
CveActivoFijo, 0, CveOrdenCompraDetalle, CveOrdenCompra, IdCuentaPorEjercer, IdCuentaComprometido, DdlACGeneral1.SelectedValue.ToEntero, DdlACGeneral2.SelectedValue.ToEntero, DdlACGeneral3.SelectedValue.ToEntero, DdlACGeneral4.SelectedValue.ToEntero,
|
|
DdlACGeneral5.SelectedValue.ToEntero, RetIVA, RetISR)
|
|
|
|
End If
|
|
Next
|
|
|
|
|
|
'Cargo el GridView
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
CargaSuperior()
|
|
CargaDatosDetalles()
|
|
UPPDetalle.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 " & DtDetalle.Rows.Count & " 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, Estatus:=1).FiltroPrimeroValor("CvePS", Opt & " = '" & Valor & "'").ToString.ToEntero
|
|
If CvePS > 0 Then
|
|
StrReturn = "True|" & CvePS.ToString
|
|
Else
|
|
|
|
StrReturn = "False| - No se encontró " & Valor & " en la fila " & NumRow & ", columna " & Opt
|
|
End If
|
|
Return StrReturn
|
|
End Function
|
|
|
|
Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click, LbDescargarExcel.Click
|
|
Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\FormatoOC.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
|
|
|
|
|
|
#End Region
|
|
|
|
#Region " CREAR APARTIR DE "
|
|
Private Sub ActivaCrearApartirDe()
|
|
If EsNuevo Then
|
|
Exit Sub
|
|
End If
|
|
|
|
BtnCrearApartirDe.Visible = True
|
|
|
|
uppOpciones.Update()
|
|
End Sub
|
|
Protected Sub BtnCrearApartirDe_Click(sender As Object, e As System.EventArgs) Handles BtnCrearApartirDe.Click
|
|
EsCreaApartirDe = True
|
|
'Habilito los Controles
|
|
CboE.Enabled = True
|
|
CboE.BackColor = Drawing.Color.White
|
|
'CboE.SelectedIndex = 0
|
|
CboE_SelectedIndexChanged(CboE, EventArgs.Empty)
|
|
|
|
|
|
GvD.Columns(9).Visible = True 'Permitir la edicion
|
|
lblTipoPadreHijo.Visible = False
|
|
GvD.Columns(10).Visible = False
|
|
LblCompra.Visible = False
|
|
GvD.Columns(11).Visible = False
|
|
|
|
ChkCotizacion.Visible = True
|
|
ChkCotizacion.Enabled = True
|
|
TxtFolioAdicional.Enabled = True
|
|
DdlPrioridad.Enabled = True
|
|
txtobsprioridad.Enabled = True
|
|
TxtDescrip.Enabled = True
|
|
TxtJustificacion.Enabled = True
|
|
TxtFechaEstimadaEntrega.Enabled = True
|
|
txtLugarEntrega.Enabled = True
|
|
TxtLugarEntregaDirecta.Enabled = True
|
|
|
|
gvCotizaciones.Enabled = True
|
|
DdlProveedores.Enabled = True
|
|
DdlUsoCFDI.Enabled = True
|
|
'DdlIVA.Enabled = True
|
|
|
|
ImgCambiaProv.Visible = False
|
|
TrPendientes.Visible = False
|
|
ImgCambiaClienteVendedor.Visible = False
|
|
|
|
Ddlcliente.Enabled = True
|
|
DdlVendedor.Enabled = True
|
|
ChkEntregaDirecta.Enabled = True
|
|
|
|
'Habilito Controles de PS
|
|
TxtCant.Enabled = True
|
|
DdlClasificacion.Enabled = True
|
|
DdlP2.ddl.Enabled = True
|
|
DdlP2.Enabled = True
|
|
CboUnidadMedida.Enabled = True
|
|
TxtObsPS.Enabled = True
|
|
DdlProyecto.Enabled = True
|
|
DdlSubProyecto.Enabled = True
|
|
txtPrecioUnitario.Enabled = True
|
|
DdlIVA.Enabled = True
|
|
DdlMoneda.Enabled = True
|
|
LbAgregar.Enabled = True
|
|
|
|
'Limpiar datos generales
|
|
'TxtDescrip.Text = ""
|
|
'TxtJustificacion.Text = ""
|
|
TxtFechaEstimadaEntrega.Text = ""
|
|
'txtLugarEntrega.Text = ""
|
|
InicializarValoresCrearApartirDe()
|
|
|
|
'Reseteo los GVs
|
|
gvEstatus.DataSource = Nothing
|
|
gvEstatus.DataBind()
|
|
fsSeguimiento.Visible = False
|
|
GVH.DataSource = Nothing
|
|
GVH.DataBind()
|
|
fsHistorial.Visible = False
|
|
GvEB.DataSource = Nothing
|
|
GvEB.DataBind()
|
|
|
|
'Cargo Folio, Usuario y Fecha nuevos
|
|
TxtFecha.Text = Now.ToShortDateString
|
|
lblNombreUsuario.Text = UsuarioActual.Nombre
|
|
CargaFolios()
|
|
BtnGuardar.Enabled = True
|
|
EsNuevo = True
|
|
|
|
For Each Row As GridViewRow In GvD.Rows
|
|
Row.Cells(8).Enabled = True
|
|
Row.Cells(9).Enabled = True
|
|
Row.FCLinkButton("imgD").Visible = True
|
|
Row.FCLinkButton("imgE").Visible = True
|
|
Next
|
|
GvD.Enabled = True
|
|
|
|
BtnCancelarPrevio.Visible = False
|
|
BtnCrearApartirDe.Visible = False
|
|
|
|
|
|
uppSeguimientoEstatus.Update()
|
|
UPProv.Update()
|
|
UPPEmp.Update()
|
|
UPPDetalle.Update()
|
|
uppEstatus.Update()
|
|
uppHistorial.Update()
|
|
UPEventoBitacora.Update()
|
|
UpIvas.Update()
|
|
uppOpciones.Update()
|
|
UpVendedor.Update()
|
|
|
|
End Sub
|
|
Private Sub InicializarValoresCrearApartirDe()
|
|
ViewState("NumCotizacionesGanadoras") = 0
|
|
ViewState("TotalCotizacionesGanadoras") = 0
|
|
ViewState("CveEstatus") = -1
|
|
ViewState("CveEstatusSiguiente") = -1
|
|
EditarOC = False
|
|
CveEstatusFinalOK = -2
|
|
'BtnCancelarPrevio.Disabled = True
|
|
BtnCancelarPrevio.Enabled = False
|
|
Folio = 0
|
|
'ViewState("ArrayCCNombre") = ""
|
|
ViewState("ArrayCC") = ""
|
|
ViewState("EjercicioAC") = -1
|
|
ViewState("CveUsuario") = -1
|
|
CveVenta = -1
|
|
TieneVenta = -1
|
|
TieneCompraInv = -1
|
|
CveCompra = -1
|
|
CveMovimientoAlmacenVenta = -1
|
|
IDPolizaPresupuestal = -1
|
|
|
|
Dim drE As DataRow = GlobalDTOCEstatus(CveEmpresaActual).FiltraParametros(String.Format("Tipo = 'OC' AND TipoTermino = 3")).FiltroPrimero("")
|
|
If drE IsNot Nothing Then ViewState("CveEstatusInicialOC") = drE("CveEstatus").ToString.ToEntero
|
|
|
|
ViewState("LigaOCs") = ""
|
|
ViewState("CveOCGeneradas") = New List(Of Integer)
|
|
ViewState("FolioOCGeneradas") = New List(Of Integer)
|
|
ViewState("IDPolizasGeneradas") = New List(Of Integer)
|
|
ViewState("FoliosPolizas") = New List(Of Integer)
|
|
Session("FileUpload") = ""
|
|
Session("FileExtension") = ""
|
|
Session("FileFolder") = ""
|
|
TipoOS = False
|
|
RequiereSubProyecto = If(CveEmpresaActual = 48, False, True)
|
|
txtPrecioUnitario.Attributes.Add("onKeyUp", "obtenertotal();")
|
|
TxtCant.Attributes.Add("onKeyUp", "obtenertotal();")
|
|
TxtDescrip.Attributes.Add("onKeyUp", String.Format("SetText({0}, {1})", TxtDescrip.ClientID, TxtJustificacion.ClientID))
|
|
Dim script As String = "obtenertotal();"
|
|
ScriptManager.RegisterStartupScript(Me, GetType(Page), "anioactual", script, True)
|
|
VerificaPresupuesto = False
|
|
RVSubProyecto.Enabled = If(RequiereSubProyecto = True, True, False)
|
|
GvD.Columns(10).Visible = False
|
|
CargaComboCFDI()
|
|
CargaMonedas()
|
|
'CargaClasificaciones()
|
|
'CargaUnidadesMedida()
|
|
BtnCancelar.Attributes.Add("disabled", "disabled")
|
|
TxtCancelar.Attributes.Add("onKeyUp", "fncCan(this)")
|
|
trContabilizada.Visible = False
|
|
HplCompraContabilizada.Text = ""
|
|
CargaTipoActivoFijo()
|
|
DrEliminados = New ArrayList
|
|
|
|
DdlSAUsuario.DataSource = GlobalDTUsuarios(-1, CveEmpresaActual)
|
|
DdlSAUsuario.DataBind()
|
|
|
|
Dim CveProveedorPrevio As String = DdlProveedores.SelectedValue
|
|
Dim CveProveedorSucursalPrevio As String = DdlProveedorSucursal.SelectedValue
|
|
CargaProveedores()
|
|
DdlProveedores.ddl.SelectedValueExist(CveProveedorPrevio)
|
|
DdlProveedores_SelectedIndexChanged(DdlProveedores, EventArgs.Empty)
|
|
If DdlProveedorSucursal.Visible Then
|
|
DdlProveedorSucursal.SelectedValueExist(CveProveedorSucursalPrevio)
|
|
DdlProveedorSucursal.Enabled = True
|
|
DdlProveedorContacto.Enabled = True
|
|
End If
|
|
|
|
CargarOptionAnticipos()
|
|
HlAgregarExcel.Visible = True
|
|
LbDescargarExcel.Visible = True
|
|
|
|
CargaEstatusInicialFinal()
|
|
CargaEstatusUsuarios()
|
|
CargaEstatusOC()
|
|
|
|
'Estatus Default 66
|
|
If CveEmpresaActual = 66 Then
|
|
CboE.SelectedValueExist(18)
|
|
End If
|
|
|
|
|
|
TxtFecha.Text = Now.ToString("dd/MM/yyyy")
|
|
lblNombreUsuario.Text = UsuarioActual.Nombre
|
|
ViewState("CveOrdenCompra") = 0
|
|
CargaFolios()
|
|
'BtnCancelarPrevio.Disabled = True
|
|
BtnCancelarPrevio.Enabled = False
|
|
|
|
If CveEstatusInicial = -1 Then Alert("No tiene configurado un Estatus Inicial", TipoMensaje.MsgAdvertencia) : BtnGuardar.Enabled = False
|
|
|
|
PnlProveedor.Visible = True : UPProv.Update()
|
|
|
|
'12/04/2018
|
|
'DdlIVA.Visible = True
|
|
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
ActivaAC()
|
|
End If
|
|
|
|
hplAgregarCotizacion.Visible = False
|
|
hplEnviarCorreo.Visible = False
|
|
|
|
'ASIGNA ESTATUS OC
|
|
CboE_SelectedIndexChanged(New Object, New EventArgs)
|
|
|
|
'Actualiza Menu Acciones
|
|
HLImprimir.Visible = False
|
|
HLImprimirCotizacion.Visible = False
|
|
|
|
generarAnticipo.Visible = False
|
|
HLGenerarVenta.Visible = False
|
|
HLGenerarRecepcion.Visible = False
|
|
|
|
BtnSolicitudAnticipo.Visible = False
|
|
HlAgregarExcel.Visible = True
|
|
LbDescargarExcel.Visible = True
|
|
BtnGeneraContrato.Visible = True : CargaClientesContrato()
|
|
|
|
LbVerificarExistencia.Visible = True
|
|
LnkAgregarGuia.Visible = False
|
|
|
|
HlEvento.Visible = False
|
|
|
|
UpAccionesBitacora.Update()
|
|
UpContrato.Update()
|
|
UpAcciones.Update()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " ACTUALIZA OC "
|
|
Protected Sub ImgCambiaProv_Click(sender As Object, e As ImageClickEventArgs) Handles ImgCambiaProv.Click
|
|
Dim OC As New ClsOC
|
|
If OC.UpdateProveedorOrdenCompra(DdlProveedores.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, CveEmpresaActual) Then
|
|
CargaHistorial()
|
|
Alert("El cambio de proveedor se hizo correctamente", TipoMensaje.MsgInformacion)
|
|
End If
|
|
OC.Dispose()
|
|
End Sub
|
|
Protected Sub ImgCambiaClienteVendedor_Click(sender As Object, e As ImageClickEventArgs) Handles ImgCambiaClienteVendedor.Click
|
|
Dim OC As New ClsOC
|
|
If OC.UpdateClienteVendedorOrdenCompra(Ddlcliente.txtValue.Value.ToEntero, DdlVendedor.SelectedValue.ToEntero, CveOrdenCompra, UsuarioActual.CveUsuario, CveEmpresaActual) Then
|
|
CargaHistorial()
|
|
Alert("El cambio de cliente/vendedor se hizo correctamente", TipoMensaje.MsgInformacion)
|
|
End If
|
|
OC.Dispose()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "OC X SURTIR"
|
|
Private Sub lblPendientes_Click(sender As Object, e As EventArgs) Handles lblPendientes.Click
|
|
CargaOCxSurtir()
|
|
RegistraScript(String.Format("$('#{0}').modal();", "DivOCxSurtir"))
|
|
End Sub
|
|
Private Sub CargaOCxSurtir()
|
|
Dim ObjOC As New ClsOC
|
|
|
|
If ObjOC.GetPendietePorSurtirOC("-1", "-1", -1, -1, -1, -1, UsuarioActual.CveEmpresa, CveOrdenCompra) Then
|
|
GvDatosOCxSurtir.DataSource = ObjOC.DtResultados.FiltraParametros("CodigoPS <> ''")
|
|
Else
|
|
GvDatosOCxSurtir.DataSource = Nothing
|
|
End If
|
|
GvDatosOCxSurtir.DataBind()
|
|
|
|
ObjOC.Dispose()
|
|
UpDatosOCxSurtir.Update()
|
|
End Sub
|
|
Protected Sub LnkCompra_Click(sender As Object, e As EventArgs)
|
|
CargaOCVinculada(CType(sender, LinkButton).CommandArgument.ToEntero)
|
|
' Alert("Ok")
|
|
End Sub
|
|
Private Sub CargaOCVinculada(CveOCDetalle As Integer)
|
|
Dim ObjOC As New ClsOC
|
|
|
|
If ObjOC.GetOCVinculadasPendientes(CveOCDetalle) Then
|
|
GvOCVinculada.DataSource = ObjOC.DtResultados
|
|
Else
|
|
GvOCVinculada.DataSource = Nothing
|
|
End If
|
|
GvOCVinculada.DataBind()
|
|
|
|
ObjOC.Dispose()
|
|
UpBodyOCVinculada.Update()
|
|
UpOCVinculada.Update()
|
|
|
|
RegistraScript("$('#DivOCVinculada').modal('show');")
|
|
End Sub
|
|
|
|
Private Sub LbVerificarExistencia_Click(sender As Object, e As EventArgs) Handles LbVerificarExistencia.Click
|
|
'RegistraScript(String.Format("AbrirVentana('/Inventarios/PopUpExistenciasAlmacenDT.aspx?CveOrdenCompra={0}',800,547,'N');", CveOrdenCompra))
|
|
VerificarExistencias()
|
|
End Sub
|
|
Private Sub VerificarExistencias()
|
|
|
|
Dim tmpDTPS As DataTable = DtDetalle
|
|
Dim DTAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($" CveTipoAlmacen IN (1,9) ") 'AND CveSucursal = {CveSucursal}")
|
|
Dim objInv As New ClsInventarios
|
|
Dim consulta As New StringBuilder
|
|
|
|
|
|
consulta.Append(" ")
|
|
consulta.Append(" DECLARE @TEMP TABLE (CvePS INT, CveSubProyecto INT);")
|
|
For Each row As DataRow In tmpDTPS.Rows
|
|
consulta.AppendFormat("INSERT INTO @TEMP VALUES ({0},{1});", row("CvePS"), row("CveSubProyecto"))
|
|
Next
|
|
consulta.Append(" SELECT CASE WHEN LEN (ISNULL (P.Codigo, '')) = 0 THEN P.PS ELSE CONCAT( P.Codigo, ' - ', P.PS) END AS Producto, SUM(OCPR.Cantidad) AS [Por Recibir] ")
|
|
For Each row As DataRow In DTAlmacen.Rows
|
|
consulta.AppendFormat(" ,SUM(CASE WHEN CS.CveAlmacen={0} THEN CS.Existencia - ISNULL(INV.Cantidad,0) ELSE 0 END) AS [{1}] ", row("CveAlmacen"), row("Almacen"))
|
|
Next
|
|
consulta.Append(" FROM @TEMP T ")
|
|
consulta.Append(" INNER JOIN [ProductosServicios] P ON P.CvePS = T.CvePS ")
|
|
consulta.Append(" LEFT JOIN [Inv_ExistenciasProductos] CS ON P.CvePS = CS.CvePS ")
|
|
consulta.Append(" LEFT JOIN Vw_InventarioPorSurtir INV ON INV.CvePS = P.CvePS AND INV.CveAlmacen = CS.CveAlmacen ")
|
|
consulta.Append(" LEFT JOIN Vw_OC_PorRecibir OCPR ON OCPR.CvePS = P.CvePS AND OCPR.CveAlmacen = CS.CveAlmacen AND OCPR.CveSubProyecto = T.CveSubProyecto")
|
|
consulta.Append(" WHERE P.CveTipoPS = 2")
|
|
consulta.Append(" GROUP BY P.CvePS,P.Codigo,P.PS")
|
|
|
|
objInv.GetQuery(consulta.ToString())
|
|
|
|
' limpio los almacenes donde no tiene ningun producto existencia
|
|
For i = objInv.DtResultados.Columns.Count - 1 To 1 Step -1
|
|
If Not objInv.DtResultados.Columns(i).ColumnName.Contiene("CvePS", "PSCodigo") AndAlso objInv.DtResultados.SUM(String.Format("[{0}]", objInv.DtResultados.Columns(i).ColumnName)) = 0 Then
|
|
objInv.DtResultados.Columns.RemoveAt(i)
|
|
End If
|
|
Next
|
|
|
|
tmpDTPS = objInv.DtResultados
|
|
objInv.Dispose()
|
|
GvExist.DataSource = tmpDTPS
|
|
GvExist.DataBind()
|
|
|
|
'ORDENA HACIA LA DERECHA LAS CANTIDAD - OJO!! NO SE USO GV.COLUMNS.COUNT PORQUE LAS COLUMNAS GENERADAS EN BEHIND NO LAS RECONOCE
|
|
For index = 1 To tmpDTPS.Columns.Count - 1
|
|
For Each gvr As GridViewRow In GvExist.Rows
|
|
gvr.Cells(index).HorizontalAlign = HorizontalAlign.Right
|
|
Next
|
|
Next
|
|
|
|
'GvExist.Columns(1).Visible = False
|
|
'GvExist.Columns(2).HeaderText = "Producto"
|
|
RegistraScript("$('#DivModalExistenciaTotal').modal('show');")
|
|
UPExist.Update()
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
#Region " SUCURSAL PARA EXISTENCIAS DE DDLOST"
|
|
Protected Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
If UsuarioActual.Empresa.Funcionalidad(141) = "1" Or True Then
|
|
SeleccionaSucursal()
|
|
End If
|
|
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 Then
|
|
|
|
DdlCultivosCuadro.Items.Clear()
|
|
DdlCultivosCuadro.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($" CveSubProyecto = {DdlSubProyecto.SelectedValue}")
|
|
DdlCultivosCuadro.DataBind()
|
|
DdlCultivosCuadro.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
|
|
|
|
End If
|
|
|
|
|
|
End Sub
|
|
Private Sub CargaSucursal()
|
|
DdlSucursal.DataSource = GlobalDTSubProyectos(-1).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
|
|
DdlSucursal.DataBind()
|
|
DdlSucursal.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
DdlSucursal.SelectedValue = "-1"
|
|
|
|
SeleccionaSucursal()
|
|
|
|
End Sub
|
|
Private Sub SeleccionaSucursal()
|
|
If DdlSubProyecto.SelectedValue.ToEntero > 0 Then
|
|
DdlSucursal.SelectedValueExist(DdlSubProyecto.SelectedValue.ToEntero)
|
|
End If
|
|
DdlP2.Attributes.Remove("Data-cvesubproyecto")
|
|
DdlP2.Attributes.Add("Data-cvesubproyecto", DdlSucursal.SelectedValue)
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " TAB ALMACEN "
|
|
Private Sub InicializaMovtosAlmacen()
|
|
|
|
If CveOrdenCompra > 0 Then
|
|
Dim ObjInventarios As New ClsInventarios
|
|
|
|
If ObjInventarios.GetMovimientosOC(CveOrdenCompra, CveEmpresaActual) Then
|
|
TabAlmacen.Visible = True
|
|
If ObjInventarios.DtResultados.Rows.Count > 0 Then
|
|
GVInv.DataSource = ObjInventarios.DtResultados
|
|
If ObjInventarios.DtResultados.Rows.Count > 0 Then
|
|
DdlMoneda.Enabled = False
|
|
Dim TipoEstatusTerminado As String = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoTermino", String.Format("CveEstatus = {0}", CboE.SelectedValue))
|
|
If TipoEstatusTerminado = "3" Then
|
|
LnkCambiarMoneda.Visible = True
|
|
End If
|
|
End If
|
|
End If
|
|
GVInv.DataBind()
|
|
End If
|
|
|
|
ObjInventarios.Dispose()
|
|
UpAlmacen.Update()
|
|
UpAcciones.Update()
|
|
End If
|
|
|
|
End Sub
|
|
Protected Sub GVInv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVInv.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
|
|
If e.Row.DBCampo("CvePS") = "" Then
|
|
'TITULO
|
|
|
|
e.Row.FCLiteral("LtProducto").Text = $"<a class=""Texto"" target='_blank' href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={e.Row.DBCampo("CveMovimiento")}"">{e.Row.DBCampo("CodigoPS")}</a>"
|
|
|
|
e.Row.HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(0).Visible = False
|
|
e.Row.Cells(1).Visible = False
|
|
e.Row.Cells(2).ColumnSpan = 3
|
|
e.Row.Cells(3).Visible = False
|
|
e.Row.Cells(4).Visible = False
|
|
e.Row.Cells(5).Visible = False
|
|
|
|
If e.Row.DBCampo("Origen").ToEntero > 0 Then
|
|
e.Row.CssClass = "SubTotales"
|
|
Else
|
|
e.Row.BackColor = Drawing.Color.FromArgb(224, 130, 131)
|
|
e.Row.ForeColor = Drawing.Color.White
|
|
e.Row.Font.Bold = True
|
|
End If
|
|
|
|
Else
|
|
'DETALLE
|
|
|
|
If e.Row.DBCampo("Serie") <> "" Then
|
|
GVInv.Columns(4).Visible = True
|
|
End If
|
|
|
|
If e.Row.DBCampo("Lote") <> "" Then
|
|
GVInv.Columns(4).Visible = True
|
|
End If
|
|
|
|
If e.Row.DBCampo("FechaCaducidad") <> "" Then
|
|
GVInv.Columns(4).Visible = True
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
End If
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "TIPO OC: INGRESO / GASTO"
|
|
Private Sub VerificarClasificaciones(Optional AfterPageLoad As Boolean = False)
|
|
If AfterPageLoad Then
|
|
RegistraScript("window.onload = function MuestraClasificaciones() { document.getElementById(""C_BtnMostrarClasificaciones"").click(); }")
|
|
Else
|
|
PresionarBotonModal("C_BtnMostrarClasificaciones")
|
|
End If
|
|
|
|
End Sub
|
|
Private Sub PresionarBotonModal(Boton As String)
|
|
Try
|
|
Dim script As String = $"document.getElementById(""{Boton}"").click();"
|
|
Dim Pag As Page = DirectCast(System.Web.HttpContext.Current.Handler, Page)
|
|
ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), Boton, script, True)
|
|
Pag = Nothing
|
|
Catch ex As Exception
|
|
End Try
|
|
End Sub
|
|
Private Sub BtnIniciarContrato_Click(sender As Object, e As EventArgs) Handles BtnIniciarContrato.Click
|
|
CargaClasificacionesPopUp(-1)
|
|
PresionarBotonModal("C_BtnCerrarClasificaciones")
|
|
End Sub
|
|
Private Sub CargaClasificacionesPopUp(CveCotizacion As Integer)
|
|
DdlClasificacion.Items.Clear()
|
|
If RblOpcionClasificacion.SelectedValue.ToEntero = 1 Or CveCotizacion > 0 Then
|
|
DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresaActual, UsoClasificacion:=1)
|
|
DdlClasificacion.DataBind()
|
|
DdlClasificacion.Items.Insert(0, New ListItem("Seleccione la Clasificación (Todas)", "-1"))
|
|
Else
|
|
DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresaActual, UsoClasificacion:=2)
|
|
DdlClasificacion.DataBind()
|
|
DdlClasificacion.Items.Insert(0, New ListItem("Seleccione la Clasificación (Todas)", "-1"))
|
|
End If
|
|
UPPDetalle.Update()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " CALCULA IMPORTES "
|
|
Protected Sub DdlIVA_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
|
|
'SE ACTUALIZA EL IVA DEL DtDetalle SI ES QUE AHORA SE VA A TOMAR EN CUENTA EL IVA
|
|
For Each Row As DataRow In DtDetalle.Rows
|
|
If Not Math.Round(DdlIVA.SelectedValue.ToDouble, 2) = 1 Then
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=Row("CvePS").ToString.ToEntero).FiltroPrimero("")
|
|
If DrPS IsNot Nothing Then
|
|
Row("IVAPorcentaje") = If(DrPS("IVA").ToString.ToEntero = -1, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), 0)
|
|
Row("IVA") = Row("IVAPorcentaje").ToString.ToDouble * Row("Total").ToString.ToDouble
|
|
Row("RetIVAPorcentaje") = DrPS("RetIVA").ToString.ToDouble
|
|
Row("RetIVA") = Row("RetIVAPorcentaje").ToString.ToDouble * Row("Total").ToString.ToDouble
|
|
End If
|
|
Else
|
|
Row("IVA") = 0
|
|
Row("RetIVA") = 0
|
|
Row("IVAPorcentaje") = 0
|
|
Row("RetIVAPorcentaje") = 0
|
|
End If
|
|
Next
|
|
|
|
CalculaGenerales()
|
|
End Sub
|
|
Private Sub CalculaGenerales()
|
|
|
|
Dim Subtotal As Double = DtDetalle.SUM("Total", "Total > 0") + DtDetalle.SUM("Descuento")
|
|
Dim Descuento As Double = DtDetalle.SUM("Descuento")
|
|
Dim SubTotalIEPSIVA As Double = DtDetalle.SUM("IEPSPSIVA")
|
|
Dim IVA As Double = DtDetalle.SUM("IVA") + SubTotalIEPSIVA
|
|
Dim SubTotalIEPS As Double = DtDetalle.SUM("IEPSPS")
|
|
Dim SubTotalRetIVA As Double = DtDetalle.SUM("RetIVA")
|
|
Dim SubTotalRetISR As Double = DtDetalle.SUM("RetISR")
|
|
|
|
'SUBTOTAL
|
|
LblSubTotal.Text = (Subtotal).FormatoNumero
|
|
|
|
'DESCUENTO
|
|
TxtDescuento.Text = Descuento.FormatoNumero
|
|
HdnDescuento.Value = Descuento.FormatoNumero
|
|
|
|
'SUBTOTAL 2
|
|
LblSubTotal2.Text = (Subtotal - Descuento).FormatoNumero
|
|
|
|
'IVA
|
|
TxtIVA.Text = IVA.ToString.FormatoNumero()
|
|
LblIVA.Text = IVA.ToString.FormatoNumero()
|
|
|
|
'IEPS
|
|
TxtIEPS.Text = SubTotalIEPS.FormatoNumero
|
|
TrIEPS.Visible = SubTotalIEPS > 0
|
|
|
|
'RetIVA
|
|
TxtRetIVA.Text = SubTotalRetIVA.FormatoNumero
|
|
HdnRetIVA.Value = SubTotalRetIVA.FormatoNumero
|
|
TrRetIVA.Visible = SubTotalRetIVA > 0
|
|
|
|
'RetISR
|
|
TxtRetISR.Text = SubTotalRetISR.FormatoNumero
|
|
HdnRetISR.Value = SubTotalRetISR.FormatoNumero
|
|
TrRetISR.Visible = SubTotalRetISR > 0
|
|
|
|
'TOTAL
|
|
LblTotal.Text = (Subtotal - Descuento + IVA + SubTotalIEPS - SubTotalRetIVA - SubTotalRetISR).FormatoNumero()
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region " RETENCIONES "
|
|
Private Sub ActivarRetenciones()
|
|
'If UsuarioActual.Empresa.Funcionalidad(116) = "1" Then
|
|
ImgAplicaRetenciones.Visible = True
|
|
'End If
|
|
End Sub
|
|
Protected Sub ImgAplicaRetenciones_Click(sender As Object, e As ImageClickEventArgs)
|
|
MuestraRetenciones()
|
|
End Sub
|
|
Private Sub MuestraRetenciones()
|
|
|
|
If (TrRetIVA.Visible) Then
|
|
TxtIEPS.Text = "0.00"
|
|
TxtRetIVA.Text = "0.00"
|
|
TxtRetISR.Text = "0.00"
|
|
CalculaGenerales()
|
|
End If
|
|
|
|
If ImgAplicaRetenciones.ImageUrl = "/Metronic/assets/global/img/portlet-collapse-icon.png" Then
|
|
ImgAplicaRetenciones.ImageUrl = "/Metronic/assets/global/img/portlet-expand-icon.png"
|
|
TrRetIVA.Visible = True
|
|
TrRetISR.Visible = True
|
|
TrIEPS.Visible = True
|
|
Else
|
|
ImgAplicaRetenciones.ImageUrl = "/Metronic/assets/global/img/portlet-collapse-icon.png"
|
|
If Not TxtRetIVA.Text.ToDouble > 0 Then TrRetIVA.Visible = False
|
|
If Not TxtRetISR.Text.ToDouble > 0 Then TrRetISR.Visible = False
|
|
If Not TxtIEPS.Text.ToDouble > 0 Then TrIEPS.Visible = False
|
|
End If
|
|
|
|
'ImgAplicaRetenciones.ImageUrl = If(TrRetIVA.Visible, "/Metronic/assets/global/img/portlet-collapse-icon.png", "/Metronic/assets/global/img/portlet-expand-icon.png")
|
|
End Sub
|
|
Private Sub AplicaRetenciones()
|
|
TxtRetIVA.Text = TxtRetIVA.Text.FormatoNumero
|
|
TxtRetISR.Text = TxtRetISR.Text.FormatoNumero
|
|
TxtIEPS.Text = TxtIEPS.Text.FormatoNumero
|
|
End Sub
|
|
Private Sub CargaRetenciones(RetIVA As Double, RetISR As Double, IEPS As Double)
|
|
|
|
If RetIVA > 0 Or RetISR > 0 Or IEPS > 0 Then
|
|
TrRetIVA.Visible = True
|
|
TxtRetIVA.Text = RetIVA.ToString.ToDouble.FormatoNumero
|
|
TrRetISR.Visible = True
|
|
TxtRetISR.Text = RetISR.ToString.ToDouble.FormatoNumero
|
|
TrIEPS.Visible = True
|
|
TxtIEPS.Text = IEPS.ToString.ToDouble.FormatoNumero
|
|
End If
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region " DESCUENTOS "
|
|
Private Sub ActivarDescuentos()
|
|
'If UsuarioActual.Empresa.Funcionalidad(111) = "1" Then
|
|
TDDescuento.Visible = True
|
|
TrDescuento.Visible = True
|
|
THDescuento.Visible = True
|
|
GvD.Columns(7).Visible = True
|
|
' End If
|
|
End Sub
|
|
Protected Sub BtnAplicarDescuento_Click(sender As Object, e As EventArgs)
|
|
AplicarDescuentos()
|
|
End Sub
|
|
Private Sub AplicarDescuentos()
|
|
If LblSubTotal.Text.ToDecimal <= 0 Then
|
|
Alert("Para aplicar un descuento, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia)
|
|
TxtDescuento.Text = "0.00"
|
|
Exit Sub
|
|
End If
|
|
|
|
TxtDescuento.Text = TxtDescuento.Text.FormatoNumero
|
|
HdnDescuento.Value = TxtDescuento.Text
|
|
|
|
Dim Total = 0.0D
|
|
Dim Descuento = 0.0D
|
|
Dim Porcentaje = TxtDescuento.Text.ToDecimal / DtDetalle.SUM("Total")
|
|
Dim LastDr As DataRow = Nothing
|
|
For Each Dr As DataRow In DtDetalle.Rows
|
|
Descuento = ((Math.Truncate((Dr("Total").ToString.ToDecimal * Porcentaje) * 100)) / 100).ToDecimal
|
|
Dr("Descuento") = Descuento
|
|
Total = (Dr("Cantidad").ToString.ToDecimal * Dr("Importe").ToString.ToDecimal) - Descuento
|
|
Dr("Total") = Math.Round(Total, 2)
|
|
Dr("IVA") = Math.Round(Dr("IVAPorcentaje").ToString.ToDecimal * Total, 2)
|
|
' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1)
|
|
LastDr = Dr
|
|
Next
|
|
If Not IsNothing(LastDr) Then
|
|
Dim Fdes As Decimal = TxtDescuento.Text.ToDecimal - DtDetalle.SUM("Descuento").ToString.ToDecimal
|
|
If Fdes > 0 Then
|
|
LastDr("Descuento") = LastDr("Descuento").ToString.ToDecimal + Fdes
|
|
End If
|
|
End If
|
|
|
|
CalculaGenerales()
|
|
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
UPPDetalle.Update()
|
|
End Sub
|
|
Protected Sub BtnLimpiarDescuento_Click(sender As Object, e As EventArgs)
|
|
If HdnDescuento.Value.ToDecimal > 0 Then
|
|
TxtDescuento.Text = HdnDescuento.Value.FormatoNumero
|
|
Exit Sub
|
|
End If
|
|
|
|
For Each Dr As DataRow In DtDetalle.Rows
|
|
Dr("Descuento") = 0
|
|
|
|
' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1)
|
|
Next
|
|
|
|
TxtDescuento.Text = "0.00"
|
|
HdnDescuento.Value = TxtDescuento.Text
|
|
CalculaGenerales()
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
UPPDetalle.Update()
|
|
End Sub
|
|
Private Function ValidarDescuentos() As Boolean
|
|
Dim Retorno = True
|
|
|
|
Dim DescuentoConceptos = DtDetalle.SUM("Descuento")
|
|
Dim DescuentoGeneral = TxtDescuento.Text.ToDouble
|
|
|
|
If DescuentoConceptos <> DescuentoGeneral Then
|
|
Alert(String.Format("Los descuentos no cuadran. Por favor de verificar.({0}-{1})", DescuentoConceptos, DescuentoGeneral), TipoMensaje.MsgAdvertencia)
|
|
Retorno = False
|
|
End If
|
|
|
|
Return Retorno
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "RETIVA"
|
|
|
|
Protected Sub BtnLimpiarRetIVA_Click(sender As Object, e As EventArgs)
|
|
If HdnRetIVA.Value.ToDecimal > 0 Then
|
|
TxtRetIVA.Text = HdnRetIVA.Value.FormatoNumero
|
|
Exit Sub
|
|
End If
|
|
|
|
For Each Dr As DataRow In DtDetalle.Rows
|
|
Dr("RetIVA") = 0
|
|
Dr("RetIVAPorcentaje") = 0
|
|
' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1)
|
|
Next
|
|
|
|
TxtRetIVA.Text = "0.00"
|
|
HdnRetIVA.Value = TxtRetIVA.Text
|
|
CalculaGenerales()
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
UPPDetalle.Update()
|
|
End Sub
|
|
Protected Sub BtnAplicarRetIVA_Click(sender As Object, e As EventArgs)
|
|
AplicarRetIVA()
|
|
End Sub
|
|
|
|
Private Sub AplicarRetIVA()
|
|
If LblSubTotal.Text.ToDecimal <= 0 Then
|
|
Alert("Para aplicar un RetIVA, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia)
|
|
TxtRetIVA.Text = "0.00"
|
|
CalculaGenerales()
|
|
Exit Sub
|
|
End If
|
|
|
|
TxtRetIVA.Text = TxtRetIVA.Text.FormatoNumero
|
|
HdnRetIVA.Value = TxtRetIVA.Text
|
|
|
|
Dim Porcentaje As Decimal = TxtRetIVA.Text.ToDecimal / DtDetalle.SUM("Total")
|
|
Dim LastDr As DataRow = Nothing
|
|
For Each Dr As DataRow In DtDetalle.Rows
|
|
'Dr("RetIVA") = (Math.Truncate((Dr("Total").ToString.ToDecimal * Porcentaje) * 100)) / 100
|
|
Dr("RetIVA") = Math.Round((Dr("Total").ToString.ToDecimal * Porcentaje), 2)
|
|
'Dr("RetIVA") = Math.Round((Dr("Cantidad").ToString.ToDecimal * Dr("Importe").ToString.ToDecimal * Porcentaje), 2)
|
|
Dr("RetIVAPorcentaje") = Porcentaje
|
|
' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1)
|
|
LastDr = Dr
|
|
Next
|
|
'If Not IsNothing(LastDr) Then
|
|
' Dim Fdes As Decimal = TxtRetIVA.Text.ToDecimal - DtDetalle.SUM("RetIVA").ToString.ToDecimal
|
|
' If Fdes > 0 Then
|
|
' LastDr("RetIVA") = LastDr("RetIVA").ToString.ToDecimal + Fdes
|
|
' End If
|
|
'End If
|
|
|
|
'Alert(String.Format("Descuento:{0}", DtDetalle.SUM("Descuento")))
|
|
|
|
CalculaGenerales()
|
|
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
UPPDetalle.Update()
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "RETISR"
|
|
|
|
Protected Sub BtnLimpiarRetISR_Click(sender As Object, e As EventArgs)
|
|
If HdnRetISR.Value.ToDecimal > 0 Then
|
|
TxtRetISR.Text = HdnRetISR.Value.FormatoNumero
|
|
Exit Sub
|
|
End If
|
|
|
|
For Each Dr As DataRow In DtDetalle.Rows
|
|
Dr("RetISR") = 0
|
|
Dr("RetISRPorcentaje") = 0
|
|
' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1)
|
|
Next
|
|
|
|
TxtRetISR.Text = "0.00"
|
|
HdnRetISR.Value = TxtRetISR.Text
|
|
CalculaGenerales()
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
UPPDetalle.Update()
|
|
End Sub
|
|
Protected Sub BtnAplicarRetISR_Click(sender As Object, e As EventArgs)
|
|
AplicarRetISR()
|
|
End Sub
|
|
|
|
Private Sub AplicarRetISR()
|
|
If LblSubTotal.Text.ToDecimal <= 0 Then
|
|
Alert("Para aplicar un RetISR, el SubTotal debe ser mayor a cero.", TipoMensaje.MsgAdvertencia)
|
|
TxtRetISR.Text = "0.00"
|
|
CalculaGenerales()
|
|
Exit Sub
|
|
End If
|
|
|
|
TxtRetISR.Text = TxtRetISR.Text.FormatoNumero
|
|
HdnRetISR.Value = TxtRetISR.Text
|
|
|
|
Dim Porcentaje = TxtRetISR.Text.ToDecimal / DtDetalle.SUM("Total")
|
|
Dim LastDr As DataRow = Nothing
|
|
For Each Dr As DataRow In DtDetalle.Rows
|
|
Dr("RetISR") = (Math.Truncate((Dr("Total").ToString.ToDecimal * Porcentaje) * 100)) / 100
|
|
Dr("RetISRPorcentaje") = Porcentaje
|
|
' Tipo Dato '0' es Cuando es Nuevo, '1' para editar y '2' viene de la BD
|
|
Dr("TipoDato") = If(Dr("TipoDato").ToString.ToEntero = 0, 0, 1)
|
|
LastDr = Dr
|
|
Next
|
|
If Not IsNothing(LastDr) Then
|
|
Dim Fdes As Decimal = TxtRetISR.Text.ToDecimal - DtDetalle.SUM("RetISR").ToString.ToDecimal
|
|
If Fdes > 0 Then
|
|
LastDr("RetISR") = LastDr("RetISR").ToString.ToDecimal + Fdes
|
|
End If
|
|
End If
|
|
|
|
'Alert(String.Format("Descuento:{0}", DtDetalle.SUM("Descuento")))
|
|
|
|
CalculaGenerales()
|
|
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
UPPDetalle.Update()
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "CONTRATOS"
|
|
|
|
Private Sub CargaClientesContrato()
|
|
'DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa)
|
|
'DdlClientes.DataBind()
|
|
'DdlClientes.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
'DdlClienteContrato
|
|
End Sub
|
|
|
|
Private Sub CargaContratos()
|
|
Dim ObjContratos As New ClsContratos
|
|
If ObjContratos.GetContratosDetalle(DdlContratos.SelectedValue.ToEntero) Then
|
|
GvContratos.DataSource = ObjContratos.DtResultados
|
|
End If
|
|
ObjContratos.Dispose()
|
|
GvContratos.DataBind()
|
|
UpContrato.Update()
|
|
End Sub
|
|
|
|
Private Sub DdlClienteContrato_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClienteContrato.selectedindexchange
|
|
DdlContratos.Items.Clear()
|
|
' DdlContratos.DataSource = GlobalDTContratos().FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCliente = {DdlClientes.SelectedValue.ToEntero} AND Estatus = True AND FechaFinal >= '{Now.ToShortDateString}' AND FechaInicial <= '{Now.ToShortDateString}'")
|
|
Dim ObjContratos As New ClsContratos
|
|
|
|
If ObjContratos.GetContratos(-1, UsuarioActual.CveEmpresa, DdlClienteContrato.SelectedValue.ToEntero, -1, 1) Then
|
|
If ObjContratos.DtResultados.FiltraParametros("Estatus = True").Rows.Count > 0 Then
|
|
|
|
DdlContratos.DataSource = ObjContratos.DtResultados.FiltraParametros($"Estatus = True AND FechaFinal >= '{Now.ToShortDateString}' AND FechaInicial <= '{Now.ToShortDateString}'")
|
|
|
|
End If
|
|
End If
|
|
ObjContratos.Dispose()
|
|
DdlContratos.DataBind()
|
|
|
|
|
|
DdlContratos.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
UpContrato.Update()
|
|
End Sub
|
|
|
|
Private Sub DdlContratos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlContratos.SelectedIndexChanged
|
|
Dim ObjContratos As New ClsContratos
|
|
If ObjContratos.GetContratosDetalle(DdlContratos.SelectedValue.ToEntero) Then
|
|
GvContratos.DataSource = ObjContratos.DtResultados
|
|
GvContratos.DataBind()
|
|
End If
|
|
ObjContratos.Dispose()
|
|
UpContrato.Update()
|
|
End Sub
|
|
|
|
Private Sub BtnAgregarContrato_Click(sender As Object, e As EventArgs) Handles BtnAgregarContrato.Click
|
|
Dim Selecciono As Boolean = False
|
|
|
|
If DivProyecto.Visible And (Not DdlProyectoContrato.SelectedValue.ToEntero > 0 Or Not DdlSubProyectoContrato.SelectedValue.ToEntero > 0) Then
|
|
Alert("Tiene que seleccionar un proyecto y un subproyecto", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
ElseIf Not DdlSubProyectoContrato.SelectedValue.ToEntero > 0 Then
|
|
Alert("Tiene que seleccionar un subproyecto", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
For Each row As GridViewRow In GvContratos.Rows
|
|
If row.FCTextBox("TxtCantContrato").Text.Trim.ToDouble > 0 And row.FCTextBox("TxtPrecioContrato").Text.Trim.ToDouble > 0 Then
|
|
Selecciono = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If Not Selecciono Then
|
|
Alert("Tiene que tener al menos un contrato con cantidad y precio mayores que 0", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
DtDetalle.Rows.Clear()
|
|
For Each row As GridViewRow In GvContratos.Rows
|
|
If row.FCTextBox("TxtCantContrato").Text.Trim.ToDouble > 0 And row.FCTextBox("TxtPrecioContrato").Text.Trim.ToDouble > 0 Then
|
|
Dim Cantidad As Double = row.FCTextBox("TxtCantContrato").Text.Trim.ToDouble
|
|
Dim Importe As Double = row.FCTextBox("TxtPrecioContrato").Text.Trim.ToDouble
|
|
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=row.DataKey("CvePS").ToEntero).FiltroPrimero("")
|
|
If DrPS Is Nothing Then
|
|
Alert("Ocurrió un error al cargar la información del producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble
|
|
Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble
|
|
Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble
|
|
|
|
'If IvaPS = -1 Then 'IVA DE LA SUCURSAL
|
|
' IvaPS = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero).FiltroPrimeroValor("IVA").ToDouble
|
|
'End If
|
|
|
|
Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble
|
|
Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0)
|
|
Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero)
|
|
Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero)
|
|
Dim TotalPS As Double = If(Importe > 0, (Importe * Cantidad), 0)
|
|
Dim ImportePS As Double = If(Importe > 0, Importe, 0)
|
|
Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100
|
|
|
|
|
|
AddPS(Cantidad.ToString, row.DataKey("CvePS").ToEntero, row.DataKey("CodigoPS").ToString, "", ImportePS, 0, TotalPS,
|
|
row.DataKey("CveUM").ToEntero, IvaPS, IEPSPS, IEPSPSIVA, row.DataKey("CveClasificacion").ToEntero, row.DataKey("UM"), row.DataKey("ClasificacionPS"), 0, "Sin Proyecto",
|
|
DdlSubProyectoContrato.SelectedValue.ToEntero, DdlSubProyectoContrato.SelectedItem.Text, "", -1, 0, CveOrdenCompraDetalle, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, RetIVA, RetISR, CveContratoDetalle:=row.DataKey("CveContratoDetalle").ToEntero)
|
|
End If
|
|
Next
|
|
TxtGrid.Text = If(DtDetalle.Rows.Count = 0, "", DtDetalle.Rows.Count.ToString)
|
|
Ddlcliente.txtValue.Value = DdlClienteContrato.SelectedValue
|
|
|
|
CargaSuperior()
|
|
CargaDatosDetalles()
|
|
UPPDetalle.Update()
|
|
|
|
RegistraScript(String.Format("$('#{0}').modal().hide();", "ModalContrato"))
|
|
UPPDetalle.Update()
|
|
UpVendedor.Update()
|
|
|
|
End Sub
|
|
|
|
Protected Sub DdlProyectoContrato_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
CargaSubProyectosContratos()
|
|
End Sub
|
|
|
|
Private Sub CargaSubProyectosContratos()
|
|
Dim Filtro As String = If(DdlProyectoContrato.SelectedValue.ToEntero > 0, String.Format("CveProyecto = {0}", DdlProyectoContrato.SelectedValue.ToEntero), "")
|
|
|
|
DdlSubProyectoContrato.Items.Clear()
|
|
If Filtro <> "" Or UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
|
|
DdlSubProyectoContrato.DataSource = DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) 'If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, CveEmpresaActual, -1, 1), GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, -1, CveEmpresaActual, 1)) 'DtEstatusUsuarios.FiltraParametros(Filtro, "", {"CveSubProyecto", "SubProyecto"}) ' GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero)
|
|
End If
|
|
DdlSubProyectoContrato.DataBind()
|
|
DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "PAQUETERIAS GUIAS"
|
|
|
|
Protected Sub LnkAgregarGuia_Click(sender As Object, e As EventArgs)
|
|
RegistraScript(String.Format("AbrirVentana('/General/PopUpPaqueteriasGuias.aspx?CveOC={0}',800,620);", CveOrdenCompra))
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "DIRECCION ENVIO"
|
|
|
|
Protected Sub CargaDdlSucursalCliente()
|
|
Dim ObjCliente As New ClsClientes
|
|
|
|
DdlClienteSucursalEnvio.Items.Clear()
|
|
|
|
If ObjCliente.GetSucursales(Ddlcliente.txtValue.Value.ToEntero) Then
|
|
If ObjCliente.DtResultados.Rows.Count > 0 Then
|
|
DdlClienteSucursalEnvio.DataSource = ObjCliente.DtResultados
|
|
End If
|
|
End If
|
|
|
|
ObjCliente.Dispose()
|
|
DdlClienteSucursalEnvio.DataBind()
|
|
DdlClienteSucursalEnvio.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
DdlClienteSucursalEnvio.SelectedValue = "-1"
|
|
End Sub
|
|
|
|
Private Sub BtnAgregarDireccionModal_Click(sender As Object, e As EventArgs) Handles BtnAgregarDireccionModal.Click
|
|
TxtEnvioDireccion.Text = ""
|
|
TxtEnvioNoExt.Text = ""
|
|
TxtEnvioNoInt.Text = ""
|
|
TxtEnvioColonia.Text = ""
|
|
TxtEnvioCiudad.Text = ""
|
|
TxtEnvioEstado.Text = ""
|
|
TxtEnvioContacto.Text = ""
|
|
'TxtDepartamento.Text = ""
|
|
TxtEnvioCP.Text = ""
|
|
TxtEnvioTel.Text = ""
|
|
DdlClienteSucursalEnvio.SelectedValue = "-1"
|
|
UpAddDireccion.Update()
|
|
RegistraScript("$('#divAddDireccionEnvio').modal();")
|
|
End Sub
|
|
|
|
Private Sub BtnAgregarDireccion_Click(sender As Object, e As EventArgs) Handles BtnAgregarDireccion.Click
|
|
|
|
If Not Ddlcliente.txtValue.Value.ToEntero > 0 Then
|
|
Alert("Tiene que tener un cliente seleccionado", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim ObjClientes As New ClsClientes
|
|
Dim TieneError = False
|
|
Dim Estatus = If(ChkEstatus.Checked, 1, 0)
|
|
|
|
CveDireccionEnvio = ObjClientes.DireccionEnvioAdd(Ddlcliente.txtValue.Value.ToEntero, TxtEnvioDireccion.Text.Trim, TxtEnvioNoExt.Text.Trim, TxtEnvioNoInt.Text.Trim, TxtEnvioColonia.Text.Trim, TxtEnvioCiudad.Text.Trim, TxtEnvioEstado.Text.Trim, TxtEnvioCP.Text.ToEntero, TxtEnvioContacto.Text.Trim, UsuarioActual.CveUsuario, Estatus, CveClienteSucursal:=DdlClienteSucursalEnvio.SelectedValue.ToEntero, EnvioTel:=TxtEnvioTel.Text.Trim.Replace(" ", "").Replace("(", "").Replace(")", "").Replace("-", "").Replace("_", ""))
|
|
|
|
If CveDireccionEnvio < 0 Then
|
|
TieneError = True
|
|
End If
|
|
|
|
|
|
|
|
If TieneError Then
|
|
Alert("Ocurrio un error al agregar/actualizar la dirección de envío", TipoMensaje.MsgError)
|
|
Else
|
|
RegistraScript("$('#divAddDireccionEnvio').modal('hide');")
|
|
CargaDireccionesEnvioCliente()
|
|
End If
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "CONTATCOS DEL PROVEEDOR"
|
|
Protected Sub DdlProveedorSucursal_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
DdlProveedorContacto.Items.Clear()
|
|
DdlProveedorContacto.SelectedValue = Nothing
|
|
If DdlProveedorSucursal.SelectedValue <> "-1" Then
|
|
Dim ObjProveedor As New ClsCompProveedores
|
|
If ObjProveedor.GetProveedoresContactos(-1, DdlProveedores.SelectedValue.ToEntero, DdlProveedorSucursal.SelectedValue.ToEntero) Then
|
|
DdlProveedorContacto.DataSource = ObjProveedor.DtResultados
|
|
DdlProveedorContacto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
DivProveedorContacto.Visible = ObjProveedor.DtResultados.Rows.Count > 0
|
|
End If
|
|
ObjProveedor.Dispose()
|
|
DdlProveedorContacto.DataBind()
|
|
UPProv.Update()
|
|
Else
|
|
DivProveedorContacto.Visible = False
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "A G R E G A R - P R O D U C T O S S E R V I C I O S"
|
|
Private Sub CargaDatosAgregarPS()
|
|
DdlClasificacionPS.Items.Clear()
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
DdlClasificacionPS.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, -1, -1)).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion")
|
|
Else
|
|
DdlClasificacionPS.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, -1, -1)).FiltraParametros("", Orderby:="Clasificacion")
|
|
End If
|
|
DdlClasificacionPS.DataBind()
|
|
DdlClasificacionPS.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
|
|
DdlUnidadMedida.Items.Clear()
|
|
DdlUnidadMedida.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa)
|
|
DdlUnidadMedida.DataBind()
|
|
|
|
End Sub
|
|
|
|
Protected Sub BtnAgregarPS_Click(sender As Object, e As EventArgs)
|
|
|
|
Dim PS As New Modelos.MProductoServicio()
|
|
PS.Codigo = TxtCodigo.Text
|
|
PS.PS = TxtPS.Text
|
|
PS.CveUnidadMedida = DdlUnidadMedida.SelectedValue.ToEntero()
|
|
PS.CveClasificacion = DdlClasificacionPS.SelectedValue.ToEntero()
|
|
PS.CveTipoPS = DdlTipoPS.SelectedValue.ToEntero()
|
|
PS.AplicaParaVenta = True
|
|
PS.CveUsuario = UsuarioActual.CveUsuario
|
|
PS.CveEmpresa = UsuarioActual.CveEmpresa
|
|
|
|
Dim ObjPS As New ClsProductosServicios
|
|
If ObjPS.AddPSSimplificado(PS) > 0 Then
|
|
RecargaGlobalEquivalencias()
|
|
RecargaPSGlobal()
|
|
Alert("El P/S fue agregado correctamente.")
|
|
End If
|
|
ObjPS.Dispose()
|
|
|
|
TxtPS.Text = ""
|
|
TxtCodigo.Text = ""
|
|
DdlUnidadMedida.SelectedValueExist(-1)
|
|
DdlClasificacionPS.SelectedValueExist(-1)
|
|
DdlTipoPS.SelectedValueExist(-1)
|
|
|
|
UpAgregarPS.Update()
|
|
|
|
RegistraScript("$('#DivAgregarPS').modal('hide');")
|
|
|
|
End Sub
|
|
Private Sub RecargaPSGlobal()
|
|
GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) = Nothing
|
|
'Dim ObjPS As New ClsProductosServicios
|
|
|
|
'If ObjPS.GetPSSimplificado(UsuarioActual.CveEmpresa) Then Application(String.Format("GlobalDTPSSimplificado{0}", UsuarioActual.CveEmpresa)) = ObjPS.DtResultados.AsEnumerable()
|
|
|
|
'ObjPS.Dispose()
|
|
End Sub
|
|
|
|
|
|
Private Sub RecargaGlobalEquivalencias()
|
|
GeneraGlobalEquivalencias()
|
|
'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalEquivalencias)
|
|
'Hilo.Start()
|
|
End Sub
|
|
Private Sub GeneraGlobalEquivalencias()
|
|
GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing
|
|
'Dim dtt As DataTable = GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa)
|
|
'Dim ObjPS = New ClsProductosServicios
|
|
'If ObjPS.GetPSEquivalencias(-1, UsuarioActual.CveEmpresa) Then
|
|
' GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = ObjPS.DtResultados
|
|
'End If
|
|
'ObjPS.Dispose()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "C A R G A R E X C E L "
|
|
Protected Sub BtnCargaExcelCot_Click(sender As Object, e As EventArgs)
|
|
If TxtExcelCot.getfiles().Archivos.Count > 0 Then
|
|
Dim file As Archivo = TxtExcelCot.getfiles().Archivos(0)
|
|
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch
|
|
CargarArchivoCot(Directorio, file.filename)
|
|
|
|
CargaCotizaciones(CveOrdenCompra)
|
|
RegistraScript("$('#DivCargaExcelCotizaciones').modal('hide');")
|
|
Else
|
|
Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError)
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub BtnDescargarFormatoCot_Click(sender As Object, e As EventArgs)
|
|
'cantidad, Producto, Precio Unitario, Fecha Entrega, Observación
|
|
Dim DtPS As DataTable = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
|
|
|
|
Dim DtExcel As DataTable = (From row As GridViewRow In GvD.Rows
|
|
Join rowPS In DtPS On rowPS("CvePS").ToString().ToEntero() Equals row.DataKey("CvePS").ToEntero()
|
|
Where row.RowType = DataControlRowType.DataRow
|
|
Select New With
|
|
{
|
|
.Cantidad = row.DataKey("Cantidad"),
|
|
.Codigo = rowPS("Codigo"),
|
|
.Producto = rowPS("PSCodigo"),
|
|
.PrecioUnitario = row.DataKey("Importe").ToDecimal(),
|
|
.FechaEntrega = "",
|
|
.Observacion = row.DataKey("Observacion")
|
|
}).QueryToDataTable(True)
|
|
If DtExcel.Rows.Count < 2 Then
|
|
Alert("No hay resutados en la busqueda.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
DtExcel.TableName = "Cotización"
|
|
'DtExcel.Columns("Codigo").ColumnName = "Código"
|
|
'DtExcel.Columns("PS").ColumnName = "Producto / Servicio"
|
|
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
|
|
|
|
Dim FileExcel As New ExcelFile()
|
|
|
|
Dim worksheet = FileExcel.Worksheets.Add(DtExcel.TableName)
|
|
worksheet.InsertDataTable(DtExcel, New InsertDataTableOptions() With
|
|
{
|
|
.ColumnHeaders = True,
|
|
.StartRow = 0,
|
|
.StartColumn = 0
|
|
})
|
|
worksheet.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
|
|
worksheet.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
|
|
|
|
Dim columnCount = worksheet.CalculateMaxUsedColumns()
|
|
For i = 0 To columnCount
|
|
worksheet.Columns(i).AutoFit(1, worksheet.Rows(0), worksheet.Rows(worksheet.Rows.Count - 1))
|
|
Next
|
|
|
|
FileExcel.Save(Response, "Cotizacion.xlsx", SaveOptions.XlsxDefault)
|
|
|
|
End Sub
|
|
Protected Sub CargarArchivoCot(Ruta As String, FileName As String)
|
|
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
|
|
|
|
Dim dt As DataTable = Nothing
|
|
Dim ErrorArchivo = False
|
|
|
|
Try
|
|
dt = ReadExcelFile(Ruta + FileName, True)
|
|
Catch ex As Exception
|
|
ErrorArchivo = True
|
|
OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
|
|
End Try
|
|
|
|
If Not ErrorArchivo AndAlso dt IsNot Nothing Then
|
|
'cantidad, Producto, Precio Unitario, Fecha Entrega, Observación
|
|
If DdlProveedorCot.SelectedValue.ToEntero() <= 0 Then
|
|
Alert("Debe Seleccionar la lista de precios a cargar. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(0).ColumnName = "Cantidad" Then
|
|
Alert("El nombre de la tercera columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(1).ColumnName = "Codigo" Then
|
|
Alert("El nombre de la cuarta columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(2).ColumnName = "Producto" Then
|
|
Alert("El nombre de la cuarta columna debe ser 'Producto'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(3).ColumnName = "PrecioUnitario" Then
|
|
Alert("El nombre de la sexta columna debe ser 'PrecioUnitario'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(4).ColumnName = "FechaEntrega" Then
|
|
Alert("El nombre de la sexta columna debe ser 'FechaEntrega'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not dt.Columns(5).ColumnName = "Observacion" Then
|
|
Alert("El nombre de la sexta columna debe ser 'Observacion'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
|
|
dt.TableName = "Datos"
|
|
Dim ProductosNoCargados As New StringBuilder()
|
|
Dim RowsCargados As Integer = 0
|
|
Dim RowsNoCargados As Integer = 0
|
|
Dim TieneError As Boolean = False
|
|
|
|
Dim objCotizacion As New ClsOC
|
|
objCotizacion.IniciaTransacSQL()
|
|
|
|
Try
|
|
Dim DtPS As DataTable = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
|
|
|
|
Dim DtOCDetalle As DataTable = (From row As GridViewRow In GvD.Rows
|
|
Join rowPS In DtPS On rowPS("CvePS").ToString().ToEntero() Equals row.DataKey("CvePS").ToEntero()
|
|
Where row.RowType = DataControlRowType.DataRow
|
|
Select New With
|
|
{
|
|
.CvePS = row.DataKey("CvePS").ToEntero(),
|
|
.CveUnidadMedida = rowPS("CveUnidadMedida").ToString().ToEntero(),
|
|
.CveOrdenCompraDetalle = row.DataKey("CveOrdenCompraDetalle").ToString().ToEntero(),
|
|
.Codigo = rowPS("Codigo")
|
|
}).QueryToDataTable(True)
|
|
|
|
|
|
|
|
Dim Folio As String = ""
|
|
Dim CveProveedor As Integer = DdlProveedorCot.SelectedValue.ToEntero()
|
|
|
|
If CveProveedor > 0 Then
|
|
If objCotizacion.AddCotizacion(CveOrdenCompra, CveProveedor, -1, Folio, TxtFecha.Text, "", DdlMoneda.SelectedValue.ToEntero, 0, UsuarioActual.CveUsuario) Then
|
|
For Each dr As DataRow In dt.Rows
|
|
Dim RowPS = DtOCDetalle.FiltroPrimero(String.Format("Codigo='{0}'", dr("Codigo").ToString()))
|
|
|
|
Dim CveOrdenCompraDetalle As Integer = RowPS("CveOrdenCompraDetalle").ToString().ToEntero()
|
|
Dim CvePS As Integer = RowPS("CvePS").ToString().ToEntero()
|
|
Dim CveUnidadMedida As Integer = RowPS("CveUnidadMedida").ToString().ToEntero()
|
|
Dim Fecha As String = If(String.IsNullOrEmpty(dr("FechaEntrega").ToString()), "", If(IsDate(dr("FechaEntrega").ToString()), dr("FechaEntrega").ToString(), ""))
|
|
|
|
TieneError = Not objCotizacion.AddCotizacionDetalle(objCotizacion.CveCotizacion, CvePS, dr("PrecioUnitario").ToString().ToDecimal(), dr("Cantidad").ToString().ToDouble, CveUnidadMedida,
|
|
dr("Cantidad").ToString().ToDouble, Fecha, dr("Observacion").ToString(), CveOrdenCompraDetalle)
|
|
If TieneError = True Then Exit For
|
|
Next
|
|
End If
|
|
Else
|
|
TieneError = False
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
TieneError = True
|
|
OnError("Ocurrió un error al cargar las cotizaciones.", ex)
|
|
Finally
|
|
If TieneError Then
|
|
objCotizacion.RollBack()
|
|
Alert("Ocurrió un error al cargar las cotizaciones.")
|
|
Else
|
|
objCotizacion.Commit()
|
|
Alert("Las cotizaciones se cargaron correctamente.")
|
|
End If
|
|
objCotizacion.Dispose()
|
|
End Try
|
|
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
Protected Sub DdlMoneda_Change() Handles DdlMoneda.SelectedIndexChanged
|
|
MonedaTexto = DdlMoneda.SelectedItem.Text
|
|
End Sub
|
|
|
|
Protected Sub LnkCambiarMoneda_Click(sender As Object, e As EventArgs) Handles LnkCambiarMoneda.Click
|
|
RegistraScript("$('#DivCambiarMoneda').modal();")
|
|
End Sub
|
|
|
|
Protected Sub BtnCambiarMoneda_Click() Handles BtnCambiarMoneda.Click
|
|
Dim ObjInv As New ClsInventarios
|
|
Dim DtInvOC As DataTable = Nothing
|
|
If ObjInv.GetMovimientosOC(CveOrdenCompra, UsuarioActual.CveEmpresa) Then
|
|
DtInvOC = ObjInv.DtResultados
|
|
End If
|
|
ObjInv.Dispose()
|
|
|
|
|
|
Dim CveMonedaOC As Integer = DdlMoneda.SelectedValue.ToEntero
|
|
Dim CveProveedor As Integer = DdlProveedores.SelectedValue.ToEntero
|
|
Dim ProveedorNombre As String = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {CveProveedor}").ToString
|
|
Dim ConceptoPartida As String = String.Format(" Cambio Moneda {0} OC: {1} ", ProveedorNombre, lblFolio.Text)
|
|
|
|
Dim ObjConta As New ClsContabilidad
|
|
Dim ObjOC As New ClsOC(ObjConta.IniciaTransacSQL)
|
|
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OC/OC-CambioMoneda", 74, 0, 0, 1, Now, ConceptoPartida, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
Dim Importe176, Importe228, Importe229 As Decimal
|
|
Dim ImporteCI176, ImporteMN229, PU, Importe176PU As Decimal
|
|
Dim Retorno As Boolean = True
|
|
Dim ErrorPrepoliza As Boolean = False
|
|
|
|
Dim IdCtaContableOC As Integer = 0
|
|
Dim IdCtaContableME As Integer = 0
|
|
Dim IdCtaContableMEComp As Integer = 0
|
|
|
|
If ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) Then
|
|
IdCtaContableOC = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
End If
|
|
|
|
If ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) Then
|
|
IdCtaContableME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
End If
|
|
|
|
If ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) Then
|
|
IdCtaContableMEComp = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
End If
|
|
|
|
'.FiltraParametros($"CvePS > 0 AND CveOrdenCompraDetalle = {dr2("CveOrdenCompraDetalle").ToString.ToEntero}").Copy
|
|
For Each gvr As GridViewRow In GvD.Rows
|
|
If ObjOC.OrdenesCompraDetalleCostoPP(gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero) AndAlso ObjOC.DtResultados.Rows.Count >= 1 Then
|
|
Dim Concepto As String = $"{DdlProveedores.SelectedText} OC {ObjOC.DtResultados.FiltroPrimeroValor("Folio").ToString} Inv: {ObjOC.DtResultados.FiltroPrimeroValor("FolioAlmacen").ToString}"
|
|
Importe176 = ObjOC.DtResultados.FiltroPrimeroValor("Importe176Suma").ToDecimal ': ImporteME176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME176").ToDecimal * gvr.DataKey("Cantidad").ToString.ToDecimal : ImporteMN176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN176").ToDecimal * gvr.DataKey("Cantidad").ToString.ToDecimal
|
|
Importe228 = ObjOC.DtResultados.FiltroPrimeroValor("Importe228Suma").ToDecimal ': ImporteME228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME228").ToDecimal * gvr.DataKey("Cantidad").ToString.ToDecimal : ImporteMN228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN228").ToDecimal * gvr.DataKey("Cantidad").ToString.ToDecimal
|
|
Importe229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229Suma").ToDecimal : ImporteMN229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229Suma").ToDecimal
|
|
ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI176").ToDecimal
|
|
Importe176PU = ObjOC.DtResultados.FiltroPrimeroValor("Importe176").ToDecimal
|
|
|
|
Dim CveMovimientoAlmacen As Integer = ObjOC.DtResultados.FiltroPrimeroValor("CveMovimientoAlmacen").ToEntero
|
|
Dim TCAjuste As Decimal = ObjOC.DtResultados.FiltroPrimeroValor("TipoCambioAjuste").ToDecimal
|
|
|
|
|
|
If CveMonedaOC = 2 Then
|
|
CveMonedaOC = 1
|
|
PU = ObjOC.DtResultados.FiltroPrimeroValor("Importe228").ToDecimal * TCAjuste
|
|
ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI228").ToDecimal
|
|
Importe176 = Importe228 + Importe229
|
|
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, -Importe228, lblFolio.Text, 228, Concepto, Now, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=-Importe228, ImporteME:=-Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
|
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, -Importe229, lblFolio.Text, 229, Concepto, Now, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=-Importe229, ImporteME:=-Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
|
|
ErrorPrepoliza = True
|
|
Exit For
|
|
Else
|
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, Importe176, lblFolio.Text, 176, Concepto, Now, IdCtaContableOC, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe176, ImporteME:=Importe176, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
|
|
ErrorPrepoliza = True
|
|
Exit For
|
|
Else
|
|
If Not ObjOC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, PU, UsuarioActual.CveUsuario) Then
|
|
Retorno = False
|
|
Exit For
|
|
End If
|
|
End If
|
|
End If
|
|
Else
|
|
ErrorPrepoliza = True
|
|
Exit For
|
|
End If
|
|
Else
|
|
CveMonedaOC = 2
|
|
TCAjuste = TxtTCCambioMoneda.Text.ToDecimal
|
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, -Importe176, lblFolio.Text, 176, Concepto, Now, IdCtaContableOC, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=-Importe176, ImporteME:=-Importe176, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
|
|
ErrorPrepoliza = True
|
|
Exit For
|
|
Else
|
|
Importe228 = (Importe176 / TCAjuste)
|
|
Importe229 = (Importe228 * TCAjuste - Importe228).RoundSQL
|
|
Importe228 = Importe228.RoundSQL(3) ' se redondea a 3 digitos, por la conversion, y no afecta al CK de complementaria
|
|
Dim dift As Decimal = Importe176 - Importe228 - Importe229
|
|
If dift <> 0 Then Importe229 += dift
|
|
PU = Importe176PU / TCAjuste
|
|
|
|
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, Importe228, lblFolio.Text, 228, Concepto, Now, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe228, ImporteME:=Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
|
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, Importe229, lblFolio.Text, 229, Concepto, Now, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe229, ImporteME:=Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
|
|
ErrorPrepoliza = True
|
|
Exit For
|
|
Else
|
|
If Not ObjOC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, PU, UsuarioActual.CveUsuario) Then
|
|
Retorno = False
|
|
Exit For
|
|
End If
|
|
End If
|
|
Else
|
|
ErrorPrepoliza = True
|
|
Exit For
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
Else
|
|
Alert("Ocurrió un error al procesar la mercancia recibida por adelantado. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
|
|
ErrorPrepoliza = True
|
|
Exit For
|
|
End If
|
|
|
|
'DtInvOC.FiltraParametros($"CvePS > 0 AND CveOrdenCompraDetalle = {GvD.DataKeys("CveOrdenCompraDetalle").ToString}").Copy()
|
|
|
|
'If CveMonedaOC = 1 Then
|
|
' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteME, SerieFolio, 228, ConceptoPartida, Fecha, IdCtaContableRecepcionOCME, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then
|
|
' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMEComp, SerieFolio, 229, ConceptoPartida, Fecha, IdCtaContableRecepcionOCComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteMEComp, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then
|
|
' If DifImporte <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DifImporte, SerieFolio, 69, ConceptoPartida, Fecha, IdCtaContable69, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=DifImporte, ImporteME:=DifImporte, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle, CveClasificacion:=CveClasificacionCostoOC) Then
|
|
' Retorno = False
|
|
' Exit For
|
|
' End If
|
|
' Else
|
|
' Retorno = False
|
|
' Exit For
|
|
' End If
|
|
' Else
|
|
' Retorno = False
|
|
' Exit For
|
|
' End If
|
|
'End If
|
|
|
|
Next
|
|
|
|
If Not ErrorPrepoliza Then
|
|
|
|
If Not ObjOC.UpdateOrdenCompraMoneda(CveOrdenCompra, UsuarioActual.CveEmpresa, CveMonedaOC, UsuarioActual.CveUsuario) Then
|
|
ErrorPrepoliza = True
|
|
End If
|
|
End If
|
|
|
|
If Not ErrorPrepoliza Then
|
|
ObjOC.Commit()
|
|
Alert("Cambio Aplicado correctamente")
|
|
Else
|
|
ObjOC.RollBack()
|
|
Alert("Sucedió un error con el cambio en la moneda", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
'Dim ObjInv As New ClsInventarios
|
|
'Dim OC As New ClsOC
|
|
'Dim Err As Boolean = False
|
|
'If ObjInv.GetMovimientos(CveMovimientoAlmacenVenta, -1, -1, UsuarioActual.CveEmpresa) Then
|
|
' Dim TipoMoneda As String = ObjInv.DtResultados.FiltroPrimeroValor("CveMoneda")
|
|
' Dim ObjConta As New ClsContabilidad
|
|
|
|
' Dim IdCtaContableOC As Integer = 0
|
|
' Dim IdCtaContableOCME As Integer = 0
|
|
' Dim IdCtaContableOCComplementaria As Integer = 0
|
|
|
|
' If ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) Then
|
|
' IdCtaContableOC = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
' End If
|
|
|
|
' If ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) Then
|
|
' IdCtaContableOCME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
' End If
|
|
|
|
' If ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) Then
|
|
' IdCtaContableOCComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
|
|
' End If
|
|
|
|
' Dim LugarEntrega = If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim)
|
|
' LugarEntrega = If(DivLugarEntrega1.Visible, LugarEntrega, If(TxtLugarEntregaDirecta.Visible, TxtLugarEntregaDirecta.Text.Trim, ""))
|
|
|
|
' Dim CveProveedorContacto As Integer = -1
|
|
|
|
' Dim CveProveedor As Integer = -1
|
|
' If Not ChkCotizacion.Checked OrElse (UsuarioActual.Empresa.Funcionalidad(565) = "1" AndAlso CveConfianzaProveedor > 0) Then
|
|
' CveProveedor = DdlProveedores.SelectedValue.ToEntero
|
|
' CveProveedorContacto = IIf(DdlProveedorContacto.SelectedValue.ToEntero = 0, "-1", DdlProveedorContacto.SelectedValue).ToString.ToEntero
|
|
' End If
|
|
|
|
' Dim IVA = If(TxtIVA.Visible, TxtIVA.Text.ToDecimal, LblIVA.Text.ToDecimal)
|
|
|
|
' Dim Promocion = TxtPromocion.Text.Trim
|
|
|
|
' Dim TCDecimal As Decimal = TxtTCCambioMoneda.Text.ToDecimal
|
|
' Dim TCDouble As Double = TxtTCCambioMoneda.Text.ToDouble
|
|
|
|
' If TipoMoneda = "2" Then
|
|
' Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OC/OC-(OCAlmacen)", 74, 0.0D, 0.0D, 1, Now, DdlProveedores.SelectedText, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
' If CvePrePoliza > 0 Then
|
|
' Dim PrimerImporte As Integer = (0 - LblSubTotal.Text.ToDecimal)
|
|
' Dim SegundoImporte As Integer = (0 - LblSubTotal.Text.ToDecimal)
|
|
|
|
' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, PrimerImporte, lblFolio.Text, 228, lblFolio.Text, Now, IdCtaContableOCME, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
|
|
' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SegundoImporte, lblFolio.Text, 229, lblFolio.Text, Now, IdCtaContableOCComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
|
|
' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, PrimerImporte + SegundoImporte, lblFolio.Text, 176, lblFolio.Text, Now, IdCtaContableOC, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
|
|
' Err = True
|
|
' Else
|
|
' If Not OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
|
|
' LugarEntrega, 1, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.txtValue.Value.ToEntero, DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=(IVA * TCDecimal), RetIVA:=(TxtRetIVA.Text.ToDecimal * TCDecimal),
|
|
' RetISR:=(TxtRetISR.Text.ToDecimal * TCDecimal), FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1),
|
|
' Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto,
|
|
' PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2)) Then
|
|
' Err = True
|
|
' Else
|
|
' For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1)").Rows
|
|
' If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, (dr("Importe").ToString.ToDouble * TCDouble), dr("CveSubProyecto").ToString.ToEntero,
|
|
' dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero),
|
|
' (dr("Descuento").ToString.ToDouble * TCDouble), IEPSPS:=(dr("IEPSPS").ToString.ToDouble * TCDouble), IEPSPSIVA:=(dr("IEPSPSIVA").ToString.ToDouble * TCDouble), IVA:=(dr("IVA").ToString.ToDouble * TCDouble),
|
|
' RetIVA:=(dr("RetIVA").ToString.ToDouble * TCDouble), RetISR:=(dr("RetISR").ToString.ToDouble * TCDouble), Total:=(dr("Total").ToString.ToDouble * TCDouble), CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero,
|
|
' IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
|
|
' IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then
|
|
' Err = True
|
|
' Exit For
|
|
' End If
|
|
' Next
|
|
' End If
|
|
' End If
|
|
' Else
|
|
' Err = True
|
|
' End If
|
|
' Else
|
|
' Err = True
|
|
' End If
|
|
' End If
|
|
' ElseIf TipoMoneda = "1" Then
|
|
' Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OC/OC-(OCAlmacen)", 74, 0.0D, 0.0D, 1, Now, DdlProveedores.SelectedText, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
' If CvePrePoliza > 0 Then
|
|
' Dim PrimerImporte As Decimal = Decimal.Round(((LblSubTotal.Text.ToDecimal) / TxtTCCambioMoneda.Text.ToDecimal), 2, MidpointRounding.AwayFromZero)
|
|
' Dim SegundoImporte As Decimal = LblSubTotal.Text.ToDecimal
|
|
' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, PrimerImporte, lblFolio.Text, 228, lblFolio.Text, Now, IdCtaContableOCME, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
|
|
' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SegundoImporte, lblFolio.Text, 229, lblFolio.Text, Now, IdCtaContableOCComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
|
|
' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, (0 - (PrimerImporte + SegundoImporte)), lblFolio.Text, 176, lblFolio.Text, Now, IdCtaContableOC, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
|
|
' Err = True
|
|
' Else
|
|
' If Not OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
|
|
' LugarEntrega, 2, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.txtValue.Value.ToEntero, DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=(IVA / TCDecimal),
|
|
' RetIVA:=(TxtRetIVA.Text.ToDecimal / TCDecimal), RetISR:=(TxtRetISR.Text.ToDecimal / TCDecimal), FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1),
|
|
' Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto,
|
|
' PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2)) Then
|
|
' Err = True
|
|
' Else
|
|
' For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1)").Rows
|
|
' If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, (dr("Importe").ToString.ToDouble / TCDouble), dr("CveSubProyecto").ToString.ToEntero,
|
|
' dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero),
|
|
' (dr("Descuento").ToString.ToDouble / TCDouble), IEPSPS:=(dr("IEPSPS").ToString.ToDouble / TCDouble), IEPSPSIVA:=(dr("IEPSPSIVA").ToString.ToDouble / TCDouble), IVA:=(dr("IVA").ToString.ToDouble / TCDouble),
|
|
' RetIVA:=(dr("RetIVA").ToString.ToDouble / TCDouble), RetISR:=(dr("RetISR").ToString.ToDouble / TCDouble), Total:=(dr("Total").ToString.ToDouble / TCDouble), CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero,
|
|
' IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
|
|
' IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then
|
|
' Err = True
|
|
' Exit For
|
|
' End If
|
|
' Next
|
|
' End If
|
|
' End If
|
|
' Else
|
|
' Err = True
|
|
' End If
|
|
' Else
|
|
' Err = True
|
|
' End If
|
|
' End If
|
|
' End If
|
|
' ObjConta.Dispose()
|
|
'End If
|
|
'ObjInv.Dispose()
|
|
'If Err Then
|
|
' Alert("Sucedió un error con el cambio en la moneda", TipoMensaje.MsgError)
|
|
'Else
|
|
' Alert("Moneda actualizada con exito")
|
|
'End If
|
|
End Sub
|
|
|
|
|
|
Private Sub CargaAnticiposSolicitudes()
|
|
|
|
|
|
If CveOrdenCompra > 0 Then
|
|
|
|
If CveIEAnticipo > 0 Then
|
|
PorletIEAnticipo.Visible = True
|
|
UpIEAnticipo.Update()
|
|
Else
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Dim objbancos As New ClsOC
|
|
|
|
|
|
If objbancos.GetOCAnticipoSaldo(CveOrdenCompra, UsuarioActual.CveEmpresa) AndAlso objbancos.DtResultados.Rows.Count > 0 Then
|
|
|
|
SaldoOCAnticipo = objbancos.DtResultados(0)("Saldo").ToString.ToDecimal
|
|
LblSaldoOCAnticipo.Text = $"Saldo OC ${SaldoOCAnticipo.ToString.FormatoNumero}"
|
|
|
|
If SaldoOCAnticipo > 0 Then
|
|
|
|
DdlSAUsuario.Items.Clear()
|
|
|
|
If GlobalDTOCEstatus(CveEmpresaActual).FiltroPrimeroValor("TipoTermino", $"CveEstatus = {CveEstatus}").ToEntero.Contiene(0, 3) Then
|
|
BtnSolicitudAnticipo.Visible = True
|
|
DdlSAUsuario.DataSource = GlobalDTUsuarios(-1, CveEmpresaActual)
|
|
DdlSAUsuario.DataBind()
|
|
DdlSAUsuario.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
End If
|
|
|
|
|
|
BtnSolicitudAnticipo.Visible = True
|
|
'generarAnticipo.Text = "Ver Anticipo"
|
|
|
|
Else
|
|
|
|
BtnSolicitudAnticipo.Visible = False
|
|
|
|
'generarAnticipo.Text = "Ver Anticipo"
|
|
'generarAnticipo.NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", objbancos.DtResultados.Rows(0)("CveIE"))
|
|
|
|
End If
|
|
|
|
|
|
Else
|
|
' generarAnticipo.NavigateUrl = String.Format("/Bancos/IE.aspx?CveOrdenCompra={0}&CveProveedor={1}", CveCompra, DdlProveedorContacto.SelectedValue.ToEntero)
|
|
End If
|
|
|
|
|
|
If objbancos.GetOCAnticipo(CveOrdenCompra, UsuarioActual.CveEmpresa) Then
|
|
|
|
If objbancos.DtResultados.Rows.Count > 0 Then
|
|
|
|
PorletIEAnticipo.Visible = True
|
|
GvAnticpos.DataSource = objbancos.DtResultados
|
|
ImporteAnticipos = objbancos.DtResultados.SUM("Importe")
|
|
|
|
End If
|
|
|
|
Else
|
|
GvAnticpos.DataSource = Nothing
|
|
ImporteAnticipos = 0
|
|
End If
|
|
GvAnticpos.DataBind()
|
|
|
|
objbancos.Dispose()
|
|
|
|
|
|
UpAcciones.Update()
|
|
UpSolicitarAnticipo.Update()
|
|
End Sub
|
|
|
|
Private Sub MostrarUsuarioAsignado()
|
|
If CveUsuarioAsignado > 0 Then
|
|
PnlUsuarioYaAsignado.Visible = True
|
|
Dim NombreUsuario As String = GlobalDTUsuarios(CveUsuario:=CveUsuarioAsignado).FiltroPrimeroValor("Nombre")
|
|
LblUsuarioYaAsignado.Text = NombreUsuario
|
|
End If
|
|
End Sub
|
|
'Private Sub CargaVentaRelacionada()
|
|
' Dim GridViewPSAux As GridView = GvD
|
|
' Dim CveOCDetalle As New StringBuilder()
|
|
' For Each vd As GridViewRow In GridViewPSAux.Rows
|
|
' Dim CveVentaDetalle As String = vd.DataKey("CveOrdenCompraDetalle")
|
|
' CveOCDetalle.AppendFormat("{0},", CveVentaDetalle)
|
|
' Next
|
|
' Dim ObjVentas As New ClsOC()
|
|
' If ObjVentas.GetVentasRelacionadas(CveOCDetalle.ToString) Then
|
|
' Dim V As DataTable = ObjVentas.DtResultados
|
|
' If V.Rows.Count > 0 Then
|
|
' DivVentaRelacionada.Visible = True
|
|
' GvVentaRelacionadas.DataSource = V
|
|
' GvVentaRelacionadas.DataBind()
|
|
' End If
|
|
' End If
|
|
' ObjVentas.Dispose()
|
|
'End Sub
|
|
|
|
|
|
Private Sub CargaOT()
|
|
|
|
If CveOrdenTrabajo > 0 Then
|
|
|
|
Dim ObjAF As New ClsAF
|
|
|
|
Dim CveSubProyecto As Integer = 0
|
|
Dim SubProyecto As String = ""
|
|
|
|
Dim CveProyecto As Integer = 0
|
|
Dim Proyecto As String = ""
|
|
|
|
If ObjAF.GetOrdenesTrabajo(CveOrdenTrabajo, -1, -1, -1, -1, -1, MinFecha, MaxFecha, Nothing, -1, UsuarioActual.CveEmpresa) Then
|
|
|
|
If ObjAF.DtResultados IsNot Nothing AndAlso ObjAF.DtResultados.Rows.Count > 0 Then
|
|
|
|
lblFolio.Text = $"Folio OT: {ObjAF.DtResultados(0)("Folio").ToString}"
|
|
|
|
CveSubProyecto = ObjAF.DtResultados(0)("CveSubProyecto").ToString.ToEntero
|
|
SubProyecto = GlobalDTSubProyectos(-1, CveSubProyecto)(0)("SubProyecto").ToString
|
|
|
|
CveProyecto = GlobalDTSubProyectos(-1, CveSubProyecto)(0)("CveProyecto").ToString.ToEntero
|
|
Proyecto = GlobalDTSubProyectos(-1, CveSubProyecto)(0)("Proyecto").ToString
|
|
|
|
'DdlAF.SelectedValueExist(ObjAF.DtResultados(0)("CveAF").ToString)
|
|
'DdlTipoServicio.SelectedValueExist(ObjAF.DtResultados(0)("CveTipoServicio").ToString)
|
|
'TxtServicio.Text = ObjAF.DtResultados(0)("Servicio").ToString
|
|
DdlPrioridad.SelectedValueExist(ObjAF.DtResultados(0)("Prioridad").ToString)
|
|
'txtFechaI.Text = ObjAF.DtResultados(0)("FechaInicio").ToString.ToDate.ToString("dd/MM/yyyy")
|
|
|
|
If ObjAF.DtResultados(0)("FechaFin").ToString.Length > 0 Then
|
|
'txtFechaF.Text = ObjAF.DtResultados(0)("FechaFin").ToString.ToDate.ToString("dd/MM/yyyy")
|
|
End If
|
|
|
|
'txtFechaFinReal.Text ""
|
|
'DdlOrdenesTrabajoEstatus.SelectedValueExist(ObjAF.DtResultados(0)("CveEstatusOT").ToString)
|
|
Else
|
|
Alert("No se encontro la orden de trabajo", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
End If
|
|
|
|
If ObjAF.GetOrdenesTrabajoMateriales(CveOrdenTrabajo, UsuarioActual.CveEmpresa) Then
|
|
|
|
|
|
For Each DRow As DataRow In ObjAF.DtResultados.Rows
|
|
|
|
Dim Cantidad As Decimal = DRow("Faltante").ToString.ToDecimal
|
|
|
|
If Cantidad > 0 Then
|
|
|
|
|
|
Dim CvePS As Integer = DRow("CvePS").ToString.ToEntero
|
|
Dim PrecioUnitario As Double = 0
|
|
|
|
Dim dr As DataRow = DtDetalle.NewRow
|
|
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("")
|
|
If DrPS Is Nothing Then
|
|
Alert("Ocurrió un error al cargar la información de los productos del archivo. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
|
Continue For
|
|
End If
|
|
Dim RetIVA As Double = DrPS("RetIVA").ToString.ToDouble
|
|
Dim RetISR As Double = DrPS("RetISR").ToString.ToDouble
|
|
Dim PS As String = DrPS("PS").ToString
|
|
Dim TotalPS As Double = If(PrecioUnitario > 0, PrecioUnitario * Cantidad, 0)
|
|
Dim CveUnidadMedida As Integer = DrPS("CveUnidadMedida").ToString.ToEntero
|
|
Dim UM As String = DrPS("UnidadMedida").ToString
|
|
Dim IvaPS As Double = DrPS("IVA").ToString.ToDouble
|
|
'If IvaPS = -1 Then
|
|
' Dim Drr As DataRow = GlobalDTSubProyectos(-1, DdlSubProyecto.SelectedValue.ToEntero())(0)
|
|
' IvaPS = Drr("IVA").ToString().ToDouble()
|
|
'End If
|
|
Dim IEPSPS As Double = DrPS("IEPSPorcentaje").ToString.ToDouble
|
|
Dim IEPSPSIVA As Double = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDouble, 0)
|
|
Dim CveClasificacion As Integer = DrPS("CveClasificacion").ToString.ToEntero
|
|
Dim Clasificacion As String = DrPS("Clasificacion").ToString
|
|
Dim CveActivoFijo = HdnCveActivoFijo.Value.ToEntero
|
|
Dim IdCuentaPorEjercer As Integer = If(HdnCveCuentaPorEjercer.Value = String.Empty, -1, HdnCveCuentaPorEjercer.Value.ToEntero)
|
|
Dim IdCuentaComprometido As Integer = If(HdnCveCuentaComprometido.Value = String.Empty, -1, HdnCveCuentaComprometido.Value.ToEntero)
|
|
Dim CveOrdenCompraDetalle As Integer = DtDetalle.MAX("CveOrdenCompraDetalle").ToEntero + 100
|
|
|
|
AddPS(Cantidad, CvePS, PS, "", PrecioUnitario, 0, TotalPS, CveUnidadMedida, IvaPS, IEPSPS, IEPSPSIVA, CveClasificacion, UM, Clasificacion, CveProyecto, Proyecto, CveSubProyecto, SubProyecto, LblCodigo.Text,
|
|
CveActivoFijo, 0, CveOrdenCompraDetalle, CveOrdenCompra, IdCuentaPorEjercer, IdCuentaComprometido, DdlACGeneral1.SelectedValue.ToEntero, DdlACGeneral2.SelectedValue.ToEntero, DdlACGeneral3.SelectedValue.ToEntero, DdlACGeneral4.SelectedValue.ToEntero,
|
|
DdlACGeneral5.SelectedValue.ToEntero, RetIVA, RetISR)
|
|
|
|
End If
|
|
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
ObjAF.Dispose()
|
|
|
|
GvD.DataSource = DtDetalle
|
|
GvD.DataBind()
|
|
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Protected Sub LnkAcontratos_Click(sender As Object, e As EventArgs)
|
|
|
|
|
|
DdlContratosObra.Items.Clear()
|
|
DdlContratosObra.DataSource = GlobalDTContratos.FiltraParametros(String.Format($"CveContratoTipo in (30,31) AND CveEmpresa = {UsuarioActual.CveEmpresa}"))
|
|
DdlContratosObra.DataBind()
|
|
DdlContratosObra.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
|
|
|
|
DdlTipoGasto.Items.Clear()
|
|
DdlTipoGasto.DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa)
|
|
DdlTipoGasto.DataBind()
|
|
DdlTipoGasto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
|
|
RegistraScript("$('#DivmodalConmtrato').modal('show')")
|
|
UpModalContrato.Update()
|
|
|
|
End Sub
|
|
|
|
Protected Sub DdlContratosCompras_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
|
|
|
|
If DdlContratosObra.SelectedValue.ToEntero > 0 Then
|
|
Dim ObjContratos As New ClsContratos()
|
|
|
|
If ObjContratos.GetContratosObraCompras(DdlContratosObra.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
|
|
|
|
If ObjContratos.DtResultados.Rows.Count > 0 Then
|
|
GvContratosControl.DataSource = ObjContratos.DtResultados
|
|
BtnAplicarContrato.Visible = True
|
|
Else
|
|
GvContratosControl.DataSource = Nothing
|
|
BtnAplicarContrato.Visible = False
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
ObjContratos.Dispose()
|
|
|
|
GvContratosControl.DataBind()
|
|
|
|
UpModalContrato.Update()
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Protected Sub BtnAplicarContrato_Click(sender As Object, e As EventArgs)
|
|
|
|
|
|
DtDetalle.Rows.Clear()
|
|
|
|
Dim CveTipoGastoObra As Integer = DdlTipoGasto.SelectedValue.ToEntero
|
|
|
|
For Each GvRow As GridViewRow In GvContratosControl.Rows
|
|
|
|
Dim CveContratoDetalle As Integer = GvRow.DataKey("CveContratoDetalle").ToEntero
|
|
|
|
Dim Cantidad As Double = GvRow.FCTextBox("TxtCantidad").Text.ToDouble
|
|
Dim CvePS As Integer = GvRow.DataKey("CvePS").ToEntero
|
|
Dim PS As String = GvRow.DataKey("PS")
|
|
Dim PU As Double = GvRow.DataKey("PU").ToDouble
|
|
Dim TotalPS As Double = GvRow.FCTextBox("TxtImporte").Text.ToDouble
|
|
Dim CveUnidadMedida As Integer = GvRow.DataKey("CveUnidadMedida")
|
|
Dim UMAbreviatura As String = GvRow.DataKey("Abreviatura").ToString
|
|
|
|
Dim SubProyecto As String = GvRow.DataKey("SubProyecto")
|
|
Dim CveSubProyecto As Integer = GvRow.DataKey("CveSubProyecto").ToEntero
|
|
Dim Codigo As String = "" 'GvRow.DataKey("Codigo")
|
|
|
|
Dim Proyecto As String = GvRow.DataKey("Proyecto")
|
|
Dim CveProyecto As Integer = GvRow.DataKey("CveProyecto").ToEntero
|
|
|
|
Dim RetISR As Double = GvRow.DataKey("RetISR").ToString.ToDouble
|
|
Dim RetIVA As Double = GvRow.DataKey("RetIVA").ToString.ToDouble
|
|
Dim IvaPS As Double = GvRow.DataKey("IVA").ToString.ToDouble
|
|
|
|
Dim CveClasificacion As Integer = GvRow.DataKey("CveClasificacion").ToString.ToEntero
|
|
Dim Clasificacion As String = GvRow.DataKey("Clasificacion")
|
|
|
|
|
|
Dim IEPSPS As Double = GvRow.DataKey("IEPSPorcentaje").ToString.ToDouble
|
|
Dim IEPSPSIVA As Double = If(GvRow.DataKey("IEPSGrabaIVA").ToString = "True", IEPSPS, 0)
|
|
|
|
Dim IdCuentaPorEjercer As Integer = -1
|
|
Dim IdCuentaComprometido As Integer = -1
|
|
|
|
If Cantidad > 0 Then
|
|
|
|
AddPS(Cantidad, CvePS, PS, PS, PU, 0, TotalPS,
|
|
CveUnidadMedida, IvaPS, IEPSPS, IEPSPSIVA, CveClasificacion, UMAbreviatura, Clasificacion, CveProyecto, Proyecto,
|
|
CveSubProyecto, SubProyecto, Codigo, -1, 0, -1, -1, IdCuentaPorEjercer,
|
|
IdCuentaComprometido, -1, -1, -1, -1,
|
|
-1, RetIVA, RetISR, CveContratoDetalle:=CveContratoDetalle, CveTipoGastoObra:=CveTipoGastoObra, CveCultivoCuadroDetalle:=-1, Cuadro:="")
|
|
|
|
|
|
ContratoObraAplciado = True
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
CargaSuperior()
|
|
CargaDatosDetalles()
|
|
|
|
|
|
RegistraScript("$('#DivmodalConmtrato').modal('hide')")
|
|
UPPDetalle.Update()
|
|
|
|
|
|
End Sub
|
|
|
|
Protected Sub DdlSubProyectoEdit_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
|
|
Dim GvRow As GridViewRow = CType(CType(sender, DropDownList).BindingContainer, GridViewRow)
|
|
|
|
Dim DdlSubProyectoEdit As DropDownList = GvRow.FCDropDownList("DdlSubProyectoEdit")
|
|
Dim DdlCultivosCuadroEdit As DropDownList = GvRow.FCDropDownList("DdlCultivosCuadroEdit")
|
|
Dim CveCultivoCuadroDetalle As Integer = GvRow.DataKey("CveCultivoCuadroDetalle").ToString.ToEntero
|
|
|
|
DdlCultivosCuadroEdit.Items.Clear()
|
|
DdlCultivosCuadroEdit.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyectoEdit.SelectedValue}")
|
|
DdlCultivosCuadroEdit.DataBind()
|
|
DdlCultivosCuadroEdit.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
|
|
DdlCultivosCuadroEdit.SelectedValueExist(CveCultivoCuadroDetalle)
|
|
|
|
End Sub
|
|
End Class
|