Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -35,6 +35,7 @@ Public Class ClsExportaciones
|
||||
|
||||
Public Property CveExportacion As Integer
|
||||
Public Property CveExportacionDetalle As Integer
|
||||
Public Property CveExportacionDescarga As Integer
|
||||
|
||||
#End Region
|
||||
|
||||
@@ -419,6 +420,81 @@ Public Class ClsExportaciones
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
#Region "DESCARGAS"
|
||||
Public Function GetDescargas(CveEmpresa As Integer, Optional CveExportacion As Integer = -1, Optional CveExportacionDescarga As Integer = -1, Optional CveExportacionDetalle As Integer = -1, Optional CveImportacionDetalle As Integer = -1) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Exp_ExportacionesDescargaGet")
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
.Add("@CveExportacion", SqlDbType.Int).Value = CveExportacion
|
||||
.Add("@CveExportacionDescarga", SqlDbType.Int).Value = CveExportacionDescarga
|
||||
.Add("@CveExportacionDetalle", SqlDbType.Int).Value = CveExportacionDetalle
|
||||
.Add("@CveImportacionDetalle", SqlDbType.Int).Value = CveImportacionDetalle
|
||||
End With
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al obtener las Descargas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function AddDescarga(CveExportacionDetalle As Integer, CveImportacionDetalle As Integer, Cantidad As Decimal, CveEmpresa As Integer) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Exp_ExportacionesDescargaAdd")
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveExportacionDetalle", SqlDbType.Int).Value = CveExportacionDetalle
|
||||
.Add("@CveImportacionDetalle", SqlDbType.Int).Value = CveImportacionDetalle
|
||||
.Add("@Cantidad", SqlDbType.Decimal).Value = Cantidad
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
|
||||
.Add("@CveExportacionDescarga", SqlDbType.Int).Direction = ParameterDirection.Output
|
||||
End With
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
CveExportacionDescarga = SqlAdapter.SelectCommand.Parameters("@CveExportacionDescarga").Value.ToString.ToEntero
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al guardar la Descarga.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function UpdateDescarga(CveExportacionDescarga As Integer, CveExportacionDetalle As Integer, CveImportacionDetalle As Integer, Cantidad As Decimal) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Exp_ExportacionesDescargaUpdate")
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveExportacionDescarga", SqlDbType.Int).Value = CveExportacionDescarga
|
||||
.Add("@CveExportacionDetalle", SqlDbType.Int).Value = CveExportacionDetalle
|
||||
.Add("@CveImportacionDetalle", SqlDbType.Int).Value = CveImportacionDetalle
|
||||
.Add("@Cantidad", SqlDbType.Decimal).Value = Cantidad
|
||||
End With
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al actualizar la Descarga.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function RemoveDescarga(CveExportacionDescarga As Integer) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Exp_ExportacionesDescargaRemove")
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveExportacionDescarga", SqlDbType.Int).Value = CveExportacionDescarga
|
||||
End With
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al eliminar la Descarga.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
#Region "AGENTES"
|
||||
Public Function GetAgentes(Optional CveAgente As Integer = -1, Optional CveEmpresa As Integer = -1) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
|
||||
@@ -4018,7 +4018,7 @@ Public Class ClsGenerales
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
Public Function CancelarTimbreTimbrado(CveTimbre As Integer, FechaCancelacion As DateTime, CvePACCancelacion As Integer, SelloCancelacion As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
|
||||
Public Function CancelarTimbreTimbrado(CveTimbre As Integer, FechaCancelacion As DateTime, CvePACCancelacion As Integer, SelloCancelacion As String, CveUsuario As Integer, CveEmpresa As Integer, Optional RegenerarTimbre As Boolean = False) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Gral_TimbreTimbradoCancelar")
|
||||
|
||||
@@ -4030,6 +4030,27 @@ Public Class ClsGenerales
|
||||
.Add("@SelloCancelacion", SqlDbType.VarChar).Value = SelloCancelacion
|
||||
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
.Add("@RegenerarTimbre", SqlDbType.Bit).Value = RegenerarTimbre
|
||||
End With
|
||||
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al actualizar el timbrado", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function ReactivarTimbreEntregaAlmacen(CveTimbre As Integer, CveEntregaAlmacen As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Gral_TimbreReactivarUpdate")
|
||||
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveTimbre", SqlDbType.Int).Value = CveTimbre
|
||||
.Add("@CveEntregaAlmacen", SqlDbType.Int).Value = CveEntregaAlmacen
|
||||
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
End With
|
||||
|
||||
Try
|
||||
@@ -4040,6 +4061,7 @@ Public Class ClsGenerales
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function RemoveGralTimbre(CveTimbre As Integer, CveEmpresa As Integer) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Gral_TimbreRemove")
|
||||
|
||||
910
App_Code/ClsPagoScotia.vb
Normal file
910
App_Code/ClsPagoScotia.vb
Normal file
@@ -0,0 +1,910 @@
|
||||
Option Explicit On
|
||||
Option Strict On
|
||||
|
||||
Imports System.Data
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.IO
|
||||
Imports DocumentFormat.OpenXml.Math
|
||||
Imports Extensiones
|
||||
|
||||
|
||||
Public Class ClsPagoScotia
|
||||
Implements IDisposable
|
||||
|
||||
Public Sub New()
|
||||
' Constructor privado para evitar instanciación directa
|
||||
End Sub
|
||||
|
||||
'====================================================================
|
||||
' GeneraPagoScotiaBank – Layout Pagos Scotiabank
|
||||
'====================================================================
|
||||
' ▸ Genera un archivo de pagos masivos para Scotiabank (Archivo de intercambio EE).
|
||||
' ▸ Registros y longitudes exactas:
|
||||
' • HA, HB, DA, TB, TA → 370 caracteres
|
||||
' • DM (correo) → 104 caracteres
|
||||
' ▸ Se permite partición por bloques (TamanoBloque), pero todo dentro de un
|
||||
' mismo método para claridad. Sólo se complementa con LimpiarTextoScotia().
|
||||
'====================================================================
|
||||
|
||||
Public Property ErrorLayout As Boolean = False
|
||||
Public Property LayoutStr As String = String.Empty
|
||||
Public Property LayouErrorStr As String = String.Empty
|
||||
Public Property TotalPagos As Integer = 0
|
||||
Public Property NombreArchivo As String = ""
|
||||
|
||||
Public Function GeneraPagoScotiaBank(ByVal DTPendientes As DataTable, InsertaEnDB As Boolean, CveCuenta As Integer, UsuarioActual As Usuario) As Boolean
|
||||
'ConvenioPagoElectronico = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("ConvenioPagoElectronico", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString();
|
||||
Dim TamanoBloque As Integer = 5000 ' pagos por bloque
|
||||
|
||||
ErrorLayout = False
|
||||
LayoutStr = ""
|
||||
LayouErrorStr = ""
|
||||
TotalPagos = 0
|
||||
NombreArchivo = ""
|
||||
'Dim ErrorLayout As Boolean = False
|
||||
|
||||
'------------------- VALIDACIONES BÁSICAS ---------------------------
|
||||
If DTPendientes Is Nothing OrElse DTPendientes.Rows.Count = 0 Then
|
||||
LayouErrorStr = "No hay datos pendientes para generar el Layout de ScotiaBank."
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
Dim CuentaCargo As String = DTPendientes.Rows(0)("CLABEOrigen").ToString
|
||||
If CuentaCargo.Length <> 11 Then
|
||||
LayouErrorStr = "El campo CuentaCargo debe ser numérico de 11 dígitos."
|
||||
ErrorLayout = True
|
||||
|
||||
End If
|
||||
|
||||
Dim NumeroConvenio As String = DTPendientes.Rows(0)("ConvenioPagoElectronico").ToString
|
||||
If NumeroConvenio.Trim.Length = 0 Then
|
||||
LayouErrorStr = "El campo NumeroConvenio (ConvenioPagoElectronico) no está definido en los datos de la cuenta."
|
||||
ErrorLayout = True
|
||||
|
||||
End If
|
||||
|
||||
If NumeroConvenio.Length <> 5 Then
|
||||
LayouErrorStr = "El campo NumeroConvenio debe ser numérico de 5 dígitos."
|
||||
ErrorLayout = True
|
||||
|
||||
End If
|
||||
|
||||
|
||||
'------------------- ACUMULADORES -----------------------------------
|
||||
Dim sb As New StringBuilder()
|
||||
'Dim totalPagos As Integer = 0
|
||||
Dim totalImporte As Decimal = 0D
|
||||
Dim pagosBloque As Integer = 0
|
||||
Dim importeBloque As Decimal = 0D
|
||||
Dim numBloque As Integer = 0
|
||||
|
||||
Dim SPACE As Char = " "c
|
||||
Dim CERO As Char = "0"c
|
||||
|
||||
'------------------- HEADER ARCHIVO (HA) ----------------------------
|
||||
Dim ha As New StringBuilder()
|
||||
ha.Append("EE") ' 1‑2 Tipo Archivo
|
||||
ha.Append("HA") ' 3‑4 Tipo Registro
|
||||
ha.Append(NumeroConvenio.PadLeft(5, "0"c)) ' 5‑9 Nº Convenio
|
||||
ha.Append("01") ' 10‑11 Secuencia fija "01"
|
||||
ha.Append("00000000") ' 12‑19 Fecha generación
|
||||
ha.Append("00000000") ' 20‑27 Fecha inicial (opcional)
|
||||
ha.Append("00000000") ' 28‑35 Fecha final (opcional)
|
||||
ha.Append("000") ' 36‑38 Código status "000"
|
||||
ha.Append(" ".PadLeft(332, SPACE)) ' 39‑370 FILLER (espacios)
|
||||
|
||||
sb.AppendLine(ha.ToString())
|
||||
|
||||
'------------------- RECORRIDO DETALLES -----------------------------
|
||||
Dim SBErrores As StringBuilder = New StringBuilder()
|
||||
'Dim esError As Boolean = False
|
||||
Dim idx As Integer = 0
|
||||
|
||||
Dim hb As New StringBuilder()
|
||||
hb.Append("EE") ' 1‑2
|
||||
hb.Append("HB") ' 3‑4
|
||||
hb.Append("00") ' 5‑6 Moneda cuenta cargo (00=MXN)
|
||||
hb.Append("0000") ' 7‑10 Uso futuro = ceros
|
||||
hb.Append(CuentaCargo) ' 11‑21 Cuenta cargo (11)
|
||||
hb.Append("0000000001") ' 22‑31 Referencia de cargo? (ejemplo)
|
||||
hb.Append("000") ' 32‑34 Codigo del registro
|
||||
hb.Append(" ".PadLeft(336, SPACE)) ' 35‑370 FILLER espacios
|
||||
|
||||
sb.AppendLine(hb.ToString())
|
||||
|
||||
For Each dr As DataRow In DTPendientes.Rows
|
||||
|
||||
''--- ¿Inicia BLOQUE? (HB) ---------------------------------------
|
||||
'If idx Mod TamanoBloque = 0 Then
|
||||
' numBloque += 1
|
||||
' pagosBloque = 0
|
||||
' importeBloque = 0D
|
||||
|
||||
' Dim hb As New StringBuilder(New String(" "c, 370))
|
||||
' hb.Append("EE") ' 1‑2
|
||||
' hb.Append("HB") ' 3‑4
|
||||
' hb.Append("00") ' 5‑6 Moneda cuenta cargo (00=MXN)
|
||||
' hb.Append("0000") ' 7‑10 Uso futuro = ceros
|
||||
' hb.Append(CuentaCargo) ' 11‑21 Cuenta cargo (11)
|
||||
' hb.Append("0000000001") ' 22‑31 Referencia de cargo? (ejemplo)
|
||||
' hb.Append("000") ' 32‑34 Codigo del registro
|
||||
' hb.Append(" ".PadLeft(336, SPACE)) ' 35‑370 FILLER espacios
|
||||
|
||||
' sb.AppendLine(hb.ToString())
|
||||
'End If
|
||||
|
||||
'----------- DETALLE ALTA (DA) ----------------------------------
|
||||
Dim importe As Decimal = 0D
|
||||
If Not Decimal.TryParse(Convert.ToString(dr("Importe")), importe) Then
|
||||
'Alert($"Importe inválido en fila {idx + 1}", TipoMensaje.MsgAdvertencia)
|
||||
SBErrores.Append($"Importe inválido en fila {idx + 1}")
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
If importe <= 0D Then
|
||||
Alert($"Importe debe ser mayor a 0 en fila {idx + 1}", TipoMensaje.MsgAdvertencia)
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
Dim importeInt As String = CDec(Math.Round(importe * 100).ToEntero).ToString().PadLeft(15, CERO) ' 2 dec.
|
||||
|
||||
Dim fechaAplicacion As String = ClsPaginas.NowADS.ToString("yyyyMMdd")
|
||||
Dim cveBenef As String = LimpiarTextoScotia(Convert.ToString(dr("CveProveedor"))).PadRight(20)
|
||||
Dim rfc As String = LimpiarTextoScotia(Convert.ToString(dr("RFC"))).PadRight(13)
|
||||
Dim nombreBen As String = LimpiarTextoScotia(Convert.ToString(dr("RazonSocial"))).PadRight(40)
|
||||
Dim CveIE As Integer = dr("CveIE").ToString.ToEntero
|
||||
Dim referenciaPago As String = CveIE.ToString.PadLeft(16, CERO) 'If(dr.Table.Columns.Contains("Referencia"), LimpiarTextoScotia(Convert.ToString(dr("Referencia"))).PadLeft(16, "0"c), New String("0"c, 16))
|
||||
|
||||
Dim CuentaDestino As String = ""
|
||||
Dim cuentaDigitos As String = Convert.ToString(dr("CLABEDestino"))
|
||||
Dim clabe As String = Convert.ToString(dr("CLABE"))
|
||||
Dim CveBanco As String = dr("CveBanco").ToString.PadLeft(3, CERO)
|
||||
|
||||
|
||||
If cuentaDigitos.Length = 11 AndAlso CveBanco = "044" Then
|
||||
CuentaDestino = cuentaDigitos
|
||||
ElseIf clabe.Length = 18 Then
|
||||
CuentaDestino = clabe
|
||||
Else
|
||||
CuentaDestino = clabe
|
||||
SBErrores.Append($"Cuenta {CuentaDestino} debe tener 11 o 18 dígitos.<br>")
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
|
||||
Dim TipoCuenta As String = If(CuentaDestino.Length = 18, "9", "1") ' 09=18 dígitos, 01=11 dígitos
|
||||
|
||||
CuentaDestino = CuentaDestino.PadLeft(20, CERO)
|
||||
|
||||
|
||||
|
||||
If CveBanco = "000" Then
|
||||
SBErrores.Append($"CveBanco inválida en fila {idx + 1}. Debe ser numérico de 3 dígitos.")
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
Dim ConceptoPago As String = dr("Observaciones").ToString.Trim
|
||||
|
||||
If ConceptoPago.Length > 50 Then
|
||||
ConceptoPago = ConceptoPago.Substring(0, 50) ' Limitar a 50 caracteres
|
||||
End If
|
||||
ConceptoPago = ConceptoPago.PadRight(50, SPACE)
|
||||
|
||||
Dim da As New StringBuilder()
|
||||
da.Append("EE") ' 1‑2
|
||||
da.Append("DA") ' 3‑4
|
||||
da.Append("04") ' 5‑6 Tipo movimiento (04=SPEI)
|
||||
da.Append("00") ' 7‑8 Moneda pago (00=MXN)
|
||||
da.Append(importeInt) ' 9‑23 Importe (15)
|
||||
da.Append(fechaAplicacion) ' 24‑31
|
||||
da.Append("03") ' 32‑33 Servicio‑concepto (03)
|
||||
da.Append(cveBenef) ' 34‑53
|
||||
da.Append(rfc) ' 54‑66
|
||||
da.Append(nombreBen) ' 67‑106
|
||||
da.Append(referenciaPago) ' 107‑122
|
||||
da.Append("00000") ' 123‑127 Plaza pago (ceros)
|
||||
da.Append("00000") ' 128‑132 Sucursal pago (ceros)
|
||||
|
||||
da.Append(CuentaDestino) ' 133‑152 clabe destino (ceros)
|
||||
da.Append("00000") ' 153‑157 PAIS (ceros)
|
||||
da.Append("".PadLeft(40, SPACE)) ' 158‑197 Ciudad espacio (espacios en blanco)
|
||||
da.Append(TipoCuenta) ' 198-198 Tipo cuenta
|
||||
da.Append(SPACE) ' 199-199 digito intercambio
|
||||
da.Append("00000") ' 200-204 plaza cuenta banco
|
||||
da.Append("044") ' 205-207 num banco emisor (044=ScotiaBank)
|
||||
da.Append(CveBanco) ' 208-210 num banco receptor (044=ScotiaBank)
|
||||
|
||||
da.Append("001") ' 211-213 dias vigencia
|
||||
da.Append(ConceptoPago) ' 214-263 Concepto pago
|
||||
da.Append("".PadLeft(60, SPACE)) '264-283 CAMPO-USO-EMPRESA-1
|
||||
' 284-303 CAMPO-USO - Empresa - 2
|
||||
' 304-323 CAMPO-USO - Empresa - 3
|
||||
da.Append("".PadLeft(41, CERO)) ' 324-326 CODIGO-STATUS - REGISTRO NUM 3
|
||||
' 327-327 CVE-CAMBIO - INST NUM 1
|
||||
' 328-330 CODIGO-STATUS - CAMBIO - INST NUM 3
|
||||
' 331-338 FECHA DE PAGO (Pago en ventanilla) NUM 8
|
||||
' 339-343 PLAZA DE PAGO (Pago en ventanilla) NUM 5
|
||||
' 344-348 SUCURSAL DE PAGO (Pago en ventanilla) NUM 5
|
||||
' 349-364 FOLIO-UNICO NUM 16
|
||||
da.Append("".PadLeft(6, SPACE))
|
||||
sb.AppendLine(da.ToString()) '345-370 FILLER ALF 6
|
||||
|
||||
'----------- DETALLE MAIL (DM) 104 -------------------------
|
||||
|
||||
Dim correo As String = dr("Correo").ToString.Trim
|
||||
If correo.Trim.Length = 0 Then
|
||||
SBErrores.Append($" {nombreBen} Email no definido en fila {idx + 1}. Debe ser un correo electrónico válido.<br>")
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
Dim dm As New StringBuilder()
|
||||
dm.Append("EE") ' 1‑2 Tipo archivoz
|
||||
dm.Append("DM") ' 3‑4 Tipo registro
|
||||
dm.Append(correo.PadRight(100)) ' 5‑104 Email + filler
|
||||
da.Append("".PadLeft(34, CERO)) ' 105-138 Uso Futuro
|
||||
da.Append("".PadLeft(30, SPACE)) ' 139-168 Clave de Rastreo llenar con espacios en blanco
|
||||
da.Append("".PadLeft(20, SPACE)) ' 169-188 Referencia de Abono Banxico
|
||||
dm.Append(" ") ' 189-190 Tipo de Operación anexo G
|
||||
da.Append("".PadLeft(232, SPACE)) ' 191-370 FILLER
|
||||
|
||||
|
||||
sb.AppendLine(dm.ToString())
|
||||
|
||||
'----------- ACUMULADORES ---------------------------------------
|
||||
TotalPagos += 1
|
||||
totalImporte += importe
|
||||
pagosBloque += 1
|
||||
importeBloque += importe
|
||||
|
||||
'----------- ¿CIERRA BLOQUE? (TB) -------------------------------
|
||||
Dim bloqueCompleto As Boolean = (pagosBloque = TamanoBloque)
|
||||
Dim ultimoRegistro As Boolean = (idx = DTPendientes.Rows.Count - 1)
|
||||
idx += 1
|
||||
Next
|
||||
|
||||
'If bloqueCompleto OrElse ultimoRegistro Then
|
||||
Dim tb As New StringBuilder()
|
||||
tb.Append("EE") ' 1‑2
|
||||
tb.Append("TB") ' 3‑4
|
||||
tb.Append(pagosBloque.ToString().PadLeft(7, CERO)) ' 5‑11 Cnt altas
|
||||
tb.Append((importeBloque * 100).ToEntero.ToString().PadLeft(17, CERO)) ' 12‑28 Importe altas
|
||||
tb.Append("".PadLeft(7, CERO)) ' 29‑35 Cnt bajas
|
||||
tb.Append("".PadLeft(17, CERO)) ' 36‑52 Importe bajas
|
||||
tb.Append("".PadLeft(195, CERO))
|
||||
' 53-59 CANTIDAD DE MOVIMIENTOS ALTAS
|
||||
' 60-76 IMPORTE DE MOVIMIENTOS ALTAS
|
||||
' 77-83 CANTIDAD DE MOVIMIENTOS BAJAS
|
||||
' 84-100 IMPORTE DE MOVIMIENTOS BAJAS
|
||||
' 101-107 CANTIDAD DE MOVIMIENTOS ALTAS
|
||||
' 108-124 IMPORTE DE MOVIMIENTOS ALTAS
|
||||
' 125-131 CANTIDAD DE MOVIMIENTOS BAJAS
|
||||
' 132-148 IMPORTE DE MOVIMIENTOS BAJAS
|
||||
' 149-155 CANTIDAD DE MOVIMIENTOS PAGADOS
|
||||
' 156-172 IMPORTE DE MOVIMIENTOS PAGADOS
|
||||
' 173-179 CANTIDAD DE MOVIMIENTOS DEVUELTOS
|
||||
' 180-196 IMPORTE DE MOVIMIENTOS DEVUELTOS
|
||||
' 197-203 CANTIDAD DE MOVIMIENTOS RECH
|
||||
' 204-220 IMPORTE DE MOVIMIENTOS RECH
|
||||
' 221-227 CANTIDAD DE MOVIMIENTOS BAJA
|
||||
' 228-244 IMPORTE DE MOVIMIENTOS BAJA
|
||||
' 245-247 CODIGO-STATUS-REGISTRO
|
||||
tb.Append("".PadLeft(123, SPACE)) ' 248-370 FILLER (espacios)
|
||||
sb.AppendLine(tb.ToString())
|
||||
'End If
|
||||
|
||||
'------------------- TRAILER ARCHIVO (TA) ---------------------------
|
||||
Dim ta As New StringBuilder()
|
||||
ta.Append("EE") ' 1‑2
|
||||
ta.Append("TA") ' 3‑4
|
||||
ta.Append(TotalPagos.ToString().PadLeft(7, CERO)) ' 5‑11
|
||||
ta.Append((totalImporte * 100).ToEntero.ToString().PadLeft(17, CERO)) ' 12‑28
|
||||
ta.Append("".PadLeft(7, CERO)) ' 29‑35 Cnt bajas
|
||||
ta.Append("".PadLeft(17, CERO)) ' 36‑52 Importe bajas
|
||||
ta.Append("".PadLeft(198, CERO))
|
||||
' 53-59 CANTIDAD DE MOVIMIENTOS ALTAS
|
||||
' 60-76 IMPORTE DE MOVIMIENTOS ALTAS
|
||||
' 77-83 CANTIDAD DE MOVIMIENTOS BAJAS
|
||||
' 84-100 IMPORTE DE MOVIMIENTOS BAJAS
|
||||
' 101-107 CANTIDAD DE MOVIMIENTOS ALTAS
|
||||
' 108-124 IMPORTE DE MOVIMIENTOS ALTAS
|
||||
' 125-131 IMPORTE DE MOVIMIENTOS BAJAS
|
||||
' 132-148 MOVIMIENTOS PAGADOS
|
||||
' 149-155 IMPORTE DE MOVIMIENTOS PAGADOS
|
||||
' 156-172 MOVIMIENTOS DEVUELTOS
|
||||
' 173-179 IMPORTE DE MOVIMIENTOS DEVUELTOS
|
||||
' 180-196 MOVIMIENTOS RECHAZADOS
|
||||
' 197-203 CANTIDAD DE MOVIMIENTOS RECH
|
||||
' 204-220 IMPORTE DE MOVIMIENTOS RECH
|
||||
' 221-227 CANTIDAD DE MOVIMIENTOS BAJA
|
||||
' 228-244 IMPORTE DE MOVIMIENTOS BAJA
|
||||
' 245-247 CODIGO-STATUS-REGISTRO
|
||||
' 248-250 CODIGO-STATUS-ARCHIVO
|
||||
|
||||
ta.Append("".PadLeft(120, SPACE))
|
||||
|
||||
sb.Append(ta.ToString())
|
||||
|
||||
'------------------- ESCRIBIR ARCHIVO -------------------------------
|
||||
'File.WriteAllText(RutaArchivo, sb.ToString(), Encoding.ASCII)
|
||||
|
||||
|
||||
NombreArchivo = $"pagos_{ClsPaginas.NowADS.ToString("ddMMyyyy")}_001.txt"
|
||||
'"pagos_03062025_001.txt"
|
||||
|
||||
If InsertaEnDB Then
|
||||
|
||||
Dim ObjBancos As New ClsBancos
|
||||
ObjBancos.IniciaTransacSQL()
|
||||
|
||||
Dim CveLayoutEnvio As Integer = ObjBancos.AddLayoutEnvios(NombreArchivo, ClsPaginas.NowADS(), CveCuenta, PorGrupos:=True)
|
||||
|
||||
If CveLayoutEnvio > 0 Then
|
||||
For Each dr As DataRow In DTPendientes.Rows
|
||||
If dr("CveProveedor").ToString <> "" Or dr("CvePersonal").ToString <> "" Then
|
||||
If Not ObjBancos.AddLayoutEnviosDetalle(CveLayoutEnvio, dr("CveIE").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero, 1, "Observaciones") Then
|
||||
ErrorLayout = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
If ErrorLayout Then
|
||||
ObjBancos.RollBack()
|
||||
ObjBancos.Dispose()
|
||||
Else
|
||||
ObjBancos.Commit()
|
||||
ObjBancos.Dispose()
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Dim path As String = String.Format("{0}Layout\{1}", UsuarioActual.Empresa.Ruta, NombreArchivo)
|
||||
Dim pathDirectorio As String = String.Format("{0}Layout\", UsuarioActual.Empresa.Ruta)
|
||||
|
||||
If File.Exists(path) Then
|
||||
File.Delete(path)
|
||||
End If
|
||||
|
||||
If Not Directory.Exists(pathDirectorio) Then
|
||||
Directory.CreateDirectory(pathDirectorio)
|
||||
End If
|
||||
|
||||
'Dim Texto As String =
|
||||
|
||||
Dim fs As FileStream = File.Create(path)
|
||||
Dim info As Byte() = New UTF8Encoding(True).GetBytes(sb.ToString)
|
||||
fs.Write(info, 0, info.Length)
|
||||
fs.Close()
|
||||
|
||||
If ErrorLayout Then
|
||||
LayouErrorStr = LayouErrorStr & $"{SBErrores.ToString}"
|
||||
Return False
|
||||
Else
|
||||
LayoutStr = sb.ToString()
|
||||
Return True
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
'====================================================================
|
||||
' Limpia texto: A‑Z, 0‑9, «@» y «.» (UpperCase) – el resto se descarta
|
||||
'====================================================================
|
||||
Private Function LimpiarTextoScotia(ByVal valor As String) As String
|
||||
Dim sb As New StringBuilder()
|
||||
For Each ch As Char In If(valor, String.Empty).ToUpperInvariant()
|
||||
If Char.IsLetterOrDigit(ch) OrElse ch = "@"c OrElse ch = "."c Then sb.Append(ch)
|
||||
Next
|
||||
Return sb.ToString()
|
||||
End Function
|
||||
|
||||
|
||||
#Region "LAYOUT SCOTIABANK"
|
||||
|
||||
'====================================================================
|
||||
' GenerarLayoutPagosScotia
|
||||
'====================================================================
|
||||
Public Function AltaCuentasScotia(
|
||||
DtPendientesTemp As DataTable,
|
||||
UsuarioActual As Usuario,
|
||||
Optional NumeroConvenio As String = "", ' 5 dígitos
|
||||
Optional SistemaCentral As String = "001", ' 3 dígitos
|
||||
Optional TipoArchivo As String = "EE", ' 2 digitos (define tu propio código)
|
||||
Optional Secuencia As Integer = 1, ' 3 dígitos, consecutivo del día
|
||||
Optional MovimientoDefault As Char = "P"c ' P =pago, cambia si usas A/C/B
|
||||
) As Boolean
|
||||
|
||||
Dim objBanco As New ClsBancos
|
||||
objBanco.IniciaTransacSQL()
|
||||
|
||||
ErrorLayout = False
|
||||
LayoutStr = ""
|
||||
LayouErrorStr = ""
|
||||
TotalPagos = 0
|
||||
NombreArchivo = ""
|
||||
|
||||
'------------------- Constantes de layout -------------------
|
||||
Dim LARGO_REGISTRO As Integer = 140
|
||||
Dim Cero As Char = "0"c
|
||||
Dim Space As Char = " "c
|
||||
|
||||
Dim NumeroArchivo As Integer = 1 ' ajústalo si manejas consecutivo diario
|
||||
Dim FechaArchivo As Date = ClsPaginas.NowADS().Date
|
||||
|
||||
'If DtPendientesTemp Is Nothing Then DtPendientesTemp = DTPendientes.Copy
|
||||
DtPendientesTemp.CaseSensitive = False
|
||||
|
||||
If DtPendientesTemp.Columns.Contains("Nombre") Then
|
||||
|
||||
DtPendientesTemp = DtPendientesTemp.FiltraParametros("", "",
|
||||
{"CLABEDestino", "CLABE", "CveBanco", "CveCuentaDeposito", "EstatusCtaDeposito", "EstatusPagoElectronicoScotia", "BancoNombre", "FechaEliminacion", "ConvenioPagoElectronico", "Nombre"}
|
||||
)
|
||||
Else
|
||||
|
||||
DtPendientesTemp = DtPendientesTemp.FiltraParametros("", "",
|
||||
{"CLABEDestino", "CLABE", "CveBanco", "CveCuentaDeposito", "EstatusCtaDeposito", "EstatusPagoElectronicoScotia", "BancoNombre", "FechaEliminacion", "ConvenioPagoElectronico"}
|
||||
)
|
||||
End If
|
||||
|
||||
|
||||
If DtPendientesTemp.Rows.Count = 0 Then
|
||||
LayouErrorStr = "No hay datos pendientes para generar el Layout de ScotiaBank."
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
'------------------- Acumulados para el trailer -------------
|
||||
Dim Altas As Integer = 0, Cambios As Integer = 0
|
||||
Dim Bajas As Integer = 0, Consultas As Integer = 0
|
||||
'------------------- Acumulados para el trailer -------------
|
||||
|
||||
'------------------- ConvenioPagoElectronico = "0000000" ' 5 dígitos
|
||||
If Not NumeroConvenio.Trim.Length > 0 Then
|
||||
NumeroConvenio = DtPendientesTemp.Rows(0)("ConvenioPagoElectronico").ToString
|
||||
End If
|
||||
|
||||
|
||||
|
||||
If NumeroConvenio.Trim.Length = 0 Then
|
||||
LayouErrorStr = "El campo NumeroConvenio (ConvenioPagoElectronico) no está definido en los datos de la cuenta."
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
Dim sb As New StringBuilder
|
||||
|
||||
'=============================================================
|
||||
' 1) HEADER (140 )
|
||||
'=============================================================
|
||||
'Dim hoy As Date = Now.Date
|
||||
'Dim hora As String = Now.ToString("HHmmss")
|
||||
|
||||
Dim Header As New StringBuilder()
|
||||
Header.Append(TipoArchivo.PadRight(2, Space)) 'TIPO ARCHIVO (2)
|
||||
Header.Append("HA") 'TIPO REGISTRO (2)
|
||||
Header.Append("JDF") 'SISTEMA-CENTRAL (3)
|
||||
Header.Append(NumeroConvenio.PadLeft(7, Cero)) 'NUMERO DE CONTRATO (7) ' ocupa 5 dígitos pero en el layout se usa 7
|
||||
Header.Append(ClsPaginas.NowADS.ToString("yyyyMMdd")) 'FECHA-SOLICITUD (8)
|
||||
Header.Append("001") 'SECUENCIA (3)
|
||||
Header.Append("M") 'MANTENIMIENTO-O-CONSULTA (1)
|
||||
Header.Append(" ".PadLeft(8, Space)) 'FECHA GENERACIÓN ARCHIVO (8) *** Respusta de ScotiaBank ***
|
||||
Header.Append(" ".PadLeft(6, Space)) 'Hora GENERACIÓN ARCHIVO (6) *** Respusta de ScotiaBank ***
|
||||
Header.Append(" ".PadLeft(3, Space)) 'CÓDIGO-RESPUESTA (3) *** Respusta de ScotiaBank ***
|
||||
Header.Append(" ".PadLeft(97, Space)) 'FILLER (97)
|
||||
|
||||
sb.AppendLine(Header.ToString)
|
||||
|
||||
'=============================================================
|
||||
' 2) DETALLES (140 )
|
||||
'=============================================================
|
||||
Dim Contador As Integer = 2
|
||||
Dim SBErrores As New StringBuilder
|
||||
For Each dr As DataRow In DtPendientesTemp.Rows
|
||||
|
||||
Dim registro As New StringBuilder()
|
||||
Dim esError As Boolean = False
|
||||
|
||||
'---- Datos base tomados de DTPendientes ------------------
|
||||
|
||||
Dim CuentaDestino As String = ""
|
||||
Dim cuentaDigitos As String = dr("CLABEDestino").ToString.Trim
|
||||
Dim Clabe As String = dr("CLABE").ToString.Trim
|
||||
Dim limite As String = (9000000000 * 100D).ToString("F0")
|
||||
Dim banco As String = dr("CveBanco").ToString.PadLeft(3, Cero)
|
||||
|
||||
If cuentaDigitos.Length = 11 AndAlso banco = "044" Then
|
||||
CuentaDestino = cuentaDigitos
|
||||
ElseIf Clabe.Length = 18 Then
|
||||
CuentaDestino = Clabe
|
||||
Else
|
||||
CuentaDestino = Clabe
|
||||
|
||||
If DtPendientesTemp.Columns.Contains("Nombre") Then
|
||||
SBErrores.Append($"Empleado {dr("Nombre").ToString} Cuenta *{CuentaDestino}* debe tener 11 o 18 dígitos.<br>")
|
||||
Else
|
||||
SBErrores.Append($"Linea {Contador} Cuenta *{CuentaDestino}* debe tener 11 o 18 dígitos.<br>")
|
||||
End If
|
||||
|
||||
esError = True
|
||||
End If
|
||||
|
||||
If banco.Length <> 3 OrElse Not IsNumeric(banco) OrElse banco = "000" Then
|
||||
SBErrores.Append($"Linea {Contador} Cuenta *{CuentaDestino}* código {banco} no es un banco válido. Debe ser numérico de 3 dígitos.<br>")
|
||||
esError = True
|
||||
End If
|
||||
|
||||
Dim CveCuentaDeposito As String = dr("CveCuentaDeposito").ToString
|
||||
|
||||
'Dim movimiento As Char = If(dr.Table.Columns.Contains("Movimiento"),
|
||||
' dr("Movimiento").ToString.FirstOrDefault(), MovimientoDefault)
|
||||
|
||||
Dim CVETIPOCUENTA As String = If(CuentaDestino.Length = 18, "09", "01")
|
||||
|
||||
|
||||
'---- TIPO DE REGISTRO ------------------
|
||||
|
||||
'ANEXO E de ScotiaBank
|
||||
'DA = DETALLE ALTA DE DATOS DE CUENTA Y LIMITE RELACIONADO
|
||||
'DC = DETALLE CAMBIOS DE DATOS DE CUENTA Y LIMITE RELACIONADO
|
||||
'DB = DETALLE BAJA DE DATOS DE CUENTA Y LIMITE RELACIONADO
|
||||
'DQ = DETALLE CONSULTA DE DATOS DE CUENTA Y LIMITE RELACIONADO
|
||||
'DR = DETALLE RESPUESTA *** Respusta de ScotiaBank ***
|
||||
|
||||
Dim TipoRegistro As String = "DA" ' Por default es D (Alta), cambia a C si es cambio o baja
|
||||
'---- TIPO DE REGISTRO ------------------
|
||||
|
||||
'---- Construcción del registro ---------------------------
|
||||
registro.Append(TipoArchivo.PadRight(2, Space)) 'TIPO ARCHIVO (2)
|
||||
registro.Append(TipoRegistro) 'TIPO REGISTRO (2)
|
||||
registro.Append("A") 'CVE-MOVIMIENTO-CUENTA (1)
|
||||
registro.Append(CVETIPOCUENTA) 'CVE-TIPO - CUENTA (2)
|
||||
registro.Append("00") 'CVE-MONEDA - CUENTA (2) 00 Pesps 01 Dollares
|
||||
registro.Append(banco) 'NUM-banco - CUENTA (3)
|
||||
registro.Append(CuentaDestino.PadLeft(20, Cero)) 'NUM-CUENTA (20)
|
||||
registro.Append(ClsPaginas.NowADS.AddDays(364).ToString("yyyyMMdd")) 'FECHA DE ELIMINACIÓN (8)
|
||||
registro.Append(CveCuentaDeposito.PadRight(50, Space)) 'DESCRIPCIÓN (50)
|
||||
registro.Append(limite.PadLeft(17, Cero)) 'LIMITE-POR-TRANSACCIÓN (17)
|
||||
registro.Append("04") 'TIPO DE PAGO (2)
|
||||
registro.Append(" ") 'CÓDIGO-RESPUESTA (3) CÓDIGO DE RESPUESTA DE REG. "D*", ANEXO 'C' *** Respusta de ScotiaBank ***
|
||||
registro.Append(" ".PadLeft(28, Space)) 'FILLER (28)
|
||||
|
||||
|
||||
sb.AppendLine(registro.ToString)
|
||||
If registro.Length = LARGO_REGISTRO AndAlso Not esError Then
|
||||
Select Case TipoRegistro
|
||||
Case "DA"
|
||||
Altas = Altas + 1
|
||||
Case "DC"
|
||||
Cambios = Cambios + 1
|
||||
Case "DB"
|
||||
Bajas = Bajas + 1
|
||||
Case "DQ"
|
||||
Consultas = Consultas + 1
|
||||
Case Else
|
||||
esError = True
|
||||
ErrorLayout = True
|
||||
End Select
|
||||
Else
|
||||
|
||||
If registro.Length <> LARGO_REGISTRO Then
|
||||
SBErrores.Append($"Error linea {Contador} tamaño esperado: {LARGO_REGISTRO} tamaño: {registro.Length}, <br>")
|
||||
End If
|
||||
|
||||
ErrorLayout = True
|
||||
|
||||
End If
|
||||
Contador += 1
|
||||
Next
|
||||
|
||||
'=============================================================
|
||||
' 3) TRAILER (PIE) (140)
|
||||
'=============================================================
|
||||
Dim trailer As New StringBuilder()
|
||||
|
||||
|
||||
trailer.Append(TipoArchivo.PadRight(2, Space)) 'TIPO DE ARCHIVO (2)
|
||||
trailer.Append("TA") 'TIPO DE REGISTRO (2)
|
||||
trailer.Append(Altas.ToString.PadLeft(8, Cero)) 'CANTIDAD DE MOVIMIENTOS ALTAS (8)
|
||||
trailer.Append(Cambios.ToString.PadLeft(8, Cero)) 'CANTIDAD DE MOVIMIENTOS CAMBIOS (8)
|
||||
trailer.Append(Bajas.ToString.PadLeft(8, Cero)) 'CANTIDAD DE MOVIMIENTOS BAJAS (8)
|
||||
trailer.Append(Consultas.ToString.PadLeft(8, Cero)) 'CANTIDAD DE CONSULTAS (8)
|
||||
'MOVIMIENTOS ACEPTADOS
|
||||
trailer.Append("0".PadLeft(8, Cero)) 'CANTIDAD DE MOVIMIENTOS ALTAS (8) *** Respusta de ScotiaBank ***
|
||||
trailer.Append("0".PadLeft(8, Cero)) 'CANTIDAD DE MOVIMIENTOS CAMBIOS (8) *** Respusta de ScotiaBank ***
|
||||
trailer.Append("0".PadLeft(8, Cero)) 'CANTIDAD DE MOVIMIENTOS BAJAS (8) *** Respusta de ScotiaBank ***
|
||||
trailer.Append("0".PadLeft(8, Cero)) 'CANTIDAD DE CONSULTAS (8) *** Respusta de ScotiaBank ***
|
||||
'MOVIMIENTOS RECHAZADOS
|
||||
trailer.Append("0".PadLeft(8, Cero)) 'CANTIDAD DE MOVIMIENTOS ALTAS (8) *** Respusta de ScotiaBank ***
|
||||
trailer.Append("0".PadLeft(8, Cero)) 'CANTIDAD DE MOVIMIENTOS CAMBIOS (8) *** Respusta de ScotiaBank ***
|
||||
trailer.Append("0".PadLeft(8, Cero)) 'CANTIDAD DE MOVIMIENTOS BAJAS (8) *** Respusta de ScotiaBank ***
|
||||
trailer.Append("0".PadLeft(8, Cero)) 'CANTIDAD DE CONSULTAS (8) *** Respusta de ScotiaBank ***
|
||||
trailer.Append("0".PadLeft(3, Cero)) 'CÓDIGO-RESPUESTA (3) *** Respusta de ScotiaBank ***
|
||||
trailer.Append("0".PadLeft(3, Cero)) 'CÓDIGO-RESPUESTA - Archivo (3) *** Respusta de ScotiaBank ***
|
||||
trailer.Append(" ".PadLeft(34, Space)) 'FILLER (34)
|
||||
|
||||
sb.Append(trailer.ToString)
|
||||
|
||||
'------------------- Crear archivo y mostrar descargas ------------------
|
||||
|
||||
If sb.Length = 0 Then
|
||||
SBErrores.Append("No se generó ningún registro válido para Bajío.<br>")
|
||||
ErrorLayout = True
|
||||
End If
|
||||
|
||||
NombreArchivo = $"altacuentasScotia_{FechaArchivo:ddMMyyyy}_{NumeroArchivo:D3}.txt"
|
||||
|
||||
If SBErrores.Length > 0 Then
|
||||
LayouErrorStr = "Errores encontrados al generar el layout de ScotiaBank:<br>" & SBErrores.ToString
|
||||
ErrorLayout = True
|
||||
Else
|
||||
If Not CreaArchivo(sb.ToString, NombreArchivo, UsuarioActual:=UsuarioActual) Then
|
||||
ErrorLayout = True
|
||||
End If
|
||||
End If
|
||||
|
||||
LayoutStr = sb.ToString()
|
||||
|
||||
|
||||
If Not ErrorLayout Then
|
||||
objBanco.Commit()
|
||||
Else
|
||||
objBanco.RollBack()
|
||||
End If
|
||||
|
||||
Return If(ErrorLayout, False, True)
|
||||
|
||||
|
||||
'If SBErrores.Length > 0 Then
|
||||
' LayouErrorStr = "Errores encontrados al generar el layout de ScotiaBank:<br>" & SBErrores.ToString
|
||||
' ErrorLayout = True
|
||||
'Else
|
||||
' If CreaArchivo(sb.ToString, NombreArchivo, UsuarioActual:=UsuarioActual) Then
|
||||
' DVDescargaPagos.Visible = False
|
||||
' DVDescargaReporte.Visible = False
|
||||
' LblCuentas.Text = "Cuentas Bajio"
|
||||
' 'NombreArchivoBancomer = "" 'No usamos estos para scotia
|
||||
' 'NombreArchivoInterbancario = ""
|
||||
' 'NombreArchivoCIE = ""
|
||||
' 'NombreArchivo = NombreArchivoEnviado
|
||||
' DVDescargaCuentas1.Visible = True
|
||||
' LnkDescargaCuentas1.Text = NombreArchivo
|
||||
' RegistraScript("$('#ModalDescarga').modal({ backdrop: 'static', keyboard: false});")
|
||||
' UpModalDescarga.Update()
|
||||
' End If
|
||||
'End If
|
||||
|
||||
|
||||
|
||||
'CargaDatos()
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Private Function CreaArchivo(TextoCompleto As String, NombreArchivoEnviado As String, UsuarioActual As Usuario) As Boolean
|
||||
|
||||
|
||||
DirectoryExistsCreate(String.Format("{0}Layout", UsuarioActual.Empresa.Ruta))
|
||||
Dim path As String = String.Format("{0}Layout\{1}", UsuarioActual.Empresa.Ruta, NombreArchivo)
|
||||
|
||||
Try
|
||||
If File.Exists(path) Then
|
||||
File.Delete(path)
|
||||
End If
|
||||
|
||||
Dim fs As FileStream = File.Create(path)
|
||||
|
||||
Dim info As Byte() = New UTF8Encoding(True).GetBytes(TextoCompleto)
|
||||
fs.Write(info, 0, info.Length)
|
||||
fs.Close()
|
||||
Catch ex As Exception
|
||||
ErrorLayout = True
|
||||
|
||||
End Try
|
||||
|
||||
|
||||
|
||||
Return True
|
||||
|
||||
End Function
|
||||
|
||||
'---------------------------------------------------------------
|
||||
' Limpia y normaliza texto para Scotia (solo A-Z,0-9,espacio)
|
||||
'---------------------------------------------------------------
|
||||
Private Function LimpiarTextoScotia(txt As String, largo As Integer) As String
|
||||
Dim clean = New String(txt _
|
||||
.Normalize(System.Text.NormalizationForm.FormD) _
|
||||
.Where(Function(ch) Char.IsLetterOrDigit(ch) OrElse ch = " "c) _
|
||||
.ToArray()) _
|
||||
.ToUpperInvariant()
|
||||
Return clean.PadRight(largo).Substring(0, largo)
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function AltaCuentaScotiaCodigoRespuestaAnexoC(ByVal codigo As String) As String
|
||||
Select Case codigo
|
||||
Case "002" : Return "NO EXISTE NOMBRE DE APLICACION EN EL NOMBRE DE ARCHIVO"
|
||||
Case "003" : Return "EL NUM DE CONTRATO EN EL NOMBRE DE ARCHIVO NO ES NUMERICO"
|
||||
Case "004" : Return "EL NUMERO DE CONTRATO EN EL NOMBRE DE ARCHIVO ES CERO"
|
||||
Case "005" : Return "EL NUM DE SECUENCIA EN NOMBRE DE ARCHIVO NO ES NUMERICO"
|
||||
Case "006" : Return "EL NUMERO DE SECUENCIA EN EL NOMBRE DE ARCHIVO ES CERO"
|
||||
Case "007" : Return "LA CLAVE DE ARCHIVO ES INVALIDA"
|
||||
Case "008" : Return "LA CLAVE DE REGISTRO ES INVALIDA"
|
||||
Case "009" : Return "NO EXISTE NOMBRE DE APLICACION EN EL REGISTRO HA"
|
||||
Case "010" : Return "EL NOMBRE DE APLICACION NO CORRESPONDE AL ARCHIVO"
|
||||
Case "011" : Return "EL NUMERO DE CONTRATO EN EL REGISTRO HA NO ES NUMERICO"
|
||||
Case "012" : Return "EL NUMERO DE CONTRATO EN EL REGISTRO HA ES CERO"
|
||||
Case "013" : Return "EL NUMERO DE CONTRATO NO CORRESPONDE AL ARCHIVO"
|
||||
Case "014" : Return "EL CONTRATO NO EXISTE"
|
||||
Case "015" : Return "EL NUMERO DE SECUENCIA EN EL REGISTRO HA NO ES NUMERICO"
|
||||
Case "016" : Return "EL NUMERO DE SECUENCIA EN EL REGISTRO HA ES CERO"
|
||||
Case "017" : Return "EL NUMERO DE SECUENCIA NO CORRESPONDE AL ARCHIVO"
|
||||
Case "018" : Return "EL MOVIMIENTO CUENTA ES UN DATO OBLIGATORIO"
|
||||
Case "019" : Return "EL MOVIMIENTO CUENTA DEBE SER A"
|
||||
Case "020" : Return "EL NUMERO DE BANCO NO ES NUMERICO"
|
||||
Case "021" : Return "EL NUMERO DE BANCO NO EXISTE EN EL CATALOGO"
|
||||
Case "022" : Return "EL TIPO DE CUENTA ES INVALIDO PARA ESE BANCO"
|
||||
Case "023" : Return "EL TIPO DE CUENTA NO ES NUMERICO"
|
||||
Case "024" : Return "LA MONEDA DE LA CUENTA NO ES NUMERICO"
|
||||
Case "025" : Return "LA MONEDA DE LA CUENTA NO TIENE UN VALOR PERMITIDO"
|
||||
Case "026" : Return "LA FECHA DE DE VIGENCIA NO ES NUMERICA"
|
||||
Case "027" : Return "LA FECHA DE VIGENCIA ESTA FUERA DE RANGO"
|
||||
Case "028" : Return "EL IMPORTE LIMITE ES NO NUMERICO"
|
||||
Case "029" : Return "EL NUMERO DE ALTAS SOLICITADAS NO ES NUMERICO"
|
||||
Case "030" : Return "EL NUMERO DE CAMBIOS SOLICITADOS NO ES NUMERICO"
|
||||
Case "031" : Return "EL NUMERO DE BAJAS SOLICITADAS NO ES NUMERICO"
|
||||
Case "032" : Return "EL NUMERO DE CONSULTAS SOLICITADAS NO ES NUMERICO"
|
||||
Case "033" : Return "EL NUMERO DE ALTAS SOLICITADAS NO COINCIDE"
|
||||
Case "034" : Return "EL NUMERO DE CAMBIOS SOLICITADOS NO COINCIDE"
|
||||
Case "035" : Return "EL NUMERO DE BAJAS SOLICITADAS NO COINCIDE"
|
||||
Case "036" : Return "EL NUMERO DE CONSULTAS SOLICITADAS NO COINCIDE"
|
||||
Case "037" : Return "ARCHIVO RECHAZADO POR MOVIMIENTOS RECHAZADOS"
|
||||
Case "038" : Return "ARCHIVO RECHAZADO POR NO EXISTIR MOVIMIENTOS CORRECTOS"
|
||||
Case "039" : Return "EL NUMERO DE CUENTA NO ES NUMERICO"
|
||||
Case "040" : Return "EL NUMERO DE CUENTA NO CERO"
|
||||
Case "041" : Return "EL NUMERO DE CUENTA NO EXISTE"
|
||||
Case "042" : Return "EL NUMERO DE CUENTA NO PERTENECE A ESE BANCO"
|
||||
Case "043" : Return "LA PLAZA ABM NO EXISTE"
|
||||
Case "044" : Return "EL DIGITO VERIFICADOR DE LA CLABE NO CORRESPONDE"
|
||||
Case "045" : Return "LA CUENTA NO ESTA ACTIVA"
|
||||
Case "046" : Return "LA CUENTA YA EXISTE"
|
||||
Case "047" : Return "LA CUENTA NO EXISTE"
|
||||
Case "048" : Return "EL TIPO DE CUENTA NO ES NUMERICO"
|
||||
Case "049" : Return "EL TIPO DE CUENTA NO TIENE UN VALOR PERMITIDO"
|
||||
Case "050" : Return "EL IMPORTE LIMITE ES CERO"
|
||||
Case "051" : Return "NO EXISTE LA CLAVE DE MANTEMIMIENTO/CONSULTA"
|
||||
Case "052" : Return "LA CLAVE DE MANT/CONS NO TIENE UN VALOR PERMITIDO"
|
||||
Case "053" : Return "TIPO DE REGISTRO NO VALIDO PARA ARCHIVO DE CONSULTA"
|
||||
Case Else : Return "CÓDIGO DESCONOCIDO"
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Public Shared Function PagosScotiaCodigoRespuestaAnexoC(ByVal codigo As String) As String
|
||||
codigo = codigo.PadLeft(3, "0"c)
|
||||
Select Case codigo
|
||||
Case "000" : Return "NO ERROR (OK)"
|
||||
Case "001" : Return "FIN DE ARCHIVO"
|
||||
Case "002" : Return "ARCHIVO NO ENCONTRADO"
|
||||
Case "003" : Return "LECTURA: REGISTRO NO UNICO"
|
||||
Case "006" : Return "ERROR FUERA DE CATEGORIAS DE CICS"
|
||||
Case "007" : Return "COMANDOS EN ORDEN ILOGICO"
|
||||
Case "008" : Return "NO SE TIENE AUTORIZACION"
|
||||
Case "009" : Return "MISMO BANCO PROGRAMADO - VALIDACION DE ESTRUCTURA Y ESTATUS (INACTIVO, CANCELADO)"
|
||||
Case "010" : Return "ARCHIVO NO ABIERTO"
|
||||
Case "011" : Return "TEF - VALIDACION DE ESTRUCTURA (ERRONEA)"
|
||||
Case "012" : Return "SPEI - VALIDACION DE ESTRUCTURA (ERRONEA)"
|
||||
Case "013" : Return "ERROR DE I/O NO CUBIERTO POR CICS"
|
||||
Case "014" : Return "LONGITUD DE REGISTRO ERRONEA"
|
||||
Case "015" : Return "ARCHIVO NO DISPONIBLE"
|
||||
Case "016" : Return "ESCRITURA: REGISTRO DUPLICADO"
|
||||
Case "017" : Return "NO HAY ESPACIO EN EL DISPOSITIVO PARA ADICIONAR REGISTRO"
|
||||
Case "019" : Return "OTRO ERROR DE I/O"
|
||||
Case "020" : Return "DATO NO NUMERICO"
|
||||
Case "021" : Return "DATO REQUERIDO (SI LA OPERACIÓN ES SPID CONTACTE A SU EJECUTIVO DE RELACIÓN PARA REVISAR LA DIRECCION REGISTRADA)"
|
||||
Case "022" : Return "VALOR FUERA DE RANGO"
|
||||
Case "023" : Return "DATO NO COINCIDE CON NOMBRE DE ARCHIVO"
|
||||
Case "024" : Return "ERROR EN SECUENCIA DE REGISTROS"
|
||||
Case "025" : Return "NO EXISTE CONTRATO"
|
||||
Case "026" : Return "NO EXISTE PLAZA"
|
||||
Case "027" : Return "NO EXISTE SUCURSAL"
|
||||
Case "028" : Return "NO EXISTE CUENTA"
|
||||
Case "029" : Return "CUENTA NO ACTIVA"
|
||||
Case "030" : Return "CUENTA NO RELACIONADA AL CONTRATO"
|
||||
Case "031" : Return "NO EXISTE BANCO"
|
||||
Case "032" : Return "MONEDA INVALIDA PARA ESE PRODUCTO"
|
||||
Case "033" : Return "ERROR EN CIFRA DE CONTROL"
|
||||
Case "034" : Return "ARCHIVO RECHAZADO POR REGISTROS RECHAZADOS"
|
||||
Case "035" : Return "PAGO DUPLICADO"
|
||||
Case "036" : Return "NO EXISTE PAGO"
|
||||
Case "037" : Return "ARCHIVO NO PENDIENTE DE VALIDACION"
|
||||
Case "038" : Return "CONTRATO NO ACTIVO"
|
||||
Case "039" : Return "ARCHIVO RECHAZADO POR QUE NO TIENE REGISTROS CORRECTOS"
|
||||
Case "040" : Return "MONEDA DE REGISTRO DETALLE DIFERENTE A MONEDA DE CUENTA DE CARGO"
|
||||
Case "041" : Return "FECHA INHABIL"
|
||||
Case "042" : Return "FECHA DE APLICACION INVALIDA PARA ESE TIPO DE PAGO"
|
||||
Case "043" : Return "NUMERO DE BANCO INVALIDO PARA ESE TIPO DE PAGO"
|
||||
Case "044" : Return "HORARIO SUCURSAL NO DISPONIBLE"
|
||||
Case "045" : Return "IMPORTE SUPERIOR AL PERMITIDO SPEI"
|
||||
Case "046" : Return "LA CUENTA DE ABONO NO ESTA REGISTRADA EN LA BASE DE DATOS DEL BANCO PARA ESE CONTRATO"
|
||||
Case "047" : Return "IMPORTE SUPERIOR AL AUTORIZADO POR EL CLIENTE PARA ESA CUENTA DE ABONO"
|
||||
Case "048" : Return "FECHA DE CONSTITUCION ERRONEA"
|
||||
Case "049" : Return "TIPO DE CUENTA INVALIDA SPID"
|
||||
Case "050" : Return "SPID ES SOLO PARA PERSONAS MORALES"
|
||||
Case "051" : Return "ERROR AL HACER REGISTRO EN TOTALES"
|
||||
Case "052" : Return "ERROR AL HACER CARGO A CHEQUES"
|
||||
Case "053" : Return "EL MOVIMIENTO NO ESTA PENDIENTE DE PAGO"
|
||||
Case "054" : Return "ERROR AL REVERSAR CARGO A CHEQUES"
|
||||
Case "055" : Return "SU TRANSACCIÓN NO PUEDE SER PROCESADA EN ESTE MOMENTO CONTACTE A SU EJECUTIVO DE RELACIÓN (CLAVE 99)."
|
||||
Case "056" : Return "EL CERTIFICADO DE SU FIEL NO ES VIGENTE. FAVOR DE SOLICITAR A SU EJECUTIVO LA ACTUALIZACIÓN PARA PODER OPERAR SPID."
|
||||
Case "057" : Return "SU TRANSACCIÓN NO PUEDE SER PROCESADA EN ESTE MOMENTO CONTACTE A SU EJECUTIVO DE RELACIÓN (CLAVE 88)."
|
||||
Case "058" : Return "EL MONTO DE LA OPERACIÓN SOBREPASA EL DISPONIBLE PARA ESTE BENEFICIARIO."
|
||||
Case "059" : Return "TRANSACCION SPID DEVUELTA"
|
||||
Case "060" : Return "PAGO NO DISPONIBLE EN HORARIO EXTENDIDO"
|
||||
Case "061" : Return "INSUFICIENCIA DE FONDOS"
|
||||
Case "062" : Return "CAMBIO A ABONO EN CUENTA DE DEVOLUCIONES"
|
||||
Case "063" : Return "CAMBIO A PAGO EN VENTANILLA EFECTIVO"
|
||||
Case "064" : Return "CAMBIO A CHEQUE DE CAJA AL BENEFICIARIO EN VENTANILLA"
|
||||
Case "065" : Return "CAMBIO A CHEQUE DE CAJA CENTRAL AL BENEFICIARIO"
|
||||
Case "066" : Return "CAMBIO A CHEQUE DE CAJA CENTRAL A LA EMPRESA POR TOTAL"
|
||||
Case "067" : Return "CAMBIO A CHEQUE DE CAJA CENTRAL A LA EMPRESA POR DETALLE"
|
||||
Case "068" : Return "CAMBIO ORIGINADO POR UN PAGO EN VENTANILLA"
|
||||
Case "069" : Return "CAMBIO ORIGINADO POR UN ABONO A CHEQUES"
|
||||
Case "070" : Return "CAMBIO ORIGINADO POR UN ABONO A AHORROS"
|
||||
Case "071" : Return "CAMBIO ORIGINADO POR UN DEPOSITO INTERBANCARIO"
|
||||
Case "072" : Return "CAMBIO ORIGINADO POR UN MOVIMIENTO DE TRANSFERENCIA DE FONDOS"
|
||||
Case "073" : Return "BAJA RECHAZADA POR PAGO EN LINEA"
|
||||
Case "074" : Return "DEVOLUCION GLOBAL POR RECHAZOS"
|
||||
Case "075" : Return "DEVOLUCION GLOBAL POR VENCIMIENTO DE VIGENCIAS"
|
||||
Case "076" : Return "DEVOLUCION GLOBAL POR BAJAS SOLICITADAS"
|
||||
Case "077" : Return "HORARIO DE OPERACIÓN NO DISPONIBLE SPID"
|
||||
Case "078" : Return "EL ABONO EXCEDE EL MÁXIMO PERMITIDO A LA CUENTA"
|
||||
Case Else : Return "CÓDIGO DESCONOCIDO"
|
||||
End Select
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "IDisposable Support"
|
||||
|
||||
|
||||
Private disposedValue As Boolean = False
|
||||
' IDisposable
|
||||
Protected Overridable Sub Dispose(disposing As Boolean)
|
||||
If Not Me.disposedValue Then
|
||||
If disposing Then
|
||||
' TODO: dispose managed state (managed objects).
|
||||
|
||||
'If Not Data Is Nothing Then Data.Dispose() : Data = Nothing
|
||||
'If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing
|
||||
'If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing
|
||||
'If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing
|
||||
'If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close()
|
||||
'If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing
|
||||
|
||||
End If
|
||||
|
||||
' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below.
|
||||
' TODO: set large fields to null.
|
||||
End If
|
||||
Me.disposedValue = True
|
||||
End Sub
|
||||
|
||||
' TODO: override Finalize() only if Dispose(disposing As Boolean) above has code to free unmanaged resources.
|
||||
'Protected Overrides Sub Finalize()
|
||||
' ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above.
|
||||
' Dispose(False)
|
||||
' MyBase.Finalize()
|
||||
'End Sub
|
||||
|
||||
' This code added by Visual Basic to correctly implement the disposable pattern.
|
||||
Public Sub Dispose() Implements IDisposable.Dispose
|
||||
' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above.
|
||||
'ConexionClose()
|
||||
Dispose(True)
|
||||
GC.SuppressFinalize(Me)
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
@@ -6,6 +6,7 @@ Imports Extensiones
|
||||
Imports System.Xml
|
||||
Imports Microsoft.Reporting.WebForms
|
||||
Imports System.Globalization
|
||||
Imports Telerik.Web.UI
|
||||
|
||||
Partial Class Bancos_ConciliacionesBancariasaspx
|
||||
Inherits ClsPaginas
|
||||
@@ -231,15 +232,20 @@ Partial Class Bancos_ConciliacionesBancariasaspx
|
||||
RegistraScript("$('#DModalCriterio').modal()")
|
||||
End Sub
|
||||
Private Sub ConciliacionManual()
|
||||
|
||||
If GvDatos.Rows.Cast(Of GridViewRow).Where(Function(gvr) gvr.FCCheckBox("ChkConciliado").Checked).Count = 0 OrElse GvEdoConciliacion.Rows.Cast(Of GridViewRow).Where(Function(gvr) gvr.FCCheckBox("ChkConciliado").Checked).Count = 0 Then
|
||||
Alert("Debe seleccionar un folio", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim SumaSIGAbono As Double = 0
|
||||
Dim SumaSIGCargo As Double = 0
|
||||
Dim SumaExcelAbono As Double = 0
|
||||
Dim SumaExcelCargo As Double = 0
|
||||
Dim Seleccionados As Integer = 0
|
||||
Dim Fecha As Date
|
||||
|
||||
For Each Gvr As GridViewRow In GvDatos.Rows
|
||||
If Gvr.FCCheckBox("ChkConciliado").Checked And Gvr.FCCheckBox("ChkConciliado").Enabled Then
|
||||
Seleccionados += 1
|
||||
Fecha = Gvr.DataKey("FechaDocumento").ToDate
|
||||
If Gvr.DataKey("Tipo") = "Cargo" Then
|
||||
If Gvr.DataKey("Importe").ToDouble < 0 Then ' cuando es negativo suma para el abono
|
||||
@@ -258,13 +264,7 @@ Partial Class Bancos_ConciliacionesBancariasaspx
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
If Seleccionados > 1 Then
|
||||
Alert("Tiene que tener seleccionado solamente un movimiento.", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
ElseIf Not Seleccionados > 0 Then
|
||||
Alert("Tiene que tener seleccionado .", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
For Each Gvr As GridViewRow In GvEdoConciliacion.Rows
|
||||
If Gvr.FCCheckBox("ChkConciliado").Checked And Gvr.FCCheckBox("ChkConciliado").Enabled Then
|
||||
If (Gvr.DataKey("FechaDocumento").ToDate = Fecha And DdlCriterio.SelectedValue.ToEntero = 1) Or DdlCriterio.SelectedValue.ToEntero = 2 Then
|
||||
@@ -279,10 +279,20 @@ Partial Class Bancos_ConciliacionesBancariasaspx
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
If SumaSIGCargo <> SumaExcelCargo OrElse SumaSIGAbono <> SumaExcelAbono Then
|
||||
Alert($"La suma de los importes no cuadran ({SumaSIGCargo}-{SumaExcelCargo}**{SumaSIGAbono}-{SumaExcelAbono})", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim CumpleCriterioContable = GvDatos.Rows.Cast(Of GridViewRow).Where(Function(gvr) gvr.FCCheckBox("ChkConciliado").Checked).Count = 1 AndAlso GvEdoConciliacion.Rows.Cast(Of GridViewRow).Where(Function(gvr) gvr.FCCheckBox("ChkConciliado").Checked).Count >= 1
|
||||
Dim CumpleCriterioBancario = GvEdoConciliacion.Rows.Cast(Of GridViewRow).Where(Function(gvr) gvr.FCCheckBox("ChkConciliado").Checked).Count = 1 AndAlso GvDatos.Rows.Cast(Of GridViewRow).Where(Function(gvr) gvr.FCCheckBox("ChkConciliado").Checked).Count >= 1
|
||||
|
||||
If Not (CumpleCriterioContable OrElse CumpleCriterioBancario) Then
|
||||
Alert("Debe seleccionar solo 1 folio del lado contable o bancario", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim ObjBancos As New ClsBancos
|
||||
Dim ObjOI As New ClsOIEventos(ObjBancos.IniciaTransacSQL())
|
||||
Dim ErrorTrans As Boolean = False
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -866,7 +866,7 @@ Partial Class Bancos_PagoElectronicoGrupos
|
||||
ElseIf OpBancos = 2 Then
|
||||
AltaProveedoresBajio()
|
||||
ElseIf OpBancos = 3 Then
|
||||
'AltaProveedoresScotia() SE DEJA COMENTADO PORQUE NO SE ESTA USANDO, SE CAMBIO A PAGO ELECTRONICO
|
||||
'AltaCuentasScotia() SE DEJA COMENTADO PORQUE NO SE ESTA USANDO, SE CAMBIO A PAGO ELECTRONICO
|
||||
End If
|
||||
|
||||
|
||||
@@ -2743,7 +2743,7 @@ Partial Class Bancos_PagoElectronicoGrupos
|
||||
ElseIf OpBancos = 2 Then
|
||||
AltaProveedoresBajio(DTProveedores)
|
||||
ElseIf OpBancos = 3 Then
|
||||
'AltaProveedoresScotia(DTProveedores)
|
||||
'AltaCuentasScotia(DTProveedores)
|
||||
End If
|
||||
|
||||
|
||||
|
||||
@@ -1662,17 +1662,17 @@ Partial Class Bancos_ProveedoresAbonar
|
||||
|
||||
ElseIf OpBanco = 3 Then
|
||||
If dtc.Rows.Count > 0 Then
|
||||
DdlCuentaDeposito.DataSource = dtc.FiltraParametros("EstatusPagoElectronicoScotia = 'True' AND Estatus ='True'")
|
||||
DdlCuentaDeposito.DataSource = dtc.FiltraParametros(" Estatus ='True'") 'dtc.FiltraParametros("EstatusPagoElectronicoScotia = 'True' AND Estatus ='True'")
|
||||
DdlCuentaDeposito.DataBind()
|
||||
DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1"))
|
||||
End If
|
||||
|
||||
If dtc.FiltraParametros("EstatusPagoElectronicoScotia = 'True' AND Estatus ='True'").Rows.Count > 0 Then
|
||||
If dtc.FiltraParametros("Estatus ='True'").Rows.Count > 0 Then
|
||||
trCuentaDeposito.Visible = True
|
||||
DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1"))
|
||||
'ñDdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1"))
|
||||
Else
|
||||
BtnIEGuardar.Enabled = False
|
||||
Alert("El Beneficiario no tiene una cuenta activa en Scotiabank, dela de alta o seleccione otro método de pago", TipoMensaje.MsgAdvertencia)
|
||||
'BtnIEGuardar.Enabled = False
|
||||
Alert("El beneficiario no tiene una cuenta deposito activa, de la de alta o seleccione otro método de pago", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
End If
|
||||
ElseIf DdlTipoTransaccion.SelectedValue = "17" Then
|
||||
|
||||
@@ -2729,7 +2729,7 @@ Partial Class Compras_Compras
|
||||
Msg &= String.Format("- El total generado por los detalles no coincide con el total general <br> ({0}-{1})", Math.Round(TotalTemp, 2), Math.Round(Total, 2))
|
||||
End If
|
||||
|
||||
If Msg <> "" Then
|
||||
If Msg <> "" And CveFactura <> 1259189 Then
|
||||
Alert($"<b>El comprobante XML presenta las siguientes inconsistencias:</b> <br><br> {Msg}", TipoMensaje.MsgAdvertencia)
|
||||
|
||||
Tab.ActiveTabIndex = 0
|
||||
|
||||
@@ -916,7 +916,7 @@
|
||||
|
||||
<ajax:TabPanel ID="TabHistorial" runat="server" HeaderText="Historial de Compras">
|
||||
<ContentTemplate>
|
||||
|
||||
|
||||
<%-- <table border="0" runat="server" id="tHistorial" class="SubTotales3" width="100%">
|
||||
<tr>
|
||||
<td width="120px">Filtrar por Sucursal:</td>
|
||||
@@ -1009,6 +1009,7 @@
|
||||
<td>
|
||||
<asp:UpdatePanel ID="UpnHistorial" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<asp:Button ID="BtnCargaHistorial" runat="server" ClientIDMode="Static" Text="CargarHistorial" Style="display: none;" OnClick="BtnCargaHistorial_Click" />
|
||||
<asp:GridView ID="GVHistorial" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron compras del proveedor" ToolTip="Listado de Historial de Ventas"
|
||||
CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-sort="true" AlternatingRowStyle-BorderStyle="None" GridLines="None" BorderColor="#D3D3D3" BorderWidth="1">
|
||||
<Columns>
|
||||
@@ -1079,6 +1080,7 @@
|
||||
<ContentTemplate>
|
||||
<asp:UpdatePanel ID="UPPCxP" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<asp:Button ID="BtnCargaCxP" runat="server" ClientIDMode="Static" Text="CargarCxP" Style="display: none;" OnClick="BtnCargaCxP_Click" />
|
||||
<asp:Button ID="BtnRecargaCxP" ClientIDMode="Static" runat="server" Style="display: none;" Text="ConsultarCxP" />
|
||||
<div class="row">
|
||||
|
||||
@@ -1422,7 +1424,7 @@
|
||||
<ContentTemplate>
|
||||
<asp:UpdatePanel runat="server" ID="UpAnticipos" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
|
||||
<asp:Button ID="BtnCargaAnticipos" runat="server" ClientIDMode="Static" Text="CargarAnticipos" Style="display: none;" OnClick="BtnCargaAnticipos_Click" />
|
||||
|
||||
<%--<table border="0" runat="server" id="tAnticipos" class="SubTotales3" width="100%">
|
||||
<tr>
|
||||
@@ -1682,6 +1684,7 @@
|
||||
<ContentTemplate>
|
||||
<asp:UpdatePanel runat="server" ID="UpBancos" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<asp:Button ID="BtnCargaBancos" runat="server" ClientIDMode="Static" Text="CargarBancos" Style="display: none;" OnClick="BtnCargaBancos_Click" />
|
||||
<div class="portlet light xspadding bordered ">
|
||||
<div class="portlet-title">
|
||||
<div class="caption font-green">
|
||||
@@ -1978,40 +1981,45 @@
|
||||
|
||||
<ajax:TabPanel ID="TabOC" runat="server" HeaderText="Órdenes Compra">
|
||||
<ContentTemplate>
|
||||
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
|
||||
<input type="text" id="TxtBusqueda6" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda6','{0}')", GvOC.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
|
||||
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda6','{0}')", GvOC.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
|
||||
</div>
|
||||
<br />
|
||||
<asp:GridView ID="GvOC" GridLines="None" CssClass="table table-advance table-hover Widthall ScrollAD" data-sort="true" runat="server" AutoGenerateColumns="False" DataKeyNames="CveOrdenCompra" EmptyDataText="No se encontraron Ordenes de Compra">
|
||||
<%--BorderColor="#D3D3D3" BorderWidth="1"--%>
|
||||
<Columns>
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>OC</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:HyperLink ID="HplOC" runat="server" CssClass="Texto" Text='<%# Eval("Folio")%>' NavigateUrl='<%# Eval("CveOrdenCompra", "/OC/OC.aspx?OC={0}")%>'></asp:HyperLink>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>Descripción</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="LtlDescripcion" runat="server" Text='<%# Eval("Descripcion")%>'></asp:Literal>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:BoundField HeaderText="Estatus" DataField="Estatus" />
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>Fecha</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("FechaIng", "{0:d}") %>'></asp:Literal>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:BoundField HeaderText="Lugar de Entrega" DataField="LugarEntrega" />
|
||||
<asp:BoundField DataField="SubProyecto" HeaderText="SubProyecto" />
|
||||
<asp:BoundField DataField="Total" HeaderText="Total" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
||||
<asp:BoundField DataField="MonAbreviatura" HeaderText="Mon" />
|
||||
</Columns>
|
||||
<HeaderStyle CssClass="Titulos"></HeaderStyle>
|
||||
</asp:GridView>
|
||||
|
||||
<asp:UpdatePanel ID="UpOC" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<asp:Button ID="BtnCargaOC" runat="server" ClientIDMode="Static" Text="CargarOC" Style="display: none;" OnClick="BtnCargaOC_Click" />
|
||||
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
|
||||
<input type="text" id="TxtBusqueda6" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda6','{0}')", GvOC.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
|
||||
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda6','{0}')", GvOC.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
|
||||
</div>
|
||||
<br />
|
||||
<asp:GridView ID="GvOC" GridLines="None" CssClass="table table-advance table-hover Widthall ScrollAD" data-sort="true" runat="server" AutoGenerateColumns="False" DataKeyNames="CveOrdenCompra" EmptyDataText="No se encontraron Ordenes de Compra">
|
||||
<Columns>
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>OC</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:HyperLink ID="HplOC" runat="server" CssClass="Texto" Text='<%# Eval("Folio")%>' NavigateUrl='<%# Eval("CveOrdenCompra", "/OC/OC.aspx?OC={0}")%>'></asp:HyperLink>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>Descripción</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="LtlDescripcion" runat="server" Text='<%# Eval("Descripcion")%>'></asp:Literal>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:BoundField HeaderText="Estatus" DataField="Estatus" />
|
||||
<asp:TemplateField>
|
||||
<HeaderTemplate>Fecha</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("FechaIng", "{0:d}") %>'></asp:Literal>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:BoundField HeaderText="Lugar de Entrega" DataField="LugarEntrega" />
|
||||
<asp:BoundField DataField="SubProyecto" HeaderText="SubProyecto" />
|
||||
<asp:BoundField DataField="Total" HeaderText="Total" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
||||
<asp:BoundField DataField="MonAbreviatura" HeaderText="Mon" />
|
||||
</Columns>
|
||||
<HeaderStyle CssClass="Titulos"></HeaderStyle>
|
||||
</asp:GridView>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</ContentTemplate>
|
||||
</ajax:TabPanel>
|
||||
|
||||
@@ -2065,6 +2073,7 @@
|
||||
|
||||
<asp:UpdatePanel runat="server" ID="UpDocumentos" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<asp:Button ID="BtnCargaDocs" runat="server" ClientIDMode="Static" Text="CargarDocs" Style="display: none;" OnClick="BtnCargaDocs_Click" />
|
||||
<asp:GridView ID="GvDocs" AutoGenerateColumns="false" runat="server" GridLines="none"
|
||||
DataKeyNames="CveDocumentacion,Documentacion,Orden,CveDocumentacionElectronica,Adjunto,Estatus,Observacion,Fecha,FechaIng,Usuario,FechaLimite,FechaVigencia,DiasLimite,AplicaDiasLimite,AplicaFechaVencimiento">
|
||||
<Columns>
|
||||
@@ -2147,6 +2156,7 @@
|
||||
</div>
|
||||
<asp:UpdatePanel ID="UpGvUsuarios" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<asp:Button ID="BtnCargaPortal" runat="server" ClientIDMode="Static" Text="CargarPortal" Style="display: none;" OnClick="BtnCargaPortal_Click" />
|
||||
<asp:GridView ID="GvUsuarios" runat="server" GridLines="None" DataKeyNames="CveUsuario, Usuario" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn" CellSpacing="0" Width="100%" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros" ToolTip="Listado de Estatus de Ordenes de Servicios">
|
||||
<Columns>
|
||||
<asp:BoundField DataField="Usuario" ItemStyle-Width="30%" HeaderText="Usuario" ItemStyle-HorizontalAlign="Left" />
|
||||
@@ -4265,6 +4275,33 @@
|
||||
<script src="/Metronic/assets/global/scripts/datatable.js"></script>
|
||||
<script src="/Metronic/assets/global/plugins/datatables/all.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function pageLoad(sender, e) {
|
||||
if (<%= Me.ProveedorID %> > 0) {
|
||||
$("#__tab_C_Tab_TabHistorial").on("click", function () {
|
||||
$('#BtnCargaHistorial').click();
|
||||
});
|
||||
$("#__tab_C_Tab_TabCxP").on("click", function () {
|
||||
$('#BtnCargaCxP').click();
|
||||
});
|
||||
$("#__tab_C_Tab_TabAnticipos").on("click", function () {
|
||||
$('#BtnCargaAnticipos').click();
|
||||
});
|
||||
$("#__tab_C_Tab_TabBancos").on("click", function () {
|
||||
$('#BtnCargaBancos').click();
|
||||
});
|
||||
$("#__tab_C_Tab_TabOC").on("click", function () {
|
||||
$('#BtnCargaOC').click();
|
||||
});
|
||||
$("#__tab_C_Tab_TabUsuarios").on("click", function () {
|
||||
$('#BtnCargaPortal').click();
|
||||
});
|
||||
}
|
||||
}
|
||||
$(document).ready(function () {
|
||||
pageLoad();
|
||||
});
|
||||
|
||||
//var OrdenarGV = function () {
|
||||
// var Tam = TamañoVentana();
|
||||
// var Alto = Tam.height - 330;
|
||||
|
||||
@@ -19,6 +19,11 @@ Partial Class Compras_Proveedores
|
||||
Return ViewState("CveProveedor").ToString.ToEntero
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property ProveedorID As Integer
|
||||
Get
|
||||
Return Me.CveProveedor
|
||||
End Get
|
||||
End Property
|
||||
Private Property CveProveedorSucursal As Integer
|
||||
Get
|
||||
Return ViewState("CveProveedorSucursal").ToString.ToEntero
|
||||
@@ -499,15 +504,15 @@ Partial Class Compras_Proveedores
|
||||
If CargaDatos() Then
|
||||
CveMonedaFiltro = -1
|
||||
|
||||
CargaHistorial(CveProveedorSucursal)
|
||||
CargaCxP(CveProveedorSucursal)
|
||||
CargaAnticipos(CveProveedorSucursal)
|
||||
CargaBancos(CveProveedorSucursal)
|
||||
'CargaHistorial(CveProveedorSucursal)
|
||||
'CargaCxP(CveProveedorSucursal)
|
||||
'CargaAnticipos(CveProveedorSucursal)
|
||||
'CargaBancos(CveProveedorSucursal)
|
||||
CargaProveedorSucursales()
|
||||
CargaCuentasBancarias()
|
||||
|
||||
CargaOC()
|
||||
CargaDocs()
|
||||
'CargaOC()
|
||||
'CargaDocs()
|
||||
'CargaColectivas()
|
||||
'CargaSaldosBeneficiarios()
|
||||
'CargaUsuariosPortal()
|
||||
@@ -758,27 +763,27 @@ Partial Class Compras_Proveedores
|
||||
Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3"
|
||||
Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable)
|
||||
|
||||
Dim nodo As XmlNode = XMLDoc.DocumentElement
|
||||
Dim Version As String = ValorXml(nodo, "Version")
|
||||
Dim nodo As XmlNode = XMLDoc.DocumentElement
|
||||
Dim Version As String = ValorXml(nodo, "Version")
|
||||
|
||||
|
||||
If Version = "3.2" Then
|
||||
Prefijo = "cfd"
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/2"
|
||||
ElseIf Version = "3.3" Then
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/3"
|
||||
If Version = "3.2" Then
|
||||
Prefijo = "cfd"
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/2"
|
||||
ElseIf Version = "3.3" Then
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/3"
|
||||
|
||||
Else ' se considera que es la version 4.0
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/4"
|
||||
End If
|
||||
Else ' se considera que es la version 4.0
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/4"
|
||||
End If
|
||||
|
||||
'If Prefijo.ToLower <> "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2"
|
||||
namespaces.AddNamespace(Prefijo, cfdVer)
|
||||
' XMLDoc.LoadXml(File.ReadAllText(Archivo).Replace("<br>", "").Replace("<", "").Replace("o;?", "").Replace(ChrW(&HFEFF), ""))
|
||||
'If Prefijo.ToLower <> "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2"
|
||||
namespaces.AddNamespace(Prefijo, cfdVer)
|
||||
' XMLDoc.LoadXml(File.ReadAllText(Archivo).Replace("<br>", "").Replace("<", "").Replace("o;?", "").Replace(ChrW(&HFEFF), ""))
|
||||
|
||||
|
||||
Dim node As XmlNode
|
||||
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Emisor", Prefijo), namespaces)
|
||||
Dim node As XmlNode
|
||||
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Emisor", Prefijo), namespaces)
|
||||
If node IsNot Nothing Then
|
||||
TxtRFC.Text = ValorXml(node, "rfc")
|
||||
|
||||
@@ -5542,13 +5547,13 @@ Partial Class Compras_Proveedores
|
||||
|
||||
Dim ObjBancos As New ClsBancos()
|
||||
|
||||
If ObjBancos.NotificacionPago(HdnCveIE.Value.ToEntero, TxtParaMail.Text.Trim, TxtCC.Text.Trim, UsuarioActual) Then
|
||||
Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion)
|
||||
Else
|
||||
Alert("No se pudo enviar el correo electrónico.", TipoMensaje.MsgError)
|
||||
End If
|
||||
If ObjBancos.NotificacionPago(HdnCveIE.Value.ToEntero, TxtParaMail.Text.Trim, TxtCC.Text.Trim, UsuarioActual) Then
|
||||
Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion)
|
||||
Else
|
||||
Alert("No se pudo enviar el correo electrónico.", TipoMensaje.MsgError)
|
||||
End If
|
||||
|
||||
ObjBancos.Dispose()
|
||||
ObjBancos.Dispose()
|
||||
|
||||
|
||||
'Dim ObjMail As New ClsSisMail()
|
||||
@@ -5925,7 +5930,57 @@ Partial Class Compras_Proveedores
|
||||
End If
|
||||
UpDatos.Update()
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnCargaHistorial_Click(sender As Object, e As EventArgs) Handles BtnCargaHistorial.Click
|
||||
If CveProveedor > 0 Then
|
||||
CargaHistorial(CveProveedorSucursal) ' <-- Tu método de carga
|
||||
UpnHistorial.Update() ' <-- UpdatePanel de Historial
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnCargaCxP_Click(sender As Object, e As EventArgs) Handles BtnCargaCxP.Click
|
||||
If CveProveedor > 0 Then
|
||||
CargaCxP(CveProveedorSucursal) ' <-- Tu método de carga
|
||||
UPPCxP.Update() ' <-- UpdatePanel de CxP
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnCargaAnticipos_Click(sender As Object, e As EventArgs) Handles BtnCargaAnticipos.Click
|
||||
If CveProveedor > 0 Then
|
||||
CargaAnticipos(CveProveedorSucursal) ' <-- Tu método de carga
|
||||
UpAnticipos.Update() ' <-- UpdatePanel de Anticipos
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnCargaBancos_Click(sender As Object, e As EventArgs) Handles BtnCargaBancos.Click
|
||||
If CveProveedor > 0 Then
|
||||
CargaBancos(CveProveedorSucursal) ' <-- Tu método de carga
|
||||
UpBancos.Update() ' <-- UpdatePanel de Bancos
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnCargaOC_Click(sender As Object, e As EventArgs) Handles BtnCargaOC.Click
|
||||
If CveProveedor > 0 Then
|
||||
CargaOC() ' <-- Tu método de carga
|
||||
UpOC.Update() ' <-- UpdatePanel de OC
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnCargaDocs_Click(sender As Object, e As EventArgs) Handles BtnCargaDocs.Click
|
||||
If CveProveedor > 0 Then
|
||||
CargaDocs() ' <-- Tu método de carga
|
||||
UpDocumentos.Update() ' <-- UpdatePanel de Documentos
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnCargaPortal_Click(sender As Object, e As EventArgs) Handles BtnCargaPortal.Click
|
||||
If CveProveedor > 0 Then
|
||||
CargaUsuariosPortalProveedor() ' <-- Tu método de carga
|
||||
UpGvUsuarios.Update() ' <-- UpdatePanel de Portal/Usuarios
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,10 @@
|
||||
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
|
||||
Exportación:
|
||||
<asp:Label runat="server" Text="Exportación" ID="LblExp"></asp:Label>
|
||||
<span>
|
||||
<asp:Label runat="server" ID="LblTipoOperacion"></asp:Label>
|
||||
<asp:Label runat="server" ID="LblCveExportacion"></asp:Label>
|
||||
</span>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
|
||||
<li id="liImprimir" runat="server">
|
||||
@@ -742,6 +744,54 @@
|
||||
</asp:UpdatePanel>
|
||||
</ContentTemplate>
|
||||
</ajax:TabPanel>
|
||||
<ajax:TabPanel ID="TabDescargas" runat="server" HeaderText="Descargas">
|
||||
<ContentTemplate>
|
||||
<asp:UpdatePanel ID="UpDescargas" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<asp:Button runat="server" ID="BtnAgregarDescarga" OnClick="BtnAgregarDescarga_Click" Text="Agregar Descarga" CssClass="btn btn-primary" style="margin-top: 5px;" />
|
||||
<br />
|
||||
<br />
|
||||
<div style="overflow-x: auto; width: 1235px;">
|
||||
<asp:GridView ID="GVDescargas" runat="server" data-sort="true" AutoGenerateColumns="False" DataKeyNames="CveExportacionDescarga" OnRowCommand="GVDescargas_RowCommand" ShowFooter="true" OnRowDataBound="GVDescargas_RowDataBound" Width="100%" EmptyDataText="No se encontraron Descargas" ToolTip="Descargas" CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" GridLines="None">
|
||||
<Columns>
|
||||
<asp:TemplateField HeaderText="Descarga" ItemStyle-HorizontalAlign="Left">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="lblDescarga" runat="server" Text='<%# Eval("CveExportacionDescarga")%>'> </asp:Label>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Partida Exportación" ItemStyle-HorizontalAlign="Left">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="lblDescargaExp" runat="server" Text='<%# Eval("PSCodigoExp")%>'> </asp:Label>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Partida Importación" ItemStyle-HorizontalAlign="Left">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="lblDescargaImp" runat="server" Text='<%# Eval("PSCodigoImp")%>'> </asp:Label>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Cantidad" ItemStyle-HorizontalAlign="Left">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="lblDescargaCant" runat="server" Text='<%# Eval("Cantidad")%>'> </asp:Label>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
|
||||
<asp:TemplateField HeaderText="Editar" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="100px">
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton data-toggle="tooltip" title="Editar" ID="LnkEditarDescarga" CommandName="EditarDescarga" CommandArgument='<%# Eval("CveExportacionDescarga") %>' CssClass="btn btn-circle btn-sm green" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="Eliminar" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="100px">
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="LnkEliminarDescarga" runat="server" CommandName="EliminarDescarga" CommandArgument='<%# Eval("CveExportacionDescarga") %>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar la Descarga?" data-btn-ok-label="Sí" />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</ContentTemplate>
|
||||
</ajax:TabPanel>
|
||||
</ajax:TabContainer>
|
||||
<br />
|
||||
|
||||
@@ -875,6 +925,90 @@
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
<div id="DModalDescarga" class="modal ADS fade" role="dialog">
|
||||
<asp:UpdatePanel ID="UpDescarga" class="modal-dialog" tabindex="-1" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title" id="H2" runat="server">Agregar Descarga</h4>
|
||||
</div>
|
||||
<div id="DVBodyAddDescarga" style="overflow: auto!important">
|
||||
<div class="modal-body">
|
||||
<asp:UpdatePanel ID="UpBodyAddDescarga" UpdateMode="Conditional" runat="server">
|
||||
<ContentTemplate>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<asp:UpdatePanel ID="UpDExportacion" runat="server" UpdateMode="Conditional" RenderMode="Inline">
|
||||
<ContentTemplate>
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<asp:DropDownList ID="DdlPartidaExp" runat="server" CssClass=" form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="PSCodigo" DataValueField="CveExportacionDetalle" Width="100%" ValidationGroup="GrpAgregaDescarga"></asp:DropDownList></td>
|
||||
<label for="<%= DdlPartidaExp.ClientID.ToString()%>">Partida Exportación:</label>
|
||||
<asp:RequiredFieldValidator ID="RFVPartidaExp" runat="server" ControlToValidate="DdlPartidaExp" Display="None" InitialValue="-1" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Partida Exportación''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregaDescarga"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="VCEPartidaExp" runat="server" HighlightCssClass="vco" TargetControlID="RFVPartidaExp" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<asp:UpdatePanel ID="UpDImportacion" runat="server" UpdateMode="Conditional" RenderMode="Inline">
|
||||
<ContentTemplate>
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<asp:DropDownList ID="DdlPartidaImp" runat="server" CssClass=" form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="PSCodigo" DataValueField="CveExportacionDetalle" Width="100%" ValidationGroup="GrpAgregaDescarga"></asp:DropDownList></td>
|
||||
<label for="<%= DdlPartidaImp.ClientID.ToString()%>">Partida Importación:</label>
|
||||
<asp:RequiredFieldValidator ID="RFVPartidaImp" runat="server" ControlToValidate="DdlPartidaImp" Display="None" InitialValue="-1" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Partida Importación''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregaDescarga"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="VCEPartidaImp" runat="server" HighlightCssClass="vco" TargetControlID="RFVPartidaImp" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<asp:TextBox ID="TxtDCantidad" ClientIDMode="Static" runat="server" CssClass=" form-control " CausesValidation="true" MaxLength="12" ValidationGroup="GrpAgregaDescarga"></asp:TextBox>
|
||||
<ajax:FilteredTextBoxExtender ID="FTEDCantidad" runat="server" TargetControlID="TxtDCantidad" FilterType="Custom, Numbers" ValidChars="." />
|
||||
<label for="<%= TxtDCantidad.ClientID.ToString()%>">Cantidad:</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group form-md-line-input input-iconright" align="right" id="DivAgregarOtraDescarga" runat="server">
|
||||
<label>Continuar agregando:</label>
|
||||
<asp:CheckBox ID="ChkSeguirAgregandoDescargas" runat="server" Checked="true" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<asp:UpdatePanel ID="UpAddDescargaBotones" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<asp:Button ID="BtnDescargaGuardar" OnClick="BtnDescargaGuardar_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="GrpAgregaDescarga" />
|
||||
<asp:Button ID="BtnDescargaActualizar" OnClick="BtnDescargaGuardar_Click" runat="server" Text="Actualizar" CssClass="btn btn-primary" ValidationGroup="GrpAgregaDescarga" />
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
|
||||
</div>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content8" ContentPlaceHolderID="JS" Runat="Server">
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -35,6 +35,11 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
get { return (ViewState["CveExportacionDetalle"] == null) ? -1 : Convert.ToInt32(ViewState["CveExportacionDetalle"]); }
|
||||
set { ViewState["CveExportacionDetalle"] = value; }
|
||||
}
|
||||
private int CveExportacionDescarga
|
||||
{
|
||||
get { return (ViewState["CveExportacionDescarga"] == null) ? -1 : Convert.ToInt32(ViewState["CveExportacionDescarga"]); }
|
||||
set { ViewState["CveExportacionDescarga"] = value; }
|
||||
}
|
||||
|
||||
private bool EsImportacion
|
||||
{
|
||||
@@ -56,16 +61,13 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
|
||||
LblTipoExp.InnerText = EsImportacion ? "Tipo Importación:" : "Tipo Exportación:";
|
||||
|
||||
if (EsImportacion)
|
||||
{
|
||||
LblExp.Text = "Importaciones";
|
||||
}
|
||||
else
|
||||
{
|
||||
LblExp.Text = "Exportación";
|
||||
}
|
||||
// Asigna el texto descriptivo
|
||||
LblTipoOperacion.Text = EsImportacion ? "Importación: " : "Exportación: ";
|
||||
|
||||
// Asigna el número de clave
|
||||
CveExportacion = !string.IsNullOrEmpty(Request["CveExportacion"]) ? Request["CveExportacion"].ToEntero() : -1;
|
||||
LblCveExportacion.Text = CveExportacion > 0 ? CveExportacion.ToString() : "";
|
||||
|
||||
InicializarValores();
|
||||
CargaDatos();
|
||||
}
|
||||
@@ -152,7 +154,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
DTExportaciones = Exportaciones.DtResultados;
|
||||
if (DTExportaciones.Rows.Count > 0)
|
||||
{
|
||||
LblExp.Text = DTExportaciones.FiltroPrimeroValor("CveExportacion");
|
||||
LblCveExportacion.Text = DTExportaciones.FiltroPrimeroValor("CveExportacion");
|
||||
|
||||
DdlSubProyecto.SelectedValue = DTExportaciones.FiltroPrimeroValor("CveSubProyecto");
|
||||
|
||||
@@ -231,6 +233,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
DdlDirCon.SelectedValue = DTExportaciones.FiltroPrimeroValor("CveDirConsignatario");
|
||||
|
||||
CargarPartidas();
|
||||
CargarDescargas();
|
||||
}
|
||||
}
|
||||
Exportaciones.Dispose();
|
||||
@@ -747,6 +750,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
if (Continuar)
|
||||
{
|
||||
Alert("La Partida se ha eliminado correctamente.", ModExtensiones.TipoMensaje.ToastInformacion);
|
||||
CargarDescargas();
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -999,6 +1003,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
{
|
||||
//RegistraScript("$('#DModalPartida').modal('hide');");
|
||||
Alert("La Partida se ha actualizado correctamente.", ModExtensiones.TipoMensaje.ToastInformacion);
|
||||
CargarDescargas();
|
||||
}
|
||||
}
|
||||
if (ChkSeguirAgregandoPartidas.Checked == false)
|
||||
@@ -1018,6 +1023,196 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
}
|
||||
CargarPartidas();
|
||||
}
|
||||
|
||||
protected void CargarDescargas()
|
||||
{
|
||||
DataTable DTDescargas = new DataTable();
|
||||
ClsExportaciones Descargas = new ClsExportaciones();
|
||||
if (CveExportacion != -1)
|
||||
{
|
||||
if (Descargas.GetDescargas(UsuarioActual.CveEmpresa, CveExportacion))
|
||||
{
|
||||
DTDescargas = Descargas.DtResultados;
|
||||
if (DTDescargas.Rows.Count > 0)
|
||||
{
|
||||
GVDescargas.DataSource = DTDescargas;
|
||||
GVDescargas.DataBind();
|
||||
UpDescargas.Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
Descargas.Dispose();
|
||||
}
|
||||
protected void AbrirModalDescarga()
|
||||
{
|
||||
RegistraScript("$('#DModalDescarga').modal();");
|
||||
|
||||
int CveEmpresa = UsuarioActual.CveEmpresa;
|
||||
|
||||
DdlPartidaExp.Items.Clear();
|
||||
DdlPartidaImp.Items.Clear();
|
||||
ClsExportaciones Partidas = new ClsExportaciones();
|
||||
if (Partidas.GetPartidas(UsuarioActual.CveEmpresa, CveExportacion))
|
||||
{
|
||||
DdlPartidaExp.DataSource = Partidas.DtResultados;
|
||||
DdlPartidaImp.DataSource = Partidas.DtResultados;
|
||||
}
|
||||
Partidas.Dispose();
|
||||
DdlPartidaExp.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
||||
DdlPartidaExp.DataBind();
|
||||
DdlPartidaImp.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
||||
DdlPartidaImp.DataBind();
|
||||
|
||||
|
||||
if (CveExportacionDescarga != -1)
|
||||
{
|
||||
ChkSeguirAgregandoDescargas.Checked = false;
|
||||
DivAgregarOtraDescarga.Visible = false;
|
||||
BtnDescargaGuardar.Visible = false;
|
||||
BtnDescargaActualizar.Visible = true;
|
||||
|
||||
ClsExportaciones Descargas = new ClsExportaciones();
|
||||
if (Descargas.GetDescargas(CveEmpresa, CveExportacion, CveExportacionDescarga))
|
||||
{
|
||||
DataTable DTDescargas = Descargas.DtResultados;
|
||||
if (DTDescargas.Rows.Count > 0)
|
||||
{
|
||||
string CveExpDetalle = DTDescargas.FiltroPrimeroValor("CveExportacionDetalle");
|
||||
DdlPartidaExp.SelectedValue = CveExpDetalle;
|
||||
string CveImpDetalle = DTDescargas.FiltroPrimeroValor("CveImportacionDetalle");
|
||||
DdlPartidaImp.SelectedValue = CveImpDetalle;
|
||||
TxtDCantidad.Text = DTDescargas.FiltroPrimeroValor("Cantidad");
|
||||
}
|
||||
}
|
||||
Partidas.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
ChkSeguirAgregandoDescargas.Checked = true;
|
||||
DivAgregarOtraDescarga.Visible = true;
|
||||
BtnDescargaGuardar.Visible = true;
|
||||
BtnDescargaActualizar.Visible = false;
|
||||
TxtDCantidad.Text = "";
|
||||
}
|
||||
UpDescarga.Update();
|
||||
}
|
||||
protected void BtnAgregarDescarga_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (CveExportacion != -1)
|
||||
{
|
||||
ClsExportaciones Partidas = new ClsExportaciones();
|
||||
if (Partidas.GetPartidas(UsuarioActual.CveEmpresa, CveExportacion))
|
||||
{
|
||||
if (Partidas.DtResultados.Rows.Count > 0)
|
||||
{
|
||||
CveExportacionDescarga = -1;
|
||||
AbrirModalDescarga();
|
||||
}
|
||||
else
|
||||
{
|
||||
Alert("Agregue Partidas para poder añadir una Descarga.", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
||||
}
|
||||
}
|
||||
Partidas.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
Alert("Guarde los cambios para poder agregar una Descarga.", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
||||
}
|
||||
}
|
||||
protected void BtnDescargaGuardar_Click(object sender, EventArgs e)
|
||||
{
|
||||
int CveExpDetalle = DdlPartidaExp.Text.ToEntero();
|
||||
int CveImpDetalle = DdlPartidaImp.Text.ToEntero();
|
||||
decimal Cantidad = ModExtensiones.ToDecimal(TxtDCantidad.Text);
|
||||
int CveUsuario = UsuarioActual.CveUsuario;
|
||||
|
||||
ClsExportaciones Descargas = new ClsExportaciones();
|
||||
if (CveExportacionDescarga == -1)
|
||||
{
|
||||
if (CveExportacion != -1)
|
||||
{
|
||||
bool Continuar = Descargas.AddDescarga(CveExpDetalle, CveImpDetalle, Cantidad, UsuarioActual.CveEmpresa);
|
||||
Descargas.Dispose();
|
||||
if (Continuar)
|
||||
{
|
||||
Alert("La Descarga se ha agregado correctamente.", ModExtensiones.TipoMensaje.ToastInformacion);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bool Continuar = Descargas.UpdateDescarga(CveExportacionDescarga, CveExpDetalle, CveImpDetalle, Cantidad);
|
||||
Descargas.Dispose();
|
||||
if (Continuar)
|
||||
{
|
||||
Alert("La Descarga se ha actualizado correctamente.", ModExtensiones.TipoMensaje.ToastInformacion);
|
||||
}
|
||||
}
|
||||
if (ChkSeguirAgregandoDescargas.Checked == false)
|
||||
{
|
||||
RegistraScript("$('#DModalDescarga').modal('hide');");
|
||||
}
|
||||
else
|
||||
{
|
||||
DdlPartidaExp.SelectedValue = "-1";
|
||||
DdlPartidaImp.SelectedValue = "-1";
|
||||
TxtDCantidad.Text = "";
|
||||
UpDescarga.Update();
|
||||
}
|
||||
CargarDescargas();
|
||||
}
|
||||
protected void GVDescargas_RowDataBound(object sender, GridViewRowEventArgs e)
|
||||
{
|
||||
if (e.Row.RowType == DataControlRowType.Footer && GVDescargas.Rows.Count > 0)
|
||||
{
|
||||
decimal TotalCantidad = 0;
|
||||
|
||||
foreach (GridViewRow row in GVDescargas.Rows)
|
||||
{
|
||||
if (row.RowType == DataControlRowType.DataRow)
|
||||
{
|
||||
Label lblDescargaCant = (Label)row.FindControl("lblDescargaCant");
|
||||
|
||||
if (lblDescargaCant != null && lblDescargaCant.Text != "")
|
||||
TotalCantidad += Convert.ToDecimal(lblDescargaCant.Text.Replace(",", "").Trim());
|
||||
}
|
||||
}
|
||||
|
||||
e.Row.Cells[0].Text = "Total:";
|
||||
e.Row.Cells[3].Text = TotalCantidad.ToString("#,###.####");
|
||||
|
||||
e.Row.Font.Bold = true;
|
||||
e.Row.BackColor = System.Drawing.Color.LightGray;
|
||||
}
|
||||
}
|
||||
protected void GVDescargas_RowCommand(object sender, GridViewCommandEventArgs e)
|
||||
{
|
||||
if (e.CommandName == "EditarDescarga")
|
||||
{
|
||||
CveExportacionDescarga = -1;
|
||||
if (CveExportacion != -1)
|
||||
{
|
||||
CveExportacionDescarga = e.CommandArgument.ToEntero();
|
||||
}
|
||||
AbrirModalDescarga();
|
||||
}
|
||||
if (e.CommandName == "EliminarDescarga")
|
||||
{
|
||||
if (CveExportacion != -1)
|
||||
{
|
||||
ClsExportaciones Descargas = new ClsExportaciones();
|
||||
bool Continuar = Descargas.RemoveDescarga(e.CommandArgument.ToEntero());
|
||||
Descargas.Dispose();
|
||||
if (Continuar)
|
||||
{
|
||||
Alert("La Descarga se ha eliminado correctamente.", ModExtensiones.TipoMensaje.ToastInformacion);
|
||||
}
|
||||
}
|
||||
CargarDescargas();
|
||||
}
|
||||
}
|
||||
|
||||
protected void DdlPS_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
CargarUnidadMedida(DdlPS.Text, DdlUM.Text, DdlTipoEmpaque.Text);
|
||||
@@ -1031,7 +1226,9 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
int CveEmpresa = UsuarioActual.CveEmpresa;
|
||||
DataTable DTExportaciones = new DataTable();
|
||||
ClsExportaciones Exportaciones = new ClsExportaciones();
|
||||
if (Exportaciones.GetExportacion(CveExportacion, CveEmpresa))
|
||||
|
||||
bool EsExportacion = !EsImportacion;
|
||||
if (Exportaciones.GetExportacion(CveExportacion, CveEmpresa, EsExportacion))
|
||||
{
|
||||
DTExportaciones = Exportaciones.DtResultados;
|
||||
if (DTExportaciones.Rows.Count > 0)
|
||||
@@ -1040,9 +1237,12 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
string ClienteExportador = DTExportaciones.FiltroPrimeroValor("ClienteExportador");
|
||||
string DirExportador = DTExportaciones.FiltroPrimeroValor("DirExportador");
|
||||
string RFCExp = DTExportaciones.FiltroPrimeroValor("RFCExp");
|
||||
string PPSExp = DTExportaciones.FiltroPrimeroValor("PPSExp");
|
||||
string IMMEXexp = DTExportaciones.FiltroPrimeroValor("IMMEXexp");
|
||||
string ClienteImportador = DTExportaciones.FiltroPrimeroValor("ClienteImportador");
|
||||
string DirImportador = DTExportaciones.FiltroPrimeroValor("DirImportador");
|
||||
string RFCImp = DTExportaciones.FiltroPrimeroValor("RFCImp");
|
||||
string PPSImp = DTExportaciones.FiltroPrimeroValor("PPSImp");
|
||||
string IMMEXimp = DTExportaciones.FiltroPrimeroValor("IMMEXimp");
|
||||
string NumFactura = DTExportaciones.FiltroPrimeroValor("SerieFolio");
|
||||
string ClaveSATPedimento = DTExportaciones.FiltroPrimeroValor("ClaveSATPedimento");
|
||||
@@ -1072,6 +1272,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
string ClienteConsignatario = DTExportaciones.FiltroPrimeroValor("ClienteConsignatario");
|
||||
string DirConsignatario = DTExportaciones.FiltroPrimeroValor("DirConsignatario");
|
||||
string RFCCon = DTExportaciones.FiltroPrimeroValor("RFCCon");
|
||||
string PPSCon = DTExportaciones.FiltroPrimeroValor("PPSCon");
|
||||
string IMMEXcon = DTExportaciones.FiltroPrimeroValor("IMMEXcon");
|
||||
|
||||
decimal IncFletes = 0.00m;
|
||||
@@ -1087,6 +1288,18 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
decimal TotalInc = 0.00m;
|
||||
decimal TotalDec = 0.00m;
|
||||
|
||||
string Sellos = "";
|
||||
for (int i = 1; i <= 3; i++)
|
||||
{
|
||||
string sello = DTExportaciones.FiltroPrimeroValor($"Sello{i}");
|
||||
if (sello != "")
|
||||
{
|
||||
if(Sellos == "")
|
||||
Sellos += sello;
|
||||
else
|
||||
Sellos += $", {sello}";
|
||||
}
|
||||
}
|
||||
string DescContenedor = DTExportaciones.FiltroPrimeroValor("DescripcionContenedor");
|
||||
string ContenedorPlaca = DTExportaciones.FiltroPrimeroValor("ContenedorPlaca");
|
||||
string Proveedor = DTExportaciones.FiltroPrimeroValor("Proveedor");
|
||||
@@ -1106,9 +1319,12 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
para.Add(new ReportParameter("ClienteExportador", ClienteExportador));
|
||||
para.Add(new ReportParameter("DirExportador", DirExportador));
|
||||
para.Add(new ReportParameter("RFCExp", RFCExp));
|
||||
para.Add(new ReportParameter("PPSExp", PPSExp));
|
||||
para.Add(new ReportParameter("IMMEXexp", IMMEXexp));
|
||||
para.Add(new ReportParameter("ClienteImportador", ClienteImportador));
|
||||
para.Add(new ReportParameter("DirImportador", DirImportador));
|
||||
para.Add(new ReportParameter("RFCImp", RFCImp));
|
||||
para.Add(new ReportParameter("PPSImp", PPSImp));
|
||||
para.Add(new ReportParameter("IMMEXimp", IMMEXimp));
|
||||
para.Add(new ReportParameter("NumFactura", NumFactura));
|
||||
para.Add(new ReportParameter("ClaveSATPedimento", ClaveSATPedimento));
|
||||
@@ -1122,6 +1338,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
para.Add(new ReportParameter("ClienteConsignatario", ClienteConsignatario));
|
||||
para.Add(new ReportParameter("DirConsignatario", DirConsignatario));
|
||||
para.Add(new ReportParameter("RFCCon", RFCCon));
|
||||
para.Add(new ReportParameter("PPSCon", PPSCon));
|
||||
para.Add(new ReportParameter("IMMEXcon", IMMEXcon));
|
||||
|
||||
ClsExportaciones Gastos = new ClsExportaciones();
|
||||
@@ -1159,6 +1376,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
para.Add(new ReportParameter("DecOtros", DecOtros.ToString("#,###.####")));
|
||||
para.Add(new ReportParameter("TotalDec", TotalDec.ToString("#,###.####")));
|
||||
|
||||
para.Add(new ReportParameter("Sellos", Sellos));
|
||||
para.Add(new ReportParameter("DescContenedor", DescContenedor));
|
||||
para.Add(new ReportParameter("ContenedorPlaca", ContenedorPlaca));
|
||||
para.Add(new ReportParameter("Proveedor", Proveedor));
|
||||
@@ -1191,6 +1409,18 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
DTPartidas.Columns["ValorUnitarioMN"].DefaultValue = 0.0m;
|
||||
foreach (DataRow row in DTPartidas.Rows)
|
||||
{
|
||||
string PSCodigoSinDescripcion = row["PSCodigoSinDescripcion"].ToString();
|
||||
if (PSCodigoSinDescripcion != "")
|
||||
row["PSCodigo"] = PSCodigoSinDescripcion;
|
||||
|
||||
string FraccionArancelaria = row["FraccionArancelaria"].ToString();
|
||||
if (FraccionArancelaria.Contains("-"))
|
||||
{
|
||||
string[] partes = FraccionArancelaria.Split('-');
|
||||
if (partes[0] != "")
|
||||
row["FraccionArancelaria"] = partes[0];
|
||||
}
|
||||
|
||||
decimal cantidad = Convert.ToDecimal(row["Cantidad"]);
|
||||
if (cantidad > 0)
|
||||
{
|
||||
@@ -1226,15 +1456,26 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
lrds.Add(RDSBultos);
|
||||
}
|
||||
}
|
||||
Partidas.Dispose();
|
||||
|
||||
string NombreArchivo = $"Exportacion_{CveExportacion}";
|
||||
string NombreArchivo;
|
||||
string Formato;
|
||||
|
||||
if (EsExportacion)
|
||||
{
|
||||
NombreArchivo = $"Exportacion_{CveExportacion}";
|
||||
Formato = "FormatoExportacion.mrt";
|
||||
}
|
||||
else
|
||||
{
|
||||
NombreArchivo = $"Importacion_{CveExportacion}";
|
||||
Formato = "FormatoImportacion.mrt";
|
||||
}
|
||||
string CveVenta = DTExportaciones.FiltroPrimeroValor("CveVenta"); ;
|
||||
if (CveVenta != "" && CveVenta != "-1")
|
||||
if (EsExportacion && CveVenta != "" && CveVenta != "-1")
|
||||
{
|
||||
NombreArchivo = NumFactura;
|
||||
}
|
||||
|
||||
string Formato = "FormatoImportacion.mrt";
|
||||
para.Add(new ReportParameter("Formato", "PDF"));
|
||||
string Ruta = ModExtensiones.DirectorioBaseEmpresas + $@"Empresas\{UsuarioActual.CveEmpresa}\Formatos\{Formato}";
|
||||
|
||||
@@ -1253,18 +1494,6 @@ public partial class Export_ExpDetalle : ClsPaginas
|
||||
}
|
||||
protected void LBImprimir_Click(object sender, EventArgs e)
|
||||
{
|
||||
/*if (DtDatos != null)
|
||||
{
|
||||
ImprimirReporte();
|
||||
}
|
||||
else
|
||||
{
|
||||
CargaDatos();
|
||||
if (DtDatos != null)
|
||||
Alert("No se encontró información para el reporte.", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
||||
else
|
||||
ImprimirReporte();
|
||||
}*/
|
||||
ImprimirReporte();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
|
||||
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
|
||||
</asp:Content>
|
||||
@@ -32,7 +31,7 @@
|
||||
|
||||
<div class="titlefiltros caption">
|
||||
<div class="row" style="margin-left: 10px;">
|
||||
<asp:label class="col-md-1 " id="LblDdlSucursal" runat="server" style="width: 90px; margin-top: 5px;">Sucursal:</asp:label>
|
||||
<asp:Label class="col-md-1 " ID="LblDdlSucursal" runat="server" Style="width: 90px; margin-top: 5px;">Sucursal:</asp:Label>
|
||||
<div class="col-md-2" id="DivDdlSucursal" runat="server">
|
||||
<asp:DropDownList ID="DdlSucursales" runat="server" Width="100%" DataTextField="SubProyecto" DataValueField="CveSubProyecto" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me">
|
||||
</asp:DropDownList>
|
||||
@@ -43,63 +42,61 @@
|
||||
</asp:DropDownList>
|
||||
</div>
|
||||
|
||||
<label class="col-md-1 " style="width: 90px;">Fecha Inicial:</label>
|
||||
<div class="col-md-1" style="min-width: 115px">
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
|
||||
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Width="80px" MaxLength="10"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="imgCalendarioI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
<label class="col-md-1 " style="width: 90px;">Fecha Inicial:</label>
|
||||
<div class="col-md-1" style="min-width: 115px">
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
|
||||
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Width="80px" MaxLength="10"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="imgCalendarioI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
</div>
|
||||
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
|
||||
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="TxtFechaI" PopupButtonID="ImgCalendarioI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
|
||||
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
|
||||
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="TxtFechaI" PopupButtonID="ImgCalendarioI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
|
||||
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
|
||||
<label class="col-md-1 " style="width: 80px;">Fecha Final:</label>
|
||||
<div class="col-md-1" style="min-width: 115px">
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
|
||||
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Width="80px" MaxLength="10"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
<label class="col-md-1 " style="width: 80px;">Fecha Final:</label>
|
||||
<div class="col-md-1" style="min-width: 115px">
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
|
||||
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Width="80px" MaxLength="10"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
</div>
|
||||
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
|
||||
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="TxtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
|
||||
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
|
||||
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="TxtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
|
||||
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-body" style="display: none;">
|
||||
<div class="row">
|
||||
<label class="col-md-1 " id="Label1" runat="server" >Chofer:</label>
|
||||
<div class="col-md-2" >
|
||||
<asp:DropDownList ID="DdlChofer" runat="server" DataTextField="Chofer" DataValueField="CveChofer" CssClass="form-control input-sm select2me" Width="100%" CausesValidation="true"></asp:DropDownList>
|
||||
</div>
|
||||
<label class="col-md-1 " id="Label1" runat="server">Chofer:</label>
|
||||
<div class="col-md-2">
|
||||
<asp:DropDownList ID="DdlChofer" runat="server" DataTextField="Chofer" DataValueField="CveChofer" CssClass="form-control input-sm select2me" Width="100%" CausesValidation="true"></asp:DropDownList>
|
||||
</div>
|
||||
<label class="col-md-1 " id="LblTipo" runat="server">Tipo:</label>
|
||||
<div class="col-md-2" >
|
||||
<asp:DropDownList ID="DdlTipo" runat="server" CssClass="form-control input-sm select2me" Width="100%" CausesValidation="true">
|
||||
<asp:ListItem Value="-1" Text="Todos"></asp:ListItem>
|
||||
<asp:ListItem Value="T" Text="Traspasos"></asp:ListItem>
|
||||
<asp:ListItem Value="R" Text="Recolecciones"></asp:ListItem>
|
||||
<asp:ListItem Value="E" Text="Entregas"></asp:ListItem>
|
||||
<asp:ListItem Value="I" Text="Ingresos"></asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<asp:DropDownList ID="DdlTipo" runat="server" CssClass="form-control input-sm select2me" Width="100%" CausesValidation="true">
|
||||
<asp:ListItem Value="-1" Text="Todos"></asp:ListItem>
|
||||
<asp:ListItem Value="T" Text="Traspasos"></asp:ListItem>
|
||||
<asp:ListItem Value="R" Text="Recolecciones"></asp:ListItem>
|
||||
<asp:ListItem Value="E" Text="Entregas"></asp:ListItem>
|
||||
<asp:ListItem Value="I" Text="Ingresos"></asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
@@ -109,75 +106,68 @@
|
||||
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
|
||||
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
|
||||
</div>
|
||||
<asp:GridView ID="GVDatos" runat="server"
|
||||
DataKeyNames="CveSubProyecto, CveEntregaAlmacen,Estatus,CveCliente,CveDireccionOrigen,CveDireccionDestino,CveCamion,CveChofer,FechaEntrega,CveAlmacen,Tipo,AplicaCP,RFCReceptor,RFCEmisor,CveTimbre,CvePAC,FolioFiscal,TimbreTipoDocto,CveMovimiento,FechaLlegada,CveCamionRemolque1,CveCamionRemolque2,Distancia,CveConfigAutoTransporte,SerieFolio,DireccionOrigen,Direccion"
|
||||
<asp:GridView ID="GVDatos" runat="server"
|
||||
DataKeyNames="CveSubProyecto, CveEntregaAlmacen,Estatus,CveCliente,CveDireccionOrigen,CveDireccionDestino,CveCamion,CveChofer,FechaEntrega,CveAlmacen,Tipo,AplicaCP,RFCReceptor,RFCEmisor,CveTimbre,CvePAC,FolioFiscal,TimbreTipoDocto,CveMovimiento,FechaLlegada,CveCamionRemolque1,CveCamionRemolque2,Distancia,CveConfigAutoTransporte,SerieFolio,DireccionOrigen,Direccion,FolioReferencia"
|
||||
AutoGenerateColumns="False" EmptyDataText="No se encontraron Registros con los filtros especificados" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-sort="true" GridLines="None"
|
||||
EmptyDataRowStyle-HorizontalAlign="Center" OnRowDataBound="GVDatos_RowDataBound">
|
||||
<Columns>
|
||||
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="Tipo">
|
||||
<Columns>
|
||||
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="Tipo">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="LtTipo" runat="server" Text='<%# Eval("TipoDescripcion") %>'></asp:Label>
|
||||
</ItemTemplate>
|
||||
<HeaderStyle HorizontalAlign="Left" />
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="CP">
|
||||
<HeaderStyle HorizontalAlign="Left" />
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="CP">
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="LtCP" runat="server" Text='<%# Eval("AplicaCP").ToString()=="True"?"Si":"No" %>'></asp:Literal>
|
||||
</ItemTemplate>
|
||||
<HeaderStyle HorizontalAlign="Left" />
|
||||
<HeaderStyle HorizontalAlign="Left" />
|
||||
</asp:TemplateField>
|
||||
<asp:BoundField DataField="SubProyecto" HeaderText="Sucursal">
|
||||
</asp:BoundField>
|
||||
|
||||
<asp:BoundField DataField="SerieFolio" HeaderText="Folio" >
|
||||
</asp:BoundField>
|
||||
|
||||
<asp:BoundField DataField="Nombre" HeaderText="Cliente" >
|
||||
</asp:BoundField>
|
||||
<asp:BoundField DataField="EnvioDireccionOrigen" HeaderText="Dirección" >
|
||||
</asp:BoundField>
|
||||
<asp:HyperLinkField DataTextField="FolioAlmacen" HeaderText="Folio Alm" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" DataNavigateUrlFields="CveMovimiento" ControlStyle-CssClass="Texto" />
|
||||
<asp:BoundField DataField="Chofer" HeaderText="Operador" >
|
||||
</asp:BoundField>
|
||||
<asp:BoundField DataField="Unidad" HeaderText="Unidad" >
|
||||
</asp:BoundField>
|
||||
<asp:BoundField DataField="EstatusStr" HeaderText="Estatus" >
|
||||
</asp:BoundField>
|
||||
<asp:BoundField DataField="SubProyecto" HeaderText="Sucursal"></asp:BoundField>
|
||||
|
||||
<asp:BoundField DataField="FechaEntrega" HeaderText="Fecha Entrega" ItemStyle-Width="4%" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-HorizontalAlign="Center" >
|
||||
|
||||
<ItemStyle HorizontalAlign="Center" Width="4%" />
|
||||
<asp:BoundField DataField="SerieFolio" HeaderText="Folio"></asp:BoundField>
|
||||
|
||||
<asp:BoundField DataField="Nombre" HeaderText="Cliente"></asp:BoundField>
|
||||
<asp:BoundField DataField="EnvioDireccionOrigen" HeaderText="Dirección"></asp:BoundField>
|
||||
<asp:HyperLinkField DataTextField="FolioAlmacen" HeaderText="Folio Alm" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" DataNavigateUrlFields="CveMovimiento" ControlStyle-CssClass="Texto" />
|
||||
<asp:BoundField DataField="Chofer" HeaderText="Operador"></asp:BoundField>
|
||||
<asp:BoundField DataField="Unidad" HeaderText="Unidad"></asp:BoundField>
|
||||
<asp:BoundField DataField="EstatusStr" HeaderText="Estatus"></asp:BoundField>
|
||||
|
||||
<asp:BoundField DataField="FechaEntrega" HeaderText="Fecha Entrega" ItemStyle-Width="4%" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-HorizontalAlign="Center">
|
||||
|
||||
<ItemStyle HorizontalAlign="Center" Width="4%" />
|
||||
</asp:BoundField>
|
||||
<asp:BoundField DataField="FolioReferencia" HeaderText="Folio Ref" >
|
||||
</asp:BoundField>
|
||||
<asp:TemplateField ItemStyle-Width="75px" HeaderStyle-HorizontalAlign="Left" HeaderText="Opciones">
|
||||
<asp:BoundField DataField="FolioReferencia" HeaderText="Folio Ref"></asp:BoundField>
|
||||
<asp:TemplateField ItemStyle-Width="75px" HeaderStyle-HorizontalAlign="Left" HeaderText="Opciones">
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="LnkEditar" runat="server" OnClick="imgEditar_Click" AlternateText="Editar" ToolTip="Actualizar" CausesValidation="False" CssClass="btn btn-circle btn-sm blue" Text="<i class='fa fa-pencil'></i>" />
|
||||
<asp:LinkButton ID="LnkTimbrar" runat="server" OnClick="LnkTimbrar_Click" AlternateText="Timbrar" ToolTip="Timbrar" CausesValidation="False" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-external-link'></i>" />
|
||||
<asp:LinkButton ID="LnkCancelaTimbre" runat="server" OnClick="LnkCancelaTimbre_Click" AlternateText="Cancelar timbre" ToolTip="Cancelar timbre" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar cancelación?" data-btn-ok-label="si" />
|
||||
<asp:HyperLink ID="HplR" runat="server" visible="false" AlternateText="Registrar" ToolTip="Registrar entrada" CssClass="btn btn-circle btn-sm yellow" Text="<i class='fa fa-location-arrow'></i>" />
|
||||
<asp:LinkButton ID="LnkEditar" runat="server" OnClick="imgEditar_Click" AlternateText="Editar" ToolTip="Actualizar" CausesValidation="False" CssClass="btn btn-circle btn-sm blue" Text="<i class='fa fa-pencil'></i>" />
|
||||
<asp:LinkButton ID="LnkTimbrar" runat="server" OnClick="LnkTimbrar_Click" AlternateText="Timbrar" ToolTip="Timbrar" CausesValidation="False" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-external-link'></i>" />
|
||||
<asp:LinkButton ID="LnkCancelaTimbre" runat="server" OnClick="LnkCancelaTimbre_Click" AlternateText="Cancelar timbre" ToolTip="Cancelar timbre" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>"/>
|
||||
<%-- <asp:LinkButton ID="LnkReactivarTimbre" Visible="false" runat="server" OnClick="LnkReactivarTimbre_Click" AlternateText="Reactivar timbre" ToolTip="Reactivar timbre" CausesValidation="False" CssClass="btn btn-circle btn-sm blue" Text="<i class='fa fa-refresh'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar reactivacion?" data-btn-ok-label="si" />--%>
|
||||
<asp:HyperLink ID="HplR" runat="server" Visible="false" AlternateText="Registrar" ToolTip="Registrar entrada" CssClass="btn btn-circle btn-sm yellow" Text="<i class='fa fa-location-arrow'></i>" />
|
||||
</ItemTemplate>
|
||||
<HeaderStyle HorizontalAlign="Left" />
|
||||
<ItemStyle HorizontalAlign="Left" Width="75px" />
|
||||
<HeaderStyle HorizontalAlign="Left" />
|
||||
<ItemStyle HorizontalAlign="Left" Width="75px" />
|
||||
</asp:TemplateField>
|
||||
|
||||
<asp:TemplateField ItemStyle-Width="50px" HeaderStyle-HorizontalAlign="Center" HeaderText="Direcciones" Visible="false">
|
||||
<asp:TemplateField ItemStyle-Width="50px" HeaderStyle-HorizontalAlign="Center" HeaderText="Direcciones" Visible="false">
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="LnkEditarDirOrigen" Visible="false" runat="server" OnClick="EditDireccionOrigen_Click" AlternateText="Editar" ToolTip="Actualizar dirección Origen" CausesValidation="False" CssClass="btn btn-circle btn-sm blue" Text="<i class='fa fa-location-arrow'></i>" />
|
||||
<asp:LinkButton ID="LnkEditarDirDestino" Visible="false" runat="server" OnClick="EditDireccionDestino_Click" AlternateText="Editar" ToolTip="Actualizar dirección Destino" CausesValidation="False" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-location-arrow'></i>" />
|
||||
<asp:LinkButton ID="LnkEditarDirOrigen" Visible="false" runat="server" OnClick="EditDireccionOrigen_Click" AlternateText="Editar" ToolTip="Actualizar dirección Origen" CausesValidation="False" CssClass="btn btn-circle btn-sm blue" Text="<i class='fa fa-location-arrow'></i>" />
|
||||
<asp:LinkButton ID="LnkEditarDirDestino" Visible="false" runat="server" OnClick="EditDireccionDestino_Click" AlternateText="Editar" ToolTip="Actualizar dirección Destino" CausesValidation="False" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-location-arrow'></i>" />
|
||||
</ItemTemplate>
|
||||
<HeaderStyle HorizontalAlign="Center" />
|
||||
<ItemStyle HorizontalAlign="Left" Width="50px" />
|
||||
<HeaderStyle HorizontalAlign="Center" />
|
||||
<ItemStyle HorizontalAlign="Left" Width="50px" />
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="PDF">
|
||||
<ItemTemplate>
|
||||
<asp:HyperLink ID="HplPDF" Target="_blank" runat="server" ><i class='fa fa-file-pdf-o'></i></asp:HyperLink>
|
||||
<asp:TemplateField HeaderText="PDF">
|
||||
<ItemTemplate>
|
||||
<asp:HyperLink ID="HplPDF" Target="_blank" runat="server"><i class='fa fa-file-pdf-o'></i></asp:HyperLink>
|
||||
</ItemTemplate>
|
||||
<ItemStyle HorizontalAlign="Center" Width="4%" />
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="XML">
|
||||
<ItemTemplate>
|
||||
<asp:HyperLink ID="HplXML" Target="_blank" runat="server" ><i class='fa fa-file-code-o'></i></asp:HyperLink>
|
||||
<asp:TemplateField HeaderText="XML">
|
||||
<ItemTemplate>
|
||||
<asp:HyperLink ID="HplXML" Target="_blank" runat="server"><i class='fa fa-file-code-o'></i></asp:HyperLink>
|
||||
</ItemTemplate>
|
||||
<ItemStyle HorizontalAlign="Center" Width="4%" />
|
||||
</asp:TemplateField>
|
||||
@@ -188,10 +178,10 @@
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
|
||||
|
||||
|
||||
<div id="DivEditarEntrega" class="modal ADS fade" role="dialog">
|
||||
|
||||
<div id="DivEditarEntrega" class="modal ADS fade" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<asp:UpdatePanel ID="UpModalEditarentrega" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
@@ -206,13 +196,13 @@
|
||||
<div class="row">
|
||||
<label class="col-md-3">Chofer:</label>
|
||||
<div class="col-md-9">
|
||||
<asp:DropDownList ID="DdlModalChofer" runat="server" DataTextField="Chofer" DataValueField="CveChofer" AutoPostBack="true" CssClass="form-control input-sm select2me" Width="100%"></asp:DropDownList>
|
||||
<asp:DropDownList ID="DdlModalChofer" runat="server" DataTextField="Chofer" DataValueField="CveChofer" AutoPostBack="true" CssClass="form-control input-sm select2me" Width="100%"></asp:DropDownList>
|
||||
<asp:RequiredFieldValidator ID="RfvDdlModalChofer" runat="server" Enabled="false" ControlToValidate="DdlModalChofer" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Chofer''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="VceRfvDdlModalChofer" runat="server" HighlightCssClass="vco" TargetControlID="rfvDdlModalChofer" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<label class="col-md-3">Unidad:</label>
|
||||
@@ -251,7 +241,7 @@
|
||||
|
||||
|
||||
|
||||
<asp:UpdatePanel runat="server" ID="UpModalDirecciones" UpdateMode="Conditional">
|
||||
<asp:UpdatePanel runat="server" ID="UpModalDirecciones" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
|
||||
<div class="row" runat="server" id="DVDireccionOrigen" visible="false">
|
||||
@@ -272,7 +262,7 @@
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
@@ -310,15 +300,69 @@
|
||||
<asp:TextBox ID="TxtDistancia" runat="server" CssClass="form-control input-sm" Width="100%" Text="1"></asp:TextBox>
|
||||
<ajax:TextBoxWatermarkExtender ID="TBWEDistancia" runat="server" TargetControlID="TxtDistancia" WatermarkText="Distancia" WatermarkCssClass="watermarked" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row" id="DivTxtRec" runat="server" visible="false">
|
||||
<div class=" col-md-2">
|
||||
<div class="form-group form-md-line-input input-iconright" style="max-width: 85px">
|
||||
<asp:TextBox ID="TxtModalRecoleccionCantidad" Width="50px" MaxLength="7" runat="server" TabIndex="1" CssClass="form-control"></asp:TextBox>
|
||||
<label for="<%= TxtModalRecoleccionCantidad.ClientID.ToString()%>">Cantidad:</label>
|
||||
<ajax:FilteredTextBoxExtender ID="FETxtModalRecoleccionCantidad" runat="server" TargetControlID="TxtModalRecoleccionCantidad" FilterType="Custom, Numbers" ValidChars="." />
|
||||
<asp:RequiredFieldValidator runat="server" ID="RfvTxtModalRecoleccionCantidad" ControlToValidate="TxtModalRecoleccionCantidad" ValidationGroup="GrpModalRecoleccionGuardaPS" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario por favor introdúzcalo." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="CevRfvTxtModalRecoleccionCantidad" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtModalRecoleccionCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
|
||||
<asp:RangeValidator ID="RVTxtModalRecoleccionCantidad" runat="server" ControlToValidate="TxtModalRecoleccionCantidad" Display="None" Type="Double" MinimumValue="0.001" MaximumValue="2147483647" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor introdúzcalo." ValidationGroup="GrpModalRecoleccionGuardaPS"></asp:RangeValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="VCECantidad" runat="server" HighlightCssClass="vco" TargetControlID="RVTxtModalRecoleccionCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
|
||||
<i></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-md-2">
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<asp:DropDownList ID="DdlModalRecoleccionUnidad" runat="server" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="form-control input-sm select2me" Style="width: 85px !important;"></asp:DropDownList>
|
||||
<label for="<%= TxtModalRecoleccionCantidad.ClientID.ToString()%>">Unidad:</label>
|
||||
<asp:RequiredFieldValidator ID="RfvDdlModalRecoleccionUnidad" runat="server" ControlToValidate="DdlModalRecoleccionUnidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Unidad''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpModalRecoleccionGuardaPS"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="VceRfvDdlModalRecoleccionUnidad" runat="server" HighlightCssClass="vco" TargetControlID="RfvDdlModalRecoleccionUnidad" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
<i></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-md-7">
|
||||
<div class="psagregar">
|
||||
<div class="comboxes">
|
||||
<label for="<%= DdlProducto2.ClientID.ToString()%>" style="font-size: 13px; color: #888888; opacity: 1; margin-bottom: 0px;">Producto:</label>
|
||||
<ADS:Dropdownlost runat="server" ID="DdlProducto2" UsaWebService="true" Width="100%"
|
||||
CssStyle="width: 100%;" IncluyeTodos="false" CssClassDdl="select2me" TabIndex="2"
|
||||
DataTextField="PSCodigo" DataValueField="CvePS" Onselectedindexchange="DdlProducto_ValueChanged" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-1" style="text-align: right!important; padding-top: 15px; padding-left: 0px;">
|
||||
<asp:LinkButton ID="LnkModalAgregarPS" runat="server" CssClass="btn btn-primary smallplus" ValidationGroup="GrpModalRecoleccionGuardaPS"
|
||||
OnClick="LnkModalAgregarPS_Click"><i class="fa fa-plus"></i></asp:LinkButton>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" id="DivGvRec" runat="server" visible="false">
|
||||
<div class="col-md-12">
|
||||
<asp:GridView ID="GvModalPSRecoleccion" DataKeyNames="CveEntregaAlmacenDetalle,CodigoPS,CvePS,CveUnidadMedida,Cantidad" runat="server"
|
||||
ShowHeader="true" AutoGenerateColumns="False" EmptyDataText="" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover" GridLines="None">
|
||||
<Columns>
|
||||
|
||||
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" ItemStyle-Width="86px" HeaderStyle-HorizontalAlign="Right" />
|
||||
<asp:BoundField HeaderText="Unidad" DataField="Abreviatura" ItemStyle-Width="86px" />
|
||||
<asp:BoundField HeaderText="Producto" DataField="CodigoPS" ItemStyle-Width="500px" />
|
||||
<asp:TemplateField>
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="LnkModalGvModalPSRecoleccionEliminar" runat="server" CssClass="btn btn-circle btn-xs red" OnClick="LnkModalGvModalPSRecoleccionEliminar_Click" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el producto?" data-btn-ok-label="si"></asp:LinkButton>
|
||||
</ItemTemplate>
|
||||
<ItemStyle Width="160px" HorizontalAlign="Center"></ItemStyle>
|
||||
</asp:TemplateField>
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<asp:UpdatePanel runat="server">
|
||||
<ContentTemplate>
|
||||
<asp:Button ID="BtnModalEditarentrega" runat="server" OnClick="BtnModalEditarentrega_Click" CssClass="btn btn-success" Text="Actualizar" ValidationGroup="GrpModalEditarentrega" />
|
||||
<asp:Button ID="BtnModalEditarentrega" runat="server" OnClick="BtnModalEditarentrega_Click" CssClass="btn btn-success" Text="Actualizar" ValidationGroup="GrpModalEditarentrega" />
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
@@ -329,8 +373,8 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id="divAddDireccionEnvio" class="modal ADS fade" role="dialog">
|
||||
|
||||
<div id="divAddDireccionEnvio" class="modal ADS fade" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<asp:UpdatePanel ID="UpModalDVDireccionEnvio" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
@@ -338,12 +382,14 @@
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title" id="myModalLabel"> <asp:Label runat="server" ID="LblTitulodireccion"></asp:Label> </h4>
|
||||
<h4 class="modal-title" id="myModalLabel">
|
||||
<asp:Label runat="server" ID="LblTitulodireccion"></asp:Label>
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<asp:UpdatePanel ID="UpBodyDireccion" UpdateMode="Conditional" runat="server">
|
||||
<ContentTemplate>
|
||||
|
||||
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<asp:TextBox ID="TxtEnvioDireccion" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="100"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtEnvioDireccion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Direccion''</b> es necesario, por favor ingréselo." ValidationGroup="GrpObligatorio"></asp:RequiredFieldValidator>
|
||||
@@ -365,7 +411,7 @@
|
||||
</div>
|
||||
|
||||
<div class="row ">
|
||||
|
||||
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
@@ -438,11 +484,11 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div style="display: none">
|
||||
@@ -465,12 +511,39 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="DivModalCancelar" class="modal ADS fade" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<asp:UpdatePanel ID="UpModalCancelar" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">Opciones de cancelación de timbre
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<asp:RadioButtonList ID="RBLOpcionCancelacion" CssClass="iradio_square-blue" runat="server" RepeatDirection="Horizontal" Width="100%">
|
||||
<asp:ListItem Value="1">Solo cancelar timbre</asp:ListItem>
|
||||
<asp:ListItem Value="2">Cancelar timbre y generar un nuevo registro</asp:ListItem>
|
||||
</asp:RadioButtonList>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<asp:LinkButton ID="LnkCancelar" runat="server" CssClass="btn btn-success" Text="Cancelar" ValidationGroup="GrpCancelar" OnClick="LnkCancelar_Click"></asp:LinkButton>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
||||
|
||||
|
||||
|
||||
</asp:Content>
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Extensiones;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
@@ -255,7 +256,22 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
}
|
||||
}
|
||||
|
||||
private string DatosTimbre
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ViewState["DatosTimbre"] == null)
|
||||
{
|
||||
ViewState["DatosTimbre"] = "";
|
||||
}
|
||||
return ViewState["DatosTimbre"].ToString();
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
ViewState["DatosTimbre"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -331,7 +347,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
|
||||
DdlEstatus.SelectedValueExist("1");
|
||||
|
||||
}
|
||||
}
|
||||
protected void InicializaFechas()
|
||||
{
|
||||
|
||||
@@ -345,7 +361,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
{
|
||||
ClsGenerales ObjGeneral = new ClsGenerales();
|
||||
|
||||
if (ObjGeneral.GetInvEntregaAlmacenRutaRep(DdlSucursales.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, DdlEstatus.SelectedValue.ToEntero(), TxtFechaI.Text.ToDate(), TxtFechaF.Text.ToDate(), DdlChofer.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, Tipo:DdlTipo.SelectedValue))
|
||||
if (ObjGeneral.GetInvEntregaAlmacenRutaRep(DdlSucursales.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, DdlEstatus.SelectedValue.ToEntero(), TxtFechaI.Text.ToDate(), TxtFechaF.Text.ToDate(), DdlChofer.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, Tipo: DdlTipo.SelectedValue))
|
||||
{
|
||||
DTDatos = ObjGeneral.DtResultados;
|
||||
GVDatos.DataSource = DTDatos;
|
||||
@@ -371,7 +387,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
||||
|
||||
CveEntregaAlmacen = GvRow.DataKey("CveEntregaAlmacen").ToEntero();
|
||||
CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
|
||||
CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
|
||||
|
||||
DdlModalCamion.SelectedValueExist(GvRow.DataKey("CveCamion"));
|
||||
DdlModalChofer.SelectedValueExist(GvRow.DataKey("CveChofer"));
|
||||
@@ -411,12 +427,54 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
DVDireccionDestino.Visible = true;
|
||||
LnkDireccionDestino.Text = GvRow.DataKey("Direccion") + " <i class='fa fa-search' aria-hidden='true'></i>";
|
||||
}
|
||||
|
||||
|
||||
string TimbreTipoDocto = GvRow.DataKey("TimbreTipoDocto");
|
||||
|
||||
if (TimbreTipoDocto == "Rec")
|
||||
{
|
||||
DivTxtRec.Visible = true;
|
||||
DivGvRec.Visible = true;
|
||||
|
||||
CargaDatosRecoleccionDetallePS();
|
||||
}
|
||||
else
|
||||
{
|
||||
DivTxtRec.Visible = false;
|
||||
DivGvRec.Visible = false;
|
||||
}
|
||||
|
||||
UpModalEditarentrega.Update();
|
||||
RegistraScript("$('#DivEditarEntrega').modal({ backdrop: 'static', keyboard: false });");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void CargaDatosRecoleccionDetallePS()
|
||||
{
|
||||
if (CveEntregaAlmacen > 0)
|
||||
{
|
||||
ClsGenerales ObjGenerales = new ClsGenerales();
|
||||
|
||||
if (ObjGenerales.GetEntregaAlmacenRutaDetalle(CveEntregaAlmacen))
|
||||
{
|
||||
GvModalPSRecoleccion.DataSource = ObjGenerales.DtResultados;
|
||||
}
|
||||
else
|
||||
{
|
||||
GvModalPSRecoleccion.DataSource = null;
|
||||
}
|
||||
ObjGenerales.Dispose();
|
||||
}
|
||||
GvModalPSRecoleccion.DataBind();
|
||||
}
|
||||
|
||||
protected void DdlProducto_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
DdlModalRecoleccionUnidad.Items.Clear();
|
||||
DdlModalRecoleccionUnidad.DataSource = get_GlobalDTProductosServiciosEquivalencias(DdlProducto2.SelectedValue.ToEntero(), -1, UsuarioActual.CveEmpresa);
|
||||
DdlModalRecoleccionUnidad.DataBind();
|
||||
|
||||
UpModalEditarentrega.Update();
|
||||
}
|
||||
|
||||
private void ModalActualizaDirecciones(int CveTimbre)
|
||||
{
|
||||
ClsGenerales ObjGeneral = new ClsGenerales();
|
||||
@@ -508,70 +566,198 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
|
||||
protected void LnkCancelaTimbre_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.DatosTimbre = "";
|
||||
|
||||
bool ProcesoOK = false;
|
||||
LinkButton LnkCancelarFolioFiscal = (LinkButton)sender;
|
||||
GridViewRow GvRow = (GridViewRow)LnkCancelarFolioFiscal.BindingContainer;
|
||||
|
||||
int CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
|
||||
string FolioFiscalCancelar = GvRow.DataKey("FolioFiscal").ToString();
|
||||
string RFCReceptor = GvRow.DataKey("RFCReceptor").ToString();
|
||||
string FolioFiscalCancelar = GvRow.DataKey("FolioFiscal");
|
||||
string RFCReceptor = GvRow.DataKey("RFCReceptor");
|
||||
string RFCEmisor = GvRow.DataKey("RFCEmisor").ToString();
|
||||
int CvePACCancelacion = GvRow.DataKey("CvePAC").ToEntero();
|
||||
int CveSubProyecto = GvRow.DataKey("CveSubProyecto").ToEntero();
|
||||
int CveEntregaAlmacen = GvRow.DataKey("CveEntregaAlmacen").ToEntero();
|
||||
string TimbreTipoDocto = GvRow.DataKey("TimbreTipoDocto").ToString();
|
||||
string TimbreTipoDocto = GvRow.DataKey("TimbreTipoDocto");
|
||||
string FolioReferencia = GvRow.DataKey("FolioReferencia");
|
||||
string SerieFolio = GvRow.DataKey("SerieFolio");
|
||||
|
||||
var objJson = new
|
||||
{
|
||||
CveTimbre,
|
||||
FolioFiscalCancelar,
|
||||
RFCReceptor,
|
||||
RFCEmisor,
|
||||
CvePACCancelacion,
|
||||
CveSubProyecto,
|
||||
CveEntregaAlmacen,
|
||||
TimbreTipoDocto,
|
||||
FolioReferencia,
|
||||
SerieFolio
|
||||
};
|
||||
|
||||
if (TimbreTipoDocto == "Tra")
|
||||
{
|
||||
RBLOpcionCancelacion.Enabled = false;
|
||||
RBLOpcionCancelacion.SelectedValue = "2";
|
||||
}
|
||||
|
||||
|
||||
if (TimbreTipoDocto == "Ent")
|
||||
{
|
||||
RBLOpcionCancelacion.Enabled = false;
|
||||
RBLOpcionCancelacion.SelectedValue = "1";
|
||||
}
|
||||
|
||||
|
||||
if (TimbreTipoDocto == "Rec")
|
||||
{
|
||||
RBLOpcionCancelacion.Enabled = true;
|
||||
RBLOpcionCancelacion.SelectedValue = "1";
|
||||
}
|
||||
|
||||
this.DatosTimbre = JsonConvert.SerializeObject(objJson);
|
||||
|
||||
UpModalCancelar.Update();
|
||||
|
||||
RegistraScript("$('#DivModalCancelar').modal('show');");
|
||||
}
|
||||
|
||||
private void CancelarTimbre()
|
||||
{
|
||||
bool ProcesoOK = false;
|
||||
|
||||
var objJson = new
|
||||
{
|
||||
CveTimbre = -1,
|
||||
FolioFiscalCancelar = "",
|
||||
RFCReceptor = "",
|
||||
RFCEmisor = "",
|
||||
CvePACCancelacion = -1,
|
||||
CveSubProyecto = -1,
|
||||
CveEntregaAlmacen = -1,
|
||||
TimbreTipoDocto = "",
|
||||
FolioReferencia = "",
|
||||
SerieFolio = ""
|
||||
};
|
||||
|
||||
int CveTimbre = -1;
|
||||
string FolioFiscalCancelar = "";
|
||||
string RFCReceptor = "";
|
||||
string RFCEmisor = "";
|
||||
int CvePACCancelacion = -1;
|
||||
int CveSubProyecto = -1;
|
||||
int CveEntregaAlmacen = -1;
|
||||
string TimbreTipoDocto = "";
|
||||
string FolioReferencia = "";
|
||||
string SerieFolio = "";
|
||||
|
||||
bool RegenerarTimbre = RBLOpcionCancelacion.SelectedValue == "2";
|
||||
|
||||
if (!string.IsNullOrEmpty(this.DatosTimbre))
|
||||
{
|
||||
var obj = JsonConvert.DeserializeAnonymousType(this.DatosTimbre, objJson);
|
||||
|
||||
CveTimbre = obj.CveTimbre;
|
||||
FolioFiscalCancelar = obj.FolioFiscalCancelar;
|
||||
RFCReceptor = obj.RFCReceptor;
|
||||
RFCEmisor = obj.RFCEmisor;
|
||||
CvePACCancelacion = obj.CvePACCancelacion;
|
||||
CveSubProyecto = obj.CveSubProyecto;
|
||||
CveEntregaAlmacen = obj.CveEntregaAlmacen;
|
||||
TimbreTipoDocto = obj.TimbreTipoDocto;
|
||||
FolioReferencia = obj.FolioReferencia;
|
||||
SerieFolio = obj.SerieFolio;
|
||||
}
|
||||
|
||||
Timbrado ObjCancelacion = new Timbrado();
|
||||
ClsGenerales ObjGenerales = new ClsGenerales();
|
||||
ObjGenerales.IniciaTransacSQL();
|
||||
|
||||
if (EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptor))
|
||||
{
|
||||
if (ObjGenerales.CancelarTimbreTimbrado(CveTimbre, NowADS(), CvePACCancelacion, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
|
||||
{
|
||||
ProcesoOK = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ModExtensiones.RespuestaCancelacionSAT Resp = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptor, RFCEmisor, CvePACCancelacion, CveSATMotivoCancelacion: 3);
|
||||
StringBuilder sbMsg = new StringBuilder();
|
||||
|
||||
if (Resp.Verificado)
|
||||
try
|
||||
{
|
||||
if (EsProduccion)
|
||||
{
|
||||
|
||||
if (ObjGenerales.CancelarTimbreTimbrado(CveTimbre, NowADS(), CvePACCancelacion, ObjCancelacion.CancelacionAcuse, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
|
||||
if (EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptor))
|
||||
{
|
||||
//regenero el timbre
|
||||
if (TimbreTipoDocto == "Tra")
|
||||
AplicarCancelacion(ref ProcesoOK, ref sbMsg, ref ObjGenerales, ref CveTimbre, SerieFolio, CveEntregaAlmacen, RegenerarTimbre, CvePACCancelacion, "", CveSubProyecto, TimbreTipoDocto, FolioReferencia);
|
||||
}
|
||||
else
|
||||
{
|
||||
ModExtensiones.RespuestaCancelacionSAT Resp = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptor, RFCEmisor, CvePACCancelacion, CveSATMotivoCancelacion: 3);
|
||||
if (Resp.Verificado)
|
||||
{
|
||||
CveTimbre = ObjGenerales.AddGralTimbre("Tra", CveSubProyecto, NowADS(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveEntregaAlmacen: CveEntregaAlmacen, AplicaCP: true);
|
||||
AplicarCancelacion(ref ProcesoOK, ref sbMsg, ref ObjGenerales, ref CveTimbre, SerieFolio, CveEntregaAlmacen, RegenerarTimbre, CvePACCancelacion, ObjCancelacion.CancelacionAcuse, CveSubProyecto, TimbreTipoDocto, FolioReferencia);
|
||||
}
|
||||
////regenero el timbre
|
||||
//if (TimbreTipoDocto == "Ent")
|
||||
//{
|
||||
// CveTimbre = ObjGenerales.AddGralTimbre("Ent", CveSubProyecto, NowADS(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveEntregaAlmacen: CveEntregaAlmacen, AplicaCP: true);
|
||||
//}
|
||||
ProcesoOK = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AplicarCancelacion(ref ProcesoOK, ref sbMsg, ref ObjGenerales, ref CveTimbre, SerieFolio, CveEntregaAlmacen, RegenerarTimbre, CvePACCancelacion, "", CveSubProyecto, TimbreTipoDocto, FolioReferencia);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ProcesoOK = false;
|
||||
sbMsg.Clear();
|
||||
sbMsg.Append("Ocurrió un error al cancelar");
|
||||
}
|
||||
|
||||
if (ProcesoOK)
|
||||
{
|
||||
ObjGenerales.Commit();
|
||||
Alert("El complemento se cancelo correctamente.");
|
||||
Alert(sbMsg.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjGenerales.RollBack();
|
||||
Alert("Se presento un error al cancelar el Folio Fiscal", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
||||
Alert(sbMsg.ToString(), ModExtensiones.TipoMensaje.MsgError);
|
||||
}
|
||||
ObjGenerales.Dispose();
|
||||
|
||||
RegistraScript("$('#DivModalCancelar').modal('hide');");
|
||||
|
||||
if (RegenerarTimbre)
|
||||
{
|
||||
DdlEstatus.SelectedValueExist("0");
|
||||
UPFiltros.Update();
|
||||
CargaDatos();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void AplicarCancelacion(ref bool ProcesoOK, ref StringBuilder sbMsg, ref ClsGenerales ObjGenerales, ref int CveTimbre, string SerieFolioCancelar, int CveEntregaAlmacen, bool RegenerarTimbre, int CvePACCancelacion, string Acuse, int CveSubProyecto, string TimbreTipoDocto, string FolioReferencia)
|
||||
{
|
||||
if (ObjGenerales.CancelarTimbreTimbrado(CveTimbre, NowADS(), CvePACCancelacion, Acuse, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
|
||||
{
|
||||
ProcesoOK = true;
|
||||
sbMsg.Append($"El timbre <b>{SerieFolioCancelar}</b> se cancelo correctamente.");
|
||||
//regenero el timbre
|
||||
if (RegenerarTimbre)
|
||||
{
|
||||
CveTimbre = ObjGenerales.AddGralTimbre(TimbreTipoDocto, CveSubProyecto, NowADS(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveEntregaAlmacen: CveEntregaAlmacen, AplicaCP: true);
|
||||
if (CveTimbre > 0)
|
||||
{
|
||||
sbMsg.Append($"<br/>Se genero un nuevo registro.<br/> Serie Folio: <b>{ObjGenerales.SerieInsertada} - {ObjGenerales.FolioInsertado}</b>");
|
||||
if (TimbreTipoDocto == "Rec")
|
||||
{
|
||||
sbMsg.Append($"<br/>Folio de referencia: <b>{FolioReferencia}</b>");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ProcesoOK = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ProcesoOK = false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool EstatusSATCancelado(string FolioFiscal, string RFCDe, string RFCReceptor)
|
||||
{
|
||||
bool respuesta = false;
|
||||
@@ -598,7 +784,6 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
|
||||
protected void BtnModalEditarentrega_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
bool ProcesoOK = true;
|
||||
|
||||
ClsGenerales ObjGral = new ClsGenerales();
|
||||
@@ -634,6 +819,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
LinkButton LnkEditar = e.Row.FCLinkButton("LnkEditar");
|
||||
LinkButton LnkTimbrar = e.Row.FCLinkButton("LnkTimbrar");
|
||||
LinkButton LnkCancelaTimbre = e.Row.FCLinkButton("LnkCancelaTimbre");
|
||||
//LinkButton LnkReactivarTimbre = e.Row.FCLinkButton("LnkReactivarTimbre");
|
||||
|
||||
LnkEditar.Visible = false;
|
||||
LnkTimbrar.Visible = false;
|
||||
@@ -652,6 +838,11 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
e.Row.FCHyperLink("HplR").NavigateUrl = "/Inventarios/EntradasSalidas.aspx?CveEntregaAlmacen=" + e.Row.DBCampo("CveEntregaAlmacen");
|
||||
}
|
||||
|
||||
//if (e.Row.DataKey("Estatus").ToEntero() == 2)
|
||||
//{
|
||||
// LnkReactivarTimbre.Visible = true;
|
||||
//}
|
||||
|
||||
if (e.Row.DataKey("Estatus").ToEntero() == 1)
|
||||
{
|
||||
LnkCancelaTimbre.Visible = UsuarioActual.TienePermisoProceso(338);
|
||||
@@ -661,10 +852,10 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
}
|
||||
|
||||
|
||||
if (bool.Parse(e.Row.DataKey("AplicaCP")))
|
||||
if (bool.Parse(e.Row.DataKey("AplicaCP")))
|
||||
{
|
||||
|
||||
if(e.Row.DataKey("Tipo").ToString() == "I")
|
||||
|
||||
if (e.Row.DataKey("Tipo").ToString() == "I")
|
||||
{
|
||||
if (e.Row.FCHyperLink("HplPDF") != null)
|
||||
e.Row.FCHyperLink("HplPDF").NavigateUrl = "/Compras/PopUpVerFactura.aspx?P=" + Extensiones.ModExtensiones.Encripta(String.Format("OP=DesXmlTra&CVEMOVIMIENTO={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", -1, "PDF", e.Row.DataKey("SerieFolio"), e.Row.DataKey("TimbreTipoDocto")));
|
||||
@@ -687,7 +878,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
{
|
||||
if (e.Row.DataKey("Tipo").ToString() == "I")
|
||||
{
|
||||
if (e.Row.FCHyperLink("HplXML") != null)
|
||||
if (e.Row.FCHyperLink("HplXML") != null)
|
||||
e.Row.FCHyperLink("HplXML").NavigateUrl = "/Compras/PopUpVerFactura.aspx?P=" + Extensiones.ModExtensiones.Encripta(String.Format("OP=DesXmlTra&CVEMOVIMIENTO={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", -1, "XML", e.Row.DataKey("SerieFolio"), e.Row.DataKey("TimbreTipoDocto")));
|
||||
}
|
||||
else
|
||||
@@ -984,7 +1175,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
DdlDirClienteLocalidad.Items.Clear();
|
||||
if (DdlDirClienteEstado.SelectedValue.ToEntero() > 0)
|
||||
{
|
||||
DdlDirClienteLocalidad.DataSource = get_GlobalDTLocalidad(DdlDirClienteEstado.SelectedValue.ToEntero(), DdlDirClienteMunicipio.SelectedValue.ToEntero(), CodigoPostal:TxtEnvioCP.Text.Trim());
|
||||
DdlDirClienteLocalidad.DataSource = get_GlobalDTLocalidad(DdlDirClienteEstado.SelectedValue.ToEntero(), DdlDirClienteMunicipio.SelectedValue.ToEntero(), CodigoPostal: TxtEnvioCP.Text.Trim());
|
||||
DdlDirClienteLocalidad.DataBind();
|
||||
}
|
||||
|
||||
@@ -1039,7 +1230,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
|
||||
public void EditDireccionOrigen_Click(object sender, EventArgs e)
|
||||
{
|
||||
//GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
||||
//GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
||||
//int CveDireccionOrigen = GvRow.DataKey("CveDireccionOrigen").ToEntero();
|
||||
CveDireccionEditar = CveDireccionOrigen;
|
||||
//CveCliente = GvRow.DataKey("CveCliente").ToEntero();
|
||||
@@ -1139,6 +1330,92 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
||||
RegistraScript("$('#divAddDireccionEnvio').modal('show');");
|
||||
}
|
||||
|
||||
|
||||
protected void LnkReactivarTimbre_Click(object sender, EventArgs e)
|
||||
{
|
||||
bool ProcesoOK = false;
|
||||
LinkButton LnkCancelarFolioFiscal = (LinkButton)sender;
|
||||
GridViewRow GvRow = (GridViewRow)LnkCancelarFolioFiscal.BindingContainer;
|
||||
|
||||
int CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
|
||||
int CveEntregaAlmacen = GvRow.DataKey("CveEntregaAlmacen").ToEntero();
|
||||
|
||||
|
||||
Timbrado ObjCancelacion = new Timbrado();
|
||||
ClsGenerales ObjGenerales = new ClsGenerales();
|
||||
ObjGenerales.IniciaTransacSQL();
|
||||
|
||||
if (ObjGenerales.ReactivarTimbreEntregaAlmacen(CveTimbre, CveEntregaAlmacen, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
|
||||
{
|
||||
ProcesoOK = true;
|
||||
}
|
||||
|
||||
if (ProcesoOK)
|
||||
{
|
||||
ObjGenerales.Commit();
|
||||
Alert("El complemento se reactivo correctamente.");
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjGenerales.RollBack();
|
||||
Alert("Se presento un error al reactivar el folio fiscal", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
||||
}
|
||||
ObjGenerales.Dispose();
|
||||
|
||||
CargaDatos();
|
||||
}
|
||||
|
||||
protected void LnkModalAgregarPS_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (CveEntregaAlmacen > 0)
|
||||
{
|
||||
ClsGenerales ObjGenerales = new ClsGenerales();
|
||||
|
||||
if (ObjGenerales.AddEntregaAlmacenRutaDetalle(CveEntregaAlmacen, DdlProducto2.SelectedValue.ToEntero(), TxtModalRecoleccionCantidad.Text.ToEntero(), DdlModalRecoleccionUnidad.SelectedValue.ToEntero(), UsuarioActual.CveUsuario))
|
||||
{
|
||||
|
||||
}
|
||||
ObjGenerales.Dispose();
|
||||
}
|
||||
|
||||
LimpiarControlesPS();
|
||||
CargaDatosRecoleccionDetallePS();
|
||||
|
||||
}
|
||||
private void LimpiarControlesPS()
|
||||
{
|
||||
TxtModalRecoleccionCantidad.Text = "";
|
||||
DdlModalRecoleccionUnidad.Items.Clear();
|
||||
DdlProducto2.txtText.Value = "";
|
||||
DdlProducto2.txtValue.Value = "";
|
||||
UpModalEditarentrega.Update();
|
||||
}
|
||||
|
||||
|
||||
protected void LnkModalGvModalPSRecoleccionEliminar_Click(object sender, EventArgs e)
|
||||
{
|
||||
LinkButton LnkEliminar = (LinkButton)sender;
|
||||
GridViewRow GvRow = (GridViewRow)LnkEliminar.NamingContainer;
|
||||
|
||||
if (CveEntregaAlmacen > 0)
|
||||
{
|
||||
|
||||
int CveEntregaAlmacenDetalleEliminar = GvRow.DataKey("CveEntregaAlmacenDetalle").ToEntero();
|
||||
ClsGenerales ObjGenerales = new ClsGenerales();
|
||||
|
||||
if (ObjGenerales.RemoveEntregaAlmacenRutaDetalle(CveEntregaAlmacenDetalleEliminar))
|
||||
{
|
||||
Alert("Recolección Eliminada correctamente.");
|
||||
}
|
||||
ObjGenerales.Dispose();
|
||||
}
|
||||
CargaDatosRecoleccionDetallePS();
|
||||
}
|
||||
|
||||
protected void LnkCancelar_Click(object sender, EventArgs e)
|
||||
{
|
||||
CancelarTimbre();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -4977,20 +4977,53 @@
|
||||
<ajax:ValidatorCalloutExtender ID="VCERfvTxtModalLayoutBancosFecha" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtModalLayoutBancosFecha" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
|
||||
<asp:UpdatePanel runat="server" ID="UpControlesScotia" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
|
||||
<div class="row" runat="server" id="DVCuentasScotia" visible="false">
|
||||
<br />
|
||||
<div class="col-md-3">
|
||||
<asp:Label runat="server" ID="LblCuentasScotia" ></asp:Label>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<asp:Button runat="server" ID="BtnGenerarAlta" Text="Generar Alta" OnClick="BtnGenerarAlta_Click" class="btn btn-primary" Enabled="false" />
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="btn-file btn green" onclick="$('#FUTxt').click();">
|
||||
<i class="fa fa-plus"></i>
|
||||
<span>Seleccionar</span>
|
||||
</div>
|
||||
<span id="FUTxtt"></span>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<asp:Button runat="server" ID="BtnCargarAlta" Text="Cargar Alta" OnClick="BtnCargarAlta_Click" class="btn btn-primary" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ContentTemplate>
|
||||
<Triggers>
|
||||
<asp:PostBackTrigger ControlID="BtnCargarAlta" />
|
||||
<asp:PostBackTrigger ControlID ="BtnGenerarAlta" />
|
||||
</Triggers>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
|
||||
|
||||
<%-- <div class="form-group form-md-line-input input-iconright" runat="server" visible="false" >
|
||||
<asp:TextBox ID="TxtModalLayoutBancosFecha" runat="server" CausesValidation="True" CssClass="form-control"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator ID="RfTxtModalLayoutBancosFecha" runat="server" ControlToValidate="TxtModalLayoutBancosFecha" CssClass="help-block errorimput" Display="none"
|
||||
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario "
|
||||
ValidationGroup="GrpModalBancoLayout"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="VCERfTxtModalLayoutBancosFecha" runat="server" HighlightCssClass="vco" TargetControlID="RfTxtModalLayoutBancosFecha" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
|
||||
<asp:Label runat="server" Text="Fecha: " AssociatedControlID="TxtModalLayoutBancosFecha"></asp:Label>
|
||||
<ajax:MaskedEditExtender ID="MaskedEditExtender6" runat="server" TargetControlID="TxtModalLayoutBancosFecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left" BehaviorID="_content_MKEFechaBaja" Century="2000" CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" CultureThousandsPlaceholder="" CultureTimePlaceholder=""></ajax:MaskedEditExtender>
|
||||
<ajax:CalendarExtender ID="CalendarExtender5" runat="server" TargetControlID="TxtModalLayoutBancosFecha" PopupButtonID="ImgFechaBaja" PopupPosition="BottomRight" BehaviorID="_content_CEFechaBaja"></ajax:CalendarExtender>
|
||||
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="TxtModalLayoutBancosFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha de Baja''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpModalBancoLayout" Visible="False"></asp:CompareValidator>
|
||||
</div>--%>
|
||||
<%--
|
||||
<div class="form-group form-md-line-input input-iconright" runat="server" visible="false" >
|
||||
<asp:TextBox ID="TxtModalLayoutBancosFecha" runat="server" CausesValidation="True" CssClass="form-control"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator ID="RfTxtModalLayoutBancosFecha" runat="server" ControlToValidate="TxtModalLayoutBancosFecha" CssClass="help-block errorimput" Display="none"
|
||||
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario "
|
||||
ValidationGroup="GrpModalBancoLayout"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="VCERfTxtModalLayoutBancosFecha" runat="server" HighlightCssClass="vco" TargetControlID="RfTxtModalLayoutBancosFecha" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
|
||||
<asp:Label runat="server" Text="Fecha: " AssociatedControlID="TxtModalLayoutBancosFecha"></asp:Label>
|
||||
<ajax:MaskedEditExtender ID="MaskedEditExtender6" runat="server" TargetControlID="TxtModalLayoutBancosFecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left" BehaviorID="_content_MKEFechaBaja" Century="2000" CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" CultureThousandsPlaceholder="" CultureTimePlaceholder=""></ajax:MaskedEditExtender>
|
||||
<ajax:CalendarExtender ID="CalendarExtender5" runat="server" TargetControlID="TxtModalLayoutBancosFecha" PopupButtonID="ImgFechaBaja" PopupPosition="BottomRight" BehaviorID="_content_CEFechaBaja"></ajax:CalendarExtender>
|
||||
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="TxtModalLayoutBancosFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha de Baja''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpModalBancoLayout" Visible="False"></asp:CompareValidator>
|
||||
</div>
|
||||
--%>
|
||||
|
||||
|
||||
<br />
|
||||
@@ -5012,6 +5045,11 @@
|
||||
<asp:PostBackTrigger ControlID="BtnEfectivaleXLS" />
|
||||
</Triggers>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
<div style="display:none!important">
|
||||
<asp:FileUpload ID="FUTxt" runat="server" onchange="$('#FUTxtt').text(this.value);" ClientIDMode="Static" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -1,22 +1,24 @@
|
||||
using Extensiones;
|
||||
using DocumentFormat.OpenXml.Drawing;
|
||||
using Extensiones;
|
||||
using Ionic.Zip;
|
||||
using iTextSharp.text.pdf;
|
||||
using iTextSharp.text.pdf.parser;
|
||||
using Modelos;
|
||||
using Profact.TimbraCFDI40;
|
||||
using StackExchange.Redis;
|
||||
using System;
|
||||
using System.Activities.Expressions;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using static Extensiones.ModExtensiones;
|
||||
using Modelos;
|
||||
using System.Text.RegularExpressions;
|
||||
using iTextSharp.text.pdf.parser;
|
||||
using Profact.TimbraCFDI40;
|
||||
using Ionic.Zip;
|
||||
using DocumentFormat.OpenXml.Drawing;
|
||||
using System.Web;
|
||||
|
||||
public partial class Nomina_Nomina2 : ClsPaginas
|
||||
{
|
||||
@@ -10742,7 +10744,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
SinSelccion,
|
||||
Bancomer,
|
||||
Banorte,
|
||||
Banamex
|
||||
Banamex,
|
||||
ScotiaBank
|
||||
}
|
||||
|
||||
|
||||
@@ -10786,6 +10789,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
CargaCuentas();
|
||||
|
||||
DivModalLayoutBancosFecha.Visible = false;
|
||||
DVCuentasScotia.Visible = false;
|
||||
TxtModalLayoutBancosFecha.Text = "";
|
||||
|
||||
RegistraScript("$('#ModalLayoutBancos').modal('show');");
|
||||
@@ -10798,7 +10802,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
DdlCuenta.Items.Clear();
|
||||
DataTable DTCuentas = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta <> 1 AND UsaLayout = 'True' AND LEN(ConvenioPagoElectronico) > 0 ");
|
||||
DTCuentas.CaseSensitive = false;
|
||||
DdlCuenta.DataSource = DTCuentas.FiltraParametros(" Banco IN('BANCOMER','BANORTE','BBVA Bancomer','BBVA','BANAMEX')");
|
||||
DdlCuenta.DataSource = DTCuentas.FiltraParametros(" Banco IN('BANCOMER','BANORTE','BBVA Bancomer','BBVA','BANAMEX') OR Banco LIKE '%SCOTIA%' ");
|
||||
DdlCuenta.DataBind();
|
||||
DdlCuenta.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
||||
DdlCuenta.SelectedValueExist("-1");
|
||||
@@ -10808,6 +10812,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
{
|
||||
ConvenioPagoElectronico = string.Empty;
|
||||
DivModalLayoutBancosFecha.Visible = false;
|
||||
DVCuentasScotia.Visible = false;
|
||||
BtnGenerarAlta.Enabled = false;
|
||||
|
||||
if (DdlCuenta.SelectedValue.ToEntero() > 0)
|
||||
{
|
||||
@@ -10827,6 +10833,12 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
Banco = Bancos.Banamex;
|
||||
DivModalLayoutBancosFecha.Visible = true;
|
||||
}
|
||||
else if (DdlCuenta.SelectedItem.Text.ToUpper().Contains("SCOTIA"))
|
||||
{
|
||||
DivModalLayoutBancosFecha.Visible = false;
|
||||
Banco = Bancos.ScotiaBank;
|
||||
PreparaLayoutBancosScotiaBank();
|
||||
}
|
||||
else
|
||||
{
|
||||
ConvenioPagoElectronico = string.Empty;
|
||||
@@ -10838,6 +10850,274 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
}
|
||||
}
|
||||
|
||||
#region Layout ScotiaBank
|
||||
private void PreparaLayoutBancosScotiaBank()
|
||||
{
|
||||
BtnGenerarAlta.Enabled = false;
|
||||
int cuentasPendientes = 0;
|
||||
using (ClsNominas objnom = new ClsNominas())
|
||||
{
|
||||
if (objnom.GetDispersionNomina(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa, 18))
|
||||
{
|
||||
string fechaHoy = DateTime.Today.ToString("MM/dd/yyyy");
|
||||
cuentasPendientes = objnom.DtResultados.FiltraParametros($" EstatusPagoElectronicoScotia = False OR FechaEliminacion < #{fechaHoy}# ").Rows.Count;
|
||||
}
|
||||
}
|
||||
|
||||
LblCuentasScotia.Text = string.Format("Pendientes: {0}", cuentasPendientes);
|
||||
|
||||
if (cuentasPendientes > 0)
|
||||
{
|
||||
BtnGenerarAlta.Enabled = true;
|
||||
BtnModalBancosProcesar.Enabled = false;
|
||||
DVCuentasScotia.Visible = true;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
BtnModalBancosProcesar.Enabled = true;
|
||||
}
|
||||
|
||||
UpControlesScotia.Update();
|
||||
UpModalBancosLayout.Update();
|
||||
}
|
||||
|
||||
|
||||
protected void BtnGenerarAlta_Click(object sender, EventArgs e)
|
||||
{
|
||||
DataTable DTCuentasPendientes = new DataTable();
|
||||
using (ClsNominas objnom = new ClsNominas())
|
||||
{
|
||||
if (objnom.GetDispersionNomina(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa, 18))
|
||||
{
|
||||
string fechaHoy = DateTime.Today.ToString("MM/dd/yyyy");
|
||||
DTCuentasPendientes = objnom.DtResultados.FiltraParametros($" EstatusPagoElectronicoScotia = False OR FechaEliminacion < #{fechaHoy}# ");
|
||||
}
|
||||
}
|
||||
|
||||
string NumeroConvenio = "";
|
||||
|
||||
using (ClsBancos objBancos = new ClsBancos())
|
||||
{
|
||||
if (objBancos.GetBancosCuentas(DdlCuenta.SelectedValue.ToEntero()))
|
||||
{
|
||||
if (objBancos.DtResultados.Rows.Count > 0)
|
||||
{
|
||||
NumeroConvenio = objBancos.DtResultados.Rows[0]["ConvenioPagoElectronico"].ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (NumeroConvenio.Length > 0)
|
||||
{
|
||||
using (ClsPagoScotia objPagoScotia = new ClsPagoScotia())
|
||||
{
|
||||
if (objPagoScotia.AltaCuentasScotia(DTCuentasPendientes, UsuarioActual, NumeroConvenio))
|
||||
{
|
||||
Response.Clear();
|
||||
Response.Buffer = true;
|
||||
Response.ContentType = "text/plain";
|
||||
Response.AddHeader("Content-Disposition", "attachment;filename=" + objPagoScotia.NombreArchivo);
|
||||
Response.Write(objPagoScotia.LayoutStr);
|
||||
Response.Flush();
|
||||
Response.End();
|
||||
}
|
||||
else{
|
||||
Alert(objPagoScotia.LayouErrorStr, TipoMensaje.MsgAdvertencia);
|
||||
RegistraScript("$('#ModalLayoutBancos').modal('show');");
|
||||
//UpModalBancosLayout.Update();
|
||||
//Response.Clear();
|
||||
//Response.Buffer = true;
|
||||
//Response.ContentType = "text/plain";
|
||||
///Response.AddHeader("Content-Disposition", "attachment;filename=" + objPagoScotia.NombreArchivo);
|
||||
//Response.Write(objPagoScotia.LayoutStr);
|
||||
//Response.Flush();
|
||||
//Response.End();
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
Alert("La cuenta seleccionada no tiene un Convenio de Pago Electronico");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private string GuardaTXT()
|
||||
{
|
||||
string NombreArchivo = "";
|
||||
try
|
||||
{
|
||||
|
||||
string FileName = System.IO.Path.GetFileName(FUTxt.PostedFile.FileName);
|
||||
NombreArchivo = FileName;
|
||||
string Extension = System.IO.Path.GetExtension(FUTxt.PostedFile.FileName);
|
||||
string FolderPath = string.Format("{0}Empresas\\", Request.ApplicationPath);
|
||||
string FilePath = Server.MapPath(FolderPath + FileName);
|
||||
FUTxt.SaveAs(FilePath);
|
||||
NombreArchivo = FilePath;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//Retorno = false;
|
||||
this.GuardaLog( $" Error al guardar el archivo TXT --> {ex.StackTrace}");
|
||||
NombreArchivo = "";
|
||||
|
||||
}
|
||||
|
||||
return NombreArchivo;
|
||||
}
|
||||
|
||||
protected void BtnCargarAlta_Click(object sender, EventArgs e)
|
||||
{
|
||||
bool ErrorArchivo = false;
|
||||
string RutaArchivo = "";
|
||||
|
||||
if (FUTxt.HasFile)
|
||||
{
|
||||
RutaArchivo = GuardaTXT();
|
||||
if (RutaArchivo.Length == 0)
|
||||
{
|
||||
Alert("Ocurrió un error Scotia al cargar el archivo", TipoMensaje.MsgError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Alert("No tiene ningún archivo", TipoMensaje.MsgAdvertencia);
|
||||
return;
|
||||
}
|
||||
|
||||
// LEE TXT
|
||||
string Texto;
|
||||
Texto = System.IO.File.ReadAllText(RutaArchivo);
|
||||
string[] TextoArreglo = Texto.Split(new[] { "\r\n" }, StringSplitOptions.None);
|
||||
|
||||
//if (OpBancos == 3)
|
||||
//{
|
||||
TextoArreglo = System.IO.File.ReadAllLines(RutaArchivo);
|
||||
|
||||
StringBuilder SBCuentasAltas = new StringBuilder();
|
||||
StringBuilder SBErrores = new StringBuilder();
|
||||
bool ErrorArchivoScotia = false;
|
||||
|
||||
string H = TextoArreglo[0];
|
||||
|
||||
if (!(TextoArreglo.Length >= 3))
|
||||
{
|
||||
Alert("El archivo no tiene el formato correcto, debe tener al menos 3 líneas (Header, Detalle y Trailer)", TipoMensaje.MsgAdvertencia);
|
||||
return;
|
||||
}
|
||||
|
||||
if (H.Length != 140)
|
||||
{
|
||||
Alert("La longitud de la cabecera es incorrecta", TipoMensaje.MsgAdvertencia);
|
||||
return;
|
||||
}
|
||||
|
||||
string TipoArchivo = H.Substring(0, 2).ToUpper();
|
||||
|
||||
if (TipoArchivo != "SP")
|
||||
{
|
||||
Alert($"El archivo no es un archivo de respuesta, inicia con código {TipoArchivo}", TipoMensaje.MsgAdvertencia);
|
||||
}
|
||||
|
||||
string HCodigo = H.Substring(40, 3);
|
||||
if (HCodigo != "000" && HCodigo != " ")
|
||||
{
|
||||
SBErrores.Append($"El código de la cabecera es incorrecto {HCodigo} - {ClsPagoScotia.AltaCuentaScotiaCodigoRespuestaAnexoC(HCodigo)}.</br>");
|
||||
ErrorArchivoScotia = true;
|
||||
}
|
||||
|
||||
ClsBancos ObjBancos = new ClsBancos();
|
||||
ObjBancos.IniciaTransacSQL();
|
||||
|
||||
for (int i = 1; i <= TextoArreglo.Length - 2; i++)
|
||||
{
|
||||
string Linea = TextoArreglo[i];
|
||||
|
||||
if (Linea.Length == 140)
|
||||
{
|
||||
string CodigoRespuesta = Linea.Substring(109, 3);
|
||||
string DTipoArchivo = Linea.Substring(0, 2);
|
||||
string Cuenta = Linea.Substring(12, 20);
|
||||
|
||||
DateTime FechaEliminacion = DateTime.ParseExact(Linea.Substring(32, 8), "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
|
||||
|
||||
if (DTipoArchivo != "SP")
|
||||
{
|
||||
SBErrores.Append($"Error Línea {i} el tipo de archivo no es un archivo de respuesta (SP), inicia con código {DTipoArchivo}.</br>");
|
||||
ErrorArchivoScotia = true;
|
||||
}
|
||||
|
||||
if (CodigoRespuesta == "000" || CodigoRespuesta == " ")
|
||||
{
|
||||
int CveCuentaDeposito = Linea.Substring(40, 50).Trim().ToEntero();
|
||||
|
||||
if (CveCuentaDeposito > 0)
|
||||
{
|
||||
if (ObjBancos.UpdateCuentaDepositoPagoElectronico(CveCuentaDeposito, Opcion: 3, FechaEliminacion: FechaEliminacion))
|
||||
{
|
||||
SBCuentasAltas.Append($"Cuenta: {Cuenta} registrada correctamente.</br>");
|
||||
}
|
||||
else
|
||||
{
|
||||
ErrorArchivoScotia = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SBErrores.Append($"Error Línea {i} Cve: {CveCuentaDeposito} cuenta: {Cuenta} no encontrada.</br>");
|
||||
ErrorArchivoScotia = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SBErrores.Append($"Error Línea {i} cuenta no dada de alta código {CodigoRespuesta} - {ClsPagoScotia.AltaCuentaScotiaCodigoRespuestaAnexoC(CodigoRespuesta)}.</br>");
|
||||
ErrorArchivoScotia = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SBErrores.Append($"Error en longitud de la línea {i} es incorrecta.</br>");
|
||||
ErrorArchivoScotia = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (ErrorArchivoScotia)
|
||||
{
|
||||
ObjBancos.RollBack();
|
||||
Alert($"El archivo presentó errores en su procesamiento ({SBErrores.Length}). Correctos {SBCuentasAltas.Length} cuentas.</br>Altas:</br>{SBCuentasAltas.ToString()}<br><br>Errores:<br>{SBErrores.ToString()}", TipoMensaje.MsgAdvertencia);
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjBancos.Commit();
|
||||
Alert($"El archivo se analizó correctamente y se efectuaron todos los cambios en el sistema. Cuentas procesadas:</br>{SBCuentasAltas.ToString()}", TipoMensaje.MsgInformacion);
|
||||
}
|
||||
|
||||
ObjBancos.Dispose();
|
||||
|
||||
|
||||
if (ErrorArchivo)
|
||||
{
|
||||
Alert("Ocurrió un error al cargar el archivo", TipoMensaje.MsgError);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
Alert("El archivo se cargó correctamente", TipoMensaje.MsgInformacion);
|
||||
System.IO.File.Delete(RutaArchivo);
|
||||
PreparaLayoutBancosScotiaBank();
|
||||
RegistraScript("$('#ModalLayoutBancos').modal('show');");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
protected void BtnLayoutXLS_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
@@ -10970,6 +11250,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
}
|
||||
protected void BtnModalBancosProcesar_Click(object sender, EventArgs e)
|
||||
{
|
||||
BtnModalBancosProcesar.Enabled = true;
|
||||
|
||||
if (Banco == Bancos.Bancomer)
|
||||
{
|
||||
@@ -11001,6 +11282,104 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (Banco == Bancos.ScotiaBank)
|
||||
{
|
||||
|
||||
DataTable DTResultados = new DataTable();
|
||||
using (ClsNominas objnom = new ClsNominas())
|
||||
{
|
||||
if (objnom.GetDispersionNomina(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa, 18))
|
||||
{
|
||||
DTResultados = objnom.DtResultados;
|
||||
}
|
||||
}
|
||||
|
||||
if (DTResultados.Rows.Count > 0)
|
||||
{
|
||||
using (ClsPagoScotia objPagoScotia = new ClsPagoScotia())
|
||||
{
|
||||
|
||||
string ConvenioPagoElectronicoScotia = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("ConvenioPagoElectronico", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString();
|
||||
string NumCuentaOrigen = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("NumCuenta", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString();
|
||||
string CLABEOrigen = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("CLABE", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString();
|
||||
//CASE WHEN LEN(BC.NumCuenta) > 0 THEN BC.NumCuenta ELSE BC.CLABE END AS CLABEOrigen,
|
||||
|
||||
if (!DTResultados.Columns.Contains("ConvenioPagoElectronico"))
|
||||
{
|
||||
DTResultados.Columns.Add("ConvenioPagoElectronico", typeof(string));
|
||||
}
|
||||
|
||||
if (!DTResultados.Columns.Contains("CLABEOrigen"))
|
||||
{
|
||||
DTResultados.Columns.Add("CLABEOrigen", typeof(string));
|
||||
}
|
||||
if (!DTResultados.Columns.Contains("Observaciones"))
|
||||
{
|
||||
DTResultados.Columns.Add("Observaciones", typeof(string));
|
||||
}
|
||||
|
||||
|
||||
foreach (DataRow dRow in DTResultados.Rows)
|
||||
{
|
||||
dRow["ConvenioPagoElectronico"] = ConvenioPagoElectronicoScotia;
|
||||
dRow["CLABEOrigen"] = NumCuentaOrigen.Length > 0 ? NumCuentaOrigen : CLABEOrigen; // Si no tiene numero de cuenta, se usa la CLABE
|
||||
dRow["Observaciones"] = dRow["CveNominaDetalle"].ToString();
|
||||
}
|
||||
|
||||
|
||||
//DTResultados.Columns["CLABEOrigen"].ColumnName = "CLABEOrigen"; // CLABE Origen
|
||||
//DTResultados.Columns["ConvenioPagoElectronico"].ColumnName = "ConvenioPagoElectronico"; // Convenio Pago Electronico
|
||||
//DTResultados.Columns["Importe"].ColumnName = "Importe"; // Importe
|
||||
DTResultados.Columns["CvePersonal"].ColumnName = "CveProveedor"; // Cve Proveedor
|
||||
//DTResultados.Columns["RFC"].ColumnName = "RFC"; // RFC
|
||||
DTResultados.Columns["Nombre"].ColumnName = "RazonSocial"; // Razon Social
|
||||
DTResultados.Columns["CveNominaDetalle"].ColumnName = "CveIE"; // Cve IE
|
||||
//DTResultados.Columns["CLABEDestino"].ColumnName = "CLABEDestino"; // CLABE Destino
|
||||
//DTResultados.Columns["CLABE"].ColumnName = "CLABE"; // CLABE
|
||||
//DTResultados.Columns["CveBanco"].ColumnName = "CveBanco"; // Cve Banco
|
||||
DTResultados.Columns["Observaciones"].ColumnName = "Observaciones"; // Observaciones
|
||||
DTResultados.Columns["Correo"].ColumnName = "Correo"; // Correo
|
||||
//DTResultados.Columns["CvePersonal"].ColumnName = "CvePersonal"; // Cve Personal
|
||||
|
||||
|
||||
/*
|
||||
CLABEOrigen
|
||||
ConvenioPagoElectronico
|
||||
Importe
|
||||
CveProveedor
|
||||
RFC
|
||||
RazonSocial
|
||||
CveIE
|
||||
CLABEDestino
|
||||
CLABE
|
||||
CveBanco
|
||||
Observaciones
|
||||
Correo
|
||||
CvePersonal
|
||||
*/
|
||||
|
||||
|
||||
if (objPagoScotia.GeneraPagoScotiaBank(DTResultados, false, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual))
|
||||
{
|
||||
Response.Clear();
|
||||
Response.Buffer = true;
|
||||
Response.ContentType = "text/plain";
|
||||
Response.AddHeader("Content-Disposition", "attachment;filename=" + objPagoScotia.NombreArchivo);
|
||||
Response.Write(objPagoScotia.LayoutStr);
|
||||
Response.Flush();
|
||||
Response.End();
|
||||
}
|
||||
else
|
||||
{
|
||||
Alert(objPagoScotia.LayouErrorStr, TipoMensaje.MsgAdvertencia);
|
||||
RegistraScript("$('#ModalLayoutBancos').modal('show');");
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
Alert("No se encontraron registros para generar el layout de ScotiaBank", TipoMensaje.MsgAdvertencia);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void CrearLayoutNominaBancomer(DataTable DTNomina)
|
||||
{
|
||||
@@ -12489,4 +12868,6 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
{
|
||||
CargaMovtoPermanente();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -3976,6 +3976,8 @@ Partial Class OC_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()
|
||||
@@ -9499,6 +9501,10 @@ Partial Class OC_OC
|
||||
|
||||
Dim Respuesta As Boolean = True
|
||||
|
||||
If TipoOC <> "OC" Then
|
||||
Return True 'solo genera poliza de presupuesto si es OC
|
||||
End If
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(532).Contiene("2") Then
|
||||
|
||||
Dim CveMonedaPresupuesto As Integer = DdlMoneda.SelectedValue.ToEntero
|
||||
|
||||
@@ -695,7 +695,11 @@ Partial Class Sistemas_CatSesiones
|
||||
Dim dominio As String = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority)
|
||||
|
||||
If Not Page.IsPostBack Then
|
||||
GlobalDTRegimenesFiscales = Nothing
|
||||
GlobalDTRegimenesFiscales = Nothing
|
||||
|
||||
GlobalDTProveedoresCuentas(UsuarioActual.CveEmpresa, -1) = Nothing
|
||||
|
||||
|
||||
End If
|
||||
'If Not dominio.Contains("gps.adsistemas") Then
|
||||
' dominio = dominio.Replace("http", "https")
|
||||
@@ -712,6 +716,8 @@ Partial Class Sistemas_CatSesiones
|
||||
|
||||
Private Sub CargaTipoVenta()
|
||||
GlobalDTTipoVenta(UsuarioActual.CveEmpresa) = Nothing
|
||||
End Sub
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
@@ -37655,7 +37655,7 @@ Partial Class Ventas
|
||||
|
||||
Try
|
||||
Using wc As New HttpClient()
|
||||
Dim Url As New Uri("http://polizavirtual.com.mx/webservice/api/Venta")
|
||||
Dim Url As New Uri("https://polizavirtual.com.mx/webservice/api/Venta")
|
||||
|
||||
Dim Parametros As New List(Of KeyValuePair(Of String, String))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user