Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -4018,7 +4018,7 @@ Public Class ClsGenerales
|
|||||||
End Try
|
End Try
|
||||||
Return Retorno
|
Return Retorno
|
||||||
End Function
|
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
|
Dim Retorno As Boolean = False
|
||||||
DataAdapter("PA_Gral_TimbreTimbradoCancelar")
|
DataAdapter("PA_Gral_TimbreTimbradoCancelar")
|
||||||
|
|
||||||
@@ -4030,6 +4030,27 @@ Public Class ClsGenerales
|
|||||||
.Add("@SelloCancelacion", SqlDbType.VarChar).Value = SelloCancelacion
|
.Add("@SelloCancelacion", SqlDbType.VarChar).Value = SelloCancelacion
|
||||||
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
|
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
|
||||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
.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
|
End With
|
||||||
|
|
||||||
Try
|
Try
|
||||||
@@ -4040,6 +4061,7 @@ Public Class ClsGenerales
|
|||||||
End Try
|
End Try
|
||||||
Return Retorno
|
Return Retorno
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function RemoveGralTimbre(CveTimbre As Integer, CveEmpresa As Integer) As Boolean
|
Public Function RemoveGralTimbre(CveTimbre As Integer, CveEmpresa As Integer) As Boolean
|
||||||
Dim Retorno As Boolean = False
|
Dim Retorno As Boolean = False
|
||||||
DataAdapter("PA_Gral_TimbreRemove")
|
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 System.Xml
|
||||||
Imports Microsoft.Reporting.WebForms
|
Imports Microsoft.Reporting.WebForms
|
||||||
Imports System.Globalization
|
Imports System.Globalization
|
||||||
|
Imports Telerik.Web.UI
|
||||||
|
|
||||||
Partial Class Bancos_ConciliacionesBancariasaspx
|
Partial Class Bancos_ConciliacionesBancariasaspx
|
||||||
Inherits ClsPaginas
|
Inherits ClsPaginas
|
||||||
@@ -231,15 +232,20 @@ Partial Class Bancos_ConciliacionesBancariasaspx
|
|||||||
RegistraScript("$('#DModalCriterio').modal()")
|
RegistraScript("$('#DModalCriterio').modal()")
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub ConciliacionManual()
|
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 SumaSIGAbono As Double = 0
|
||||||
Dim SumaSIGCargo As Double = 0
|
Dim SumaSIGCargo As Double = 0
|
||||||
Dim SumaExcelAbono As Double = 0
|
Dim SumaExcelAbono As Double = 0
|
||||||
Dim SumaExcelCargo As Double = 0
|
Dim SumaExcelCargo As Double = 0
|
||||||
Dim Seleccionados As Integer = 0
|
|
||||||
Dim Fecha As Date
|
Dim Fecha As Date
|
||||||
|
|
||||||
For Each Gvr As GridViewRow In GvDatos.Rows
|
For Each Gvr As GridViewRow In GvDatos.Rows
|
||||||
If Gvr.FCCheckBox("ChkConciliado").Checked And Gvr.FCCheckBox("ChkConciliado").Enabled Then
|
If Gvr.FCCheckBox("ChkConciliado").Checked And Gvr.FCCheckBox("ChkConciliado").Enabled Then
|
||||||
Seleccionados += 1
|
|
||||||
Fecha = Gvr.DataKey("FechaDocumento").ToDate
|
Fecha = Gvr.DataKey("FechaDocumento").ToDate
|
||||||
If Gvr.DataKey("Tipo") = "Cargo" Then
|
If Gvr.DataKey("Tipo") = "Cargo" Then
|
||||||
If Gvr.DataKey("Importe").ToDouble < 0 Then ' cuando es negativo suma para el abono
|
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
|
||||||
End If
|
End If
|
||||||
Next
|
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
|
For Each Gvr As GridViewRow In GvEdoConciliacion.Rows
|
||||||
If Gvr.FCCheckBox("ChkConciliado").Checked And Gvr.FCCheckBox("ChkConciliado").Enabled Then
|
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
|
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
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
If SumaSIGCargo <> SumaExcelCargo OrElse SumaSIGAbono <> SumaExcelAbono Then
|
If SumaSIGCargo <> SumaExcelCargo OrElse SumaSIGAbono <> SumaExcelAbono Then
|
||||||
Alert($"La suma de los importes no cuadran ({SumaSIGCargo}-{SumaExcelCargo}**{SumaSIGAbono}-{SumaExcelAbono})", TipoMensaje.MsgAdvertencia)
|
Alert($"La suma de los importes no cuadran ({SumaSIGCargo}-{SumaExcelCargo}**{SumaSIGAbono}-{SumaExcelAbono})", TipoMensaje.MsgAdvertencia)
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
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 ObjBancos As New ClsBancos
|
||||||
Dim ObjOI As New ClsOIEventos(ObjBancos.IniciaTransacSQL())
|
Dim ObjOI As New ClsOIEventos(ObjBancos.IniciaTransacSQL())
|
||||||
Dim ErrorTrans As Boolean = False
|
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
|
ElseIf OpBancos = 2 Then
|
||||||
AltaProveedoresBajio()
|
AltaProveedoresBajio()
|
||||||
ElseIf OpBancos = 3 Then
|
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
|
End If
|
||||||
|
|
||||||
|
|
||||||
@@ -2743,7 +2743,7 @@ Partial Class Bancos_PagoElectronicoGrupos
|
|||||||
ElseIf OpBancos = 2 Then
|
ElseIf OpBancos = 2 Then
|
||||||
AltaProveedoresBajio(DTProveedores)
|
AltaProveedoresBajio(DTProveedores)
|
||||||
ElseIf OpBancos = 3 Then
|
ElseIf OpBancos = 3 Then
|
||||||
'AltaProveedoresScotia(DTProveedores)
|
'AltaCuentasScotia(DTProveedores)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1662,17 +1662,17 @@ Partial Class Bancos_ProveedoresAbonar
|
|||||||
|
|
||||||
ElseIf OpBanco = 3 Then
|
ElseIf OpBanco = 3 Then
|
||||||
If dtc.Rows.Count > 0 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.DataBind()
|
||||||
DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1"))
|
DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1"))
|
||||||
End If
|
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
|
trCuentaDeposito.Visible = True
|
||||||
DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1"))
|
'ñDdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1"))
|
||||||
Else
|
Else
|
||||||
BtnIEGuardar.Enabled = False
|
'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)
|
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
|
||||||
End If
|
End If
|
||||||
ElseIf DdlTipoTransaccion.SelectedValue = "17" Then
|
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))
|
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
|
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)
|
Alert($"<b>El comprobante XML presenta las siguientes inconsistencias:</b> <br><br> {Msg}", TipoMensaje.MsgAdvertencia)
|
||||||
|
|
||||||
Tab.ActiveTabIndex = 0
|
Tab.ActiveTabIndex = 0
|
||||||
|
|||||||
@@ -1039,9 +1039,12 @@ public partial class Export_ExpDetalle : ClsPaginas
|
|||||||
string ClienteExportador = DTExportaciones.FiltroPrimeroValor("ClienteExportador");
|
string ClienteExportador = DTExportaciones.FiltroPrimeroValor("ClienteExportador");
|
||||||
string DirExportador = DTExportaciones.FiltroPrimeroValor("DirExportador");
|
string DirExportador = DTExportaciones.FiltroPrimeroValor("DirExportador");
|
||||||
string RFCExp = DTExportaciones.FiltroPrimeroValor("RFCExp");
|
string RFCExp = DTExportaciones.FiltroPrimeroValor("RFCExp");
|
||||||
|
string PPSExp = DTExportaciones.FiltroPrimeroValor("PPSExp");
|
||||||
|
string IMMEXexp = DTExportaciones.FiltroPrimeroValor("IMMEXexp");
|
||||||
string ClienteImportador = DTExportaciones.FiltroPrimeroValor("ClienteImportador");
|
string ClienteImportador = DTExportaciones.FiltroPrimeroValor("ClienteImportador");
|
||||||
string DirImportador = DTExportaciones.FiltroPrimeroValor("DirImportador");
|
string DirImportador = DTExportaciones.FiltroPrimeroValor("DirImportador");
|
||||||
string RFCImp = DTExportaciones.FiltroPrimeroValor("RFCImp");
|
string RFCImp = DTExportaciones.FiltroPrimeroValor("RFCImp");
|
||||||
|
string PPSImp = DTExportaciones.FiltroPrimeroValor("PPSImp");
|
||||||
string IMMEXimp = DTExportaciones.FiltroPrimeroValor("IMMEXimp");
|
string IMMEXimp = DTExportaciones.FiltroPrimeroValor("IMMEXimp");
|
||||||
string NumFactura = DTExportaciones.FiltroPrimeroValor("SerieFolio");
|
string NumFactura = DTExportaciones.FiltroPrimeroValor("SerieFolio");
|
||||||
string ClaveSATPedimento = DTExportaciones.FiltroPrimeroValor("ClaveSATPedimento");
|
string ClaveSATPedimento = DTExportaciones.FiltroPrimeroValor("ClaveSATPedimento");
|
||||||
@@ -1071,6 +1074,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
|||||||
string ClienteConsignatario = DTExportaciones.FiltroPrimeroValor("ClienteConsignatario");
|
string ClienteConsignatario = DTExportaciones.FiltroPrimeroValor("ClienteConsignatario");
|
||||||
string DirConsignatario = DTExportaciones.FiltroPrimeroValor("DirConsignatario");
|
string DirConsignatario = DTExportaciones.FiltroPrimeroValor("DirConsignatario");
|
||||||
string RFCCon = DTExportaciones.FiltroPrimeroValor("RFCCon");
|
string RFCCon = DTExportaciones.FiltroPrimeroValor("RFCCon");
|
||||||
|
string PPSCon = DTExportaciones.FiltroPrimeroValor("PPSCon");
|
||||||
string IMMEXcon = DTExportaciones.FiltroPrimeroValor("IMMEXcon");
|
string IMMEXcon = DTExportaciones.FiltroPrimeroValor("IMMEXcon");
|
||||||
|
|
||||||
decimal IncFletes = 0.00m;
|
decimal IncFletes = 0.00m;
|
||||||
@@ -1086,6 +1090,18 @@ public partial class Export_ExpDetalle : ClsPaginas
|
|||||||
decimal TotalInc = 0.00m;
|
decimal TotalInc = 0.00m;
|
||||||
decimal TotalDec = 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 DescContenedor = DTExportaciones.FiltroPrimeroValor("DescripcionContenedor");
|
||||||
string ContenedorPlaca = DTExportaciones.FiltroPrimeroValor("ContenedorPlaca");
|
string ContenedorPlaca = DTExportaciones.FiltroPrimeroValor("ContenedorPlaca");
|
||||||
string Proveedor = DTExportaciones.FiltroPrimeroValor("Proveedor");
|
string Proveedor = DTExportaciones.FiltroPrimeroValor("Proveedor");
|
||||||
@@ -1105,9 +1121,12 @@ public partial class Export_ExpDetalle : ClsPaginas
|
|||||||
para.Add(new ReportParameter("ClienteExportador", ClienteExportador));
|
para.Add(new ReportParameter("ClienteExportador", ClienteExportador));
|
||||||
para.Add(new ReportParameter("DirExportador", DirExportador));
|
para.Add(new ReportParameter("DirExportador", DirExportador));
|
||||||
para.Add(new ReportParameter("RFCExp", RFCExp));
|
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("ClienteImportador", ClienteImportador));
|
||||||
para.Add(new ReportParameter("DirImportador", DirImportador));
|
para.Add(new ReportParameter("DirImportador", DirImportador));
|
||||||
para.Add(new ReportParameter("RFCImp", RFCImp));
|
para.Add(new ReportParameter("RFCImp", RFCImp));
|
||||||
|
para.Add(new ReportParameter("PPSImp", PPSImp));
|
||||||
para.Add(new ReportParameter("IMMEXimp", IMMEXimp));
|
para.Add(new ReportParameter("IMMEXimp", IMMEXimp));
|
||||||
para.Add(new ReportParameter("NumFactura", NumFactura));
|
para.Add(new ReportParameter("NumFactura", NumFactura));
|
||||||
para.Add(new ReportParameter("ClaveSATPedimento", ClaveSATPedimento));
|
para.Add(new ReportParameter("ClaveSATPedimento", ClaveSATPedimento));
|
||||||
@@ -1121,6 +1140,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
|||||||
para.Add(new ReportParameter("ClienteConsignatario", ClienteConsignatario));
|
para.Add(new ReportParameter("ClienteConsignatario", ClienteConsignatario));
|
||||||
para.Add(new ReportParameter("DirConsignatario", DirConsignatario));
|
para.Add(new ReportParameter("DirConsignatario", DirConsignatario));
|
||||||
para.Add(new ReportParameter("RFCCon", RFCCon));
|
para.Add(new ReportParameter("RFCCon", RFCCon));
|
||||||
|
para.Add(new ReportParameter("PPSCon", PPSCon));
|
||||||
para.Add(new ReportParameter("IMMEXcon", IMMEXcon));
|
para.Add(new ReportParameter("IMMEXcon", IMMEXcon));
|
||||||
|
|
||||||
ClsExportaciones Gastos = new ClsExportaciones();
|
ClsExportaciones Gastos = new ClsExportaciones();
|
||||||
@@ -1158,6 +1178,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
|||||||
para.Add(new ReportParameter("DecOtros", DecOtros.ToString("#,###.####")));
|
para.Add(new ReportParameter("DecOtros", DecOtros.ToString("#,###.####")));
|
||||||
para.Add(new ReportParameter("TotalDec", TotalDec.ToString("#,###.####")));
|
para.Add(new ReportParameter("TotalDec", TotalDec.ToString("#,###.####")));
|
||||||
|
|
||||||
|
para.Add(new ReportParameter("Sellos", Sellos));
|
||||||
para.Add(new ReportParameter("DescContenedor", DescContenedor));
|
para.Add(new ReportParameter("DescContenedor", DescContenedor));
|
||||||
para.Add(new ReportParameter("ContenedorPlaca", ContenedorPlaca));
|
para.Add(new ReportParameter("ContenedorPlaca", ContenedorPlaca));
|
||||||
para.Add(new ReportParameter("Proveedor", Proveedor));
|
para.Add(new ReportParameter("Proveedor", Proveedor));
|
||||||
@@ -1190,6 +1211,18 @@ public partial class Export_ExpDetalle : ClsPaginas
|
|||||||
DTPartidas.Columns["ValorUnitarioMN"].DefaultValue = 0.0m;
|
DTPartidas.Columns["ValorUnitarioMN"].DefaultValue = 0.0m;
|
||||||
foreach (DataRow row in DTPartidas.Rows)
|
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"]);
|
decimal cantidad = Convert.ToDecimal(row["Cantidad"]);
|
||||||
if (cantidad > 0)
|
if (cantidad > 0)
|
||||||
{
|
{
|
||||||
@@ -1225,6 +1258,7 @@ public partial class Export_ExpDetalle : ClsPaginas
|
|||||||
lrds.Add(RDSBultos);
|
lrds.Add(RDSBultos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Partidas.Dispose();
|
||||||
|
|
||||||
string NombreArchivo;
|
string NombreArchivo;
|
||||||
string Formato;
|
string Formato;
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
|
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
|
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
|
||||||
|
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
|
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
@@ -32,7 +31,7 @@
|
|||||||
|
|
||||||
<div class="titlefiltros caption">
|
<div class="titlefiltros caption">
|
||||||
<div class="row" style="margin-left: 10px;">
|
<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">
|
<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 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>
|
</asp:DropDownList>
|
||||||
@@ -43,63 +42,61 @@
|
|||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label class="col-md-1 " style="width: 90px;">Fecha Inicial:</label>
|
<label class="col-md-1 " style="width: 90px;">Fecha Inicial:</label>
|
||||||
<div class="col-md-1" style="min-width: 115px">
|
<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;">
|
<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>
|
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Width="80px" MaxLength="10"></asp:TextBox>
|
||||||
<span class="input-group-btn ">
|
<span class="input-group-btn ">
|
||||||
<asp:LinkButton ID="imgCalendarioI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
<asp:LinkButton ID="imgCalendarioI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||||
</span>
|
</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>
|
</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>
|
<label class="col-md-1 " style="width: 80px;">Fecha Final:</label>
|
||||||
<div class="col-md-1" style="min-width: 115px">
|
<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;">
|
<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>
|
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Width="80px" MaxLength="10"></asp:TextBox>
|
||||||
<span class="input-group-btn ">
|
<span class="input-group-btn ">
|
||||||
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||||
</span>
|
</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>
|
</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>
|
||||||
</div>
|
</div>
|
||||||
<div class="portlet-body" style="display: none;">
|
<div class="portlet-body" style="display: none;">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<label class="col-md-1 " id="Label1" runat="server" >Chofer:</label>
|
<label class="col-md-1 " id="Label1" runat="server">Chofer:</label>
|
||||||
<div class="col-md-2" >
|
<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>
|
<asp:DropDownList ID="DdlChofer" runat="server" DataTextField="Chofer" DataValueField="CveChofer" CssClass="form-control input-sm select2me" Width="100%" CausesValidation="true"></asp:DropDownList>
|
||||||
</div>
|
</div>
|
||||||
<label class="col-md-1 " id="LblTipo" runat="server">Tipo:</label>
|
<label class="col-md-1 " id="LblTipo" runat="server">Tipo:</label>
|
||||||
<div class="col-md-2" >
|
<div class="col-md-2">
|
||||||
<asp:DropDownList ID="DdlTipo" runat="server" CssClass="form-control input-sm select2me" Width="100%" CausesValidation="true">
|
<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="-1" Text="Todos"></asp:ListItem>
|
||||||
<asp:ListItem Value="T" Text="Traspasos"></asp:ListItem>
|
<asp:ListItem Value="T" Text="Traspasos"></asp:ListItem>
|
||||||
<asp:ListItem Value="R" Text="Recolecciones"></asp:ListItem>
|
<asp:ListItem Value="R" Text="Recolecciones"></asp:ListItem>
|
||||||
<asp:ListItem Value="E" Text="Entregas"></asp:ListItem>
|
<asp:ListItem Value="E" Text="Entregas"></asp:ListItem>
|
||||||
<asp:ListItem Value="I" Text="Ingresos"></asp:ListItem>
|
<asp:ListItem Value="I" Text="Ingresos"></asp:ListItem>
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</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;" />
|
<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>
|
<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>
|
</div>
|
||||||
<asp:GridView ID="GVDatos" runat="server"
|
<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"
|
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"
|
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">
|
EmptyDataRowStyle-HorizontalAlign="Center" OnRowDataBound="GVDatos_RowDataBound">
|
||||||
<Columns>
|
<Columns>
|
||||||
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="Tipo">
|
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="Tipo">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:Label ID="LtTipo" runat="server" Text='<%# Eval("TipoDescripcion") %>'></asp:Label>
|
<asp:Label ID="LtTipo" runat="server" Text='<%# Eval("TipoDescripcion") %>'></asp:Label>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
<HeaderStyle HorizontalAlign="Left" />
|
<HeaderStyle HorizontalAlign="Left" />
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="CP">
|
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="CP">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:Literal ID="LtCP" runat="server" Text='<%# Eval("AplicaCP").ToString()=="True"?"Si":"No" %>'></asp:Literal>
|
<asp:Literal ID="LtCP" runat="server" Text='<%# Eval("AplicaCP").ToString()=="True"?"Si":"No" %>'></asp:Literal>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
<HeaderStyle HorizontalAlign="Left" />
|
<HeaderStyle HorizontalAlign="Left" />
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:BoundField DataField="SubProyecto" HeaderText="Sucursal">
|
<asp:BoundField DataField="SubProyecto" HeaderText="Sucursal"></asp:BoundField>
|
||||||
</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="FechaEntrega" HeaderText="Fecha Entrega" ItemStyle-Width="4%" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-HorizontalAlign="Center" >
|
<asp:BoundField DataField="SerieFolio" HeaderText="Folio"></asp:BoundField>
|
||||||
|
|
||||||
<ItemStyle HorizontalAlign="Center" Width="4%" />
|
<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>
|
||||||
<asp:BoundField DataField="FolioReferencia" HeaderText="Folio Ref" >
|
<asp:BoundField DataField="FolioReferencia" HeaderText="Folio Ref"></asp:BoundField>
|
||||||
</asp:BoundField>
|
<asp:TemplateField ItemStyle-Width="75px" HeaderStyle-HorizontalAlign="Left" HeaderText="Opciones">
|
||||||
<asp:TemplateField ItemStyle-Width="75px" HeaderStyle-HorizontalAlign="Left" HeaderText="Opciones">
|
|
||||||
<ItemTemplate>
|
<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="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="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: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: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="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>
|
</ItemTemplate>
|
||||||
<HeaderStyle HorizontalAlign="Left" />
|
<HeaderStyle HorizontalAlign="Left" />
|
||||||
<ItemStyle HorizontalAlign="Left" Width="75px" />
|
<ItemStyle HorizontalAlign="Left" Width="75px" />
|
||||||
</asp:TemplateField>
|
</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>
|
<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="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="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>
|
</ItemTemplate>
|
||||||
<HeaderStyle HorizontalAlign="Center" />
|
<HeaderStyle HorizontalAlign="Center" />
|
||||||
<ItemStyle HorizontalAlign="Left" Width="50px" />
|
<ItemStyle HorizontalAlign="Left" Width="50px" />
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="PDF">
|
<asp:TemplateField HeaderText="PDF">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:HyperLink ID="HplPDF" Target="_blank" runat="server" ><i class='fa fa-file-pdf-o'></i></asp:HyperLink>
|
<asp:HyperLink ID="HplPDF" Target="_blank" runat="server"><i class='fa fa-file-pdf-o'></i></asp:HyperLink>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
<ItemStyle HorizontalAlign="Center" Width="4%" />
|
<ItemStyle HorizontalAlign="Center" Width="4%" />
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="XML">
|
<asp:TemplateField HeaderText="XML">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:HyperLink ID="HplXML" Target="_blank" runat="server" ><i class='fa fa-file-code-o'></i></asp:HyperLink>
|
<asp:HyperLink ID="HplXML" Target="_blank" runat="server"><i class='fa fa-file-code-o'></i></asp:HyperLink>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
<ItemStyle HorizontalAlign="Center" Width="4%" />
|
<ItemStyle HorizontalAlign="Center" Width="4%" />
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
@@ -188,10 +178,10 @@
|
|||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="DivEditarEntrega" class="modal ADS fade" role="dialog">
|
|
||||||
|
<div id="DivEditarEntrega" class="modal ADS fade" role="dialog">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<asp:UpdatePanel ID="UpModalEditarentrega" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
<asp:UpdatePanel ID="UpModalEditarentrega" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
@@ -206,13 +196,13 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<label class="col-md-3">Chofer:</label>
|
<label class="col-md-3">Chofer:</label>
|
||||||
<div class="col-md-9">
|
<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>
|
<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>
|
<ajax:ValidatorCalloutExtender ID="VceRfvDdlModalChofer" runat="server" HighlightCssClass="vco" TargetControlID="rfvDdlModalChofer" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<label class="col-md-3">Unidad:</label>
|
<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>
|
<ContentTemplate>
|
||||||
|
|
||||||
<div class="row" runat="server" id="DVDireccionOrigen" visible="false">
|
<div class="row" runat="server" id="DVDireccionOrigen" visible="false">
|
||||||
@@ -272,7 +262,7 @@
|
|||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -310,15 +300,69 @@
|
|||||||
<asp:TextBox ID="TxtDistancia" runat="server" CssClass="form-control input-sm" Width="100%" Text="1"></asp:TextBox>
|
<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" />
|
<ajax:TextBoxWatermarkExtender ID="TBWEDistancia" runat="server" TargetControlID="TxtDistancia" WatermarkText="Distancia" WatermarkCssClass="watermarked" />
|
||||||
</div>
|
</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>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<asp:UpdatePanel runat="server">
|
<asp:UpdatePanel runat="server">
|
||||||
<ContentTemplate>
|
<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>
|
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
@@ -329,8 +373,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="divAddDireccionEnvio" class="modal ADS fade" role="dialog">
|
<div id="divAddDireccionEnvio" class="modal ADS fade" role="dialog">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<asp:UpdatePanel ID="UpModalDVDireccionEnvio" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
<asp:UpdatePanel ID="UpModalDVDireccionEnvio" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
@@ -338,12 +382,14 @@
|
|||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
</button>
|
</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>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<asp:UpdatePanel ID="UpBodyDireccion" UpdateMode="Conditional" runat="server">
|
<asp:UpdatePanel ID="UpBodyDireccion" UpdateMode="Conditional" runat="server">
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
|
|
||||||
<div class="form-group form-md-line-input input-iconright">
|
<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: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>
|
<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>
|
||||||
|
|
||||||
<div class="row ">
|
<div class="row ">
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
|
|
||||||
<div class="form-group form-md-line-input input-iconright">
|
<div class="form-group form-md-line-input input-iconright">
|
||||||
@@ -438,11 +484,11 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div style="display: none">
|
<div style="display: none">
|
||||||
@@ -465,12 +511,39 @@
|
|||||||
</div>
|
</div>
|
||||||
</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>
|
||||||
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Extensiones;
|
using Extensiones;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.IO;
|
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");
|
DdlEstatus.SelectedValueExist("1");
|
||||||
|
|
||||||
}
|
}
|
||||||
protected void InicializaFechas()
|
protected void InicializaFechas()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -345,7 +361,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
|||||||
{
|
{
|
||||||
ClsGenerales ObjGeneral = new ClsGenerales();
|
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;
|
DTDatos = ObjGeneral.DtResultados;
|
||||||
GVDatos.DataSource = DTDatos;
|
GVDatos.DataSource = DTDatos;
|
||||||
@@ -371,7 +387,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
|||||||
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
||||||
|
|
||||||
CveEntregaAlmacen = GvRow.DataKey("CveEntregaAlmacen").ToEntero();
|
CveEntregaAlmacen = GvRow.DataKey("CveEntregaAlmacen").ToEntero();
|
||||||
CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
|
CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
|
||||||
|
|
||||||
DdlModalCamion.SelectedValueExist(GvRow.DataKey("CveCamion"));
|
DdlModalCamion.SelectedValueExist(GvRow.DataKey("CveCamion"));
|
||||||
DdlModalChofer.SelectedValueExist(GvRow.DataKey("CveChofer"));
|
DdlModalChofer.SelectedValueExist(GvRow.DataKey("CveChofer"));
|
||||||
@@ -411,12 +427,54 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
|||||||
DVDireccionDestino.Visible = true;
|
DVDireccionDestino.Visible = true;
|
||||||
LnkDireccionDestino.Text = GvRow.DataKey("Direccion") + " <i class='fa fa-search' aria-hidden='true'></i>";
|
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();
|
UpModalEditarentrega.Update();
|
||||||
RegistraScript("$('#DivEditarEntrega').modal({ backdrop: 'static', keyboard: false });");
|
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)
|
private void ModalActualizaDirecciones(int CveTimbre)
|
||||||
{
|
{
|
||||||
ClsGenerales ObjGeneral = new ClsGenerales();
|
ClsGenerales ObjGeneral = new ClsGenerales();
|
||||||
@@ -508,70 +566,198 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
|||||||
|
|
||||||
protected void LnkCancelaTimbre_Click(object sender, EventArgs e)
|
protected void LnkCancelaTimbre_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
this.DatosTimbre = "";
|
||||||
|
|
||||||
bool ProcesoOK = false;
|
|
||||||
LinkButton LnkCancelarFolioFiscal = (LinkButton)sender;
|
LinkButton LnkCancelarFolioFiscal = (LinkButton)sender;
|
||||||
GridViewRow GvRow = (GridViewRow)LnkCancelarFolioFiscal.BindingContainer;
|
GridViewRow GvRow = (GridViewRow)LnkCancelarFolioFiscal.BindingContainer;
|
||||||
|
|
||||||
int CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
|
int CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
|
||||||
string FolioFiscalCancelar = GvRow.DataKey("FolioFiscal").ToString();
|
string FolioFiscalCancelar = GvRow.DataKey("FolioFiscal");
|
||||||
string RFCReceptor = GvRow.DataKey("RFCReceptor").ToString();
|
string RFCReceptor = GvRow.DataKey("RFCReceptor");
|
||||||
string RFCEmisor = GvRow.DataKey("RFCEmisor").ToString();
|
string RFCEmisor = GvRow.DataKey("RFCEmisor").ToString();
|
||||||
int CvePACCancelacion = GvRow.DataKey("CvePAC").ToEntero();
|
int CvePACCancelacion = GvRow.DataKey("CvePAC").ToEntero();
|
||||||
int CveSubProyecto = GvRow.DataKey("CveSubProyecto").ToEntero();
|
int CveSubProyecto = GvRow.DataKey("CveSubProyecto").ToEntero();
|
||||||
int CveEntregaAlmacen = GvRow.DataKey("CveEntregaAlmacen").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();
|
Timbrado ObjCancelacion = new Timbrado();
|
||||||
ClsGenerales ObjGenerales = new ClsGenerales();
|
ClsGenerales ObjGenerales = new ClsGenerales();
|
||||||
ObjGenerales.IniciaTransacSQL();
|
ObjGenerales.IniciaTransacSQL();
|
||||||
|
|
||||||
if (EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptor))
|
StringBuilder sbMsg = new StringBuilder();
|
||||||
{
|
|
||||||
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);
|
|
||||||
|
|
||||||
if (Resp.Verificado)
|
try
|
||||||
|
{
|
||||||
|
if (EsProduccion)
|
||||||
{
|
{
|
||||||
|
if (EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptor))
|
||||||
if (ObjGenerales.CancelarTimbreTimbrado(CveTimbre, NowADS(), CvePACCancelacion, ObjCancelacion.CancelacionAcuse, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
|
|
||||||
{
|
{
|
||||||
//regenero el timbre
|
AplicarCancelacion(ref ProcesoOK, ref sbMsg, ref ObjGenerales, ref CveTimbre, SerieFolio, CveEntregaAlmacen, RegenerarTimbre, CvePACCancelacion, "", CveSubProyecto, TimbreTipoDocto, FolioReferencia);
|
||||||
if (TimbreTipoDocto == "Tra")
|
}
|
||||||
|
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)
|
if (ProcesoOK)
|
||||||
{
|
{
|
||||||
ObjGenerales.Commit();
|
ObjGenerales.Commit();
|
||||||
Alert("El complemento se cancelo correctamente.");
|
Alert(sbMsg.ToString());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ObjGenerales.RollBack();
|
ObjGenerales.RollBack();
|
||||||
Alert("Se presento un error al cancelar el Folio Fiscal", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
Alert(sbMsg.ToString(), ModExtensiones.TipoMensaje.MsgError);
|
||||||
}
|
}
|
||||||
ObjGenerales.Dispose();
|
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)
|
public bool EstatusSATCancelado(string FolioFiscal, string RFCDe, string RFCReceptor)
|
||||||
{
|
{
|
||||||
bool respuesta = false;
|
bool respuesta = false;
|
||||||
@@ -598,7 +784,6 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
|||||||
|
|
||||||
protected void BtnModalEditarentrega_Click(object sender, EventArgs e)
|
protected void BtnModalEditarentrega_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
bool ProcesoOK = true;
|
bool ProcesoOK = true;
|
||||||
|
|
||||||
ClsGenerales ObjGral = new ClsGenerales();
|
ClsGenerales ObjGral = new ClsGenerales();
|
||||||
@@ -634,6 +819,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
|||||||
LinkButton LnkEditar = e.Row.FCLinkButton("LnkEditar");
|
LinkButton LnkEditar = e.Row.FCLinkButton("LnkEditar");
|
||||||
LinkButton LnkTimbrar = e.Row.FCLinkButton("LnkTimbrar");
|
LinkButton LnkTimbrar = e.Row.FCLinkButton("LnkTimbrar");
|
||||||
LinkButton LnkCancelaTimbre = e.Row.FCLinkButton("LnkCancelaTimbre");
|
LinkButton LnkCancelaTimbre = e.Row.FCLinkButton("LnkCancelaTimbre");
|
||||||
|
//LinkButton LnkReactivarTimbre = e.Row.FCLinkButton("LnkReactivarTimbre");
|
||||||
|
|
||||||
LnkEditar.Visible = false;
|
LnkEditar.Visible = false;
|
||||||
LnkTimbrar.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");
|
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)
|
if (e.Row.DataKey("Estatus").ToEntero() == 1)
|
||||||
{
|
{
|
||||||
LnkCancelaTimbre.Visible = UsuarioActual.TienePermisoProceso(338);
|
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)
|
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")));
|
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.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")));
|
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
|
else
|
||||||
@@ -984,7 +1175,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
|||||||
DdlDirClienteLocalidad.Items.Clear();
|
DdlDirClienteLocalidad.Items.Clear();
|
||||||
if (DdlDirClienteEstado.SelectedValue.ToEntero() > 0)
|
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();
|
DdlDirClienteLocalidad.DataBind();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1039,7 +1230,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
|||||||
|
|
||||||
public void EditDireccionOrigen_Click(object sender, EventArgs e)
|
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();
|
//int CveDireccionOrigen = GvRow.DataKey("CveDireccionOrigen").ToEntero();
|
||||||
CveDireccionEditar = CveDireccionOrigen;
|
CveDireccionEditar = CveDireccionOrigen;
|
||||||
//CveCliente = GvRow.DataKey("CveCliente").ToEntero();
|
//CveCliente = GvRow.DataKey("CveCliente").ToEntero();
|
||||||
@@ -1139,6 +1330,92 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
|
|||||||
RegistraScript("$('#divAddDireccionEnvio').modal('show');");
|
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>
|
<ajax:ValidatorCalloutExtender ID="VCERfvTxtModalLayoutBancosFecha" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtModalLayoutBancosFecha" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||||
</div>
|
</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>
|
<div class="form-group form-md-line-input input-iconright" runat="server" visible="false" >
|
||||||
<ajax:CalendarExtender ID="CalendarExtender5" runat="server" TargetControlID="TxtModalLayoutBancosFecha" PopupButtonID="ImgFechaBaja" PopupPosition="BottomRight" BehaviorID="_content_CEFechaBaja"></ajax:CalendarExtender>
|
<asp:TextBox ID="TxtModalLayoutBancosFecha" runat="server" CausesValidation="True" CssClass="form-control"></asp:TextBox>
|
||||||
<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>
|
<asp:RequiredFieldValidator ID="RfTxtModalLayoutBancosFecha" runat="server" ControlToValidate="TxtModalLayoutBancosFecha" CssClass="help-block errorimput" Display="none"
|
||||||
</div>--%>
|
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 />
|
<br />
|
||||||
@@ -5012,6 +5045,11 @@
|
|||||||
<asp:PostBackTrigger ControlID="BtnEfectivaleXLS" />
|
<asp:PostBackTrigger ControlID="BtnEfectivaleXLS" />
|
||||||
</Triggers>
|
</Triggers>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
|
|
||||||
|
<div style="display:none!important">
|
||||||
|
<asp:FileUpload ID="FUTxt" runat="server" onchange="$('#FUTxtt').text(this.value);" ClientIDMode="Static" />
|
||||||
|
</div>
|
||||||
|
|
||||||
</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;
|
||||||
|
using iTextSharp.text.pdf.parser;
|
||||||
|
using Modelos;
|
||||||
|
using Profact.TimbraCFDI40;
|
||||||
|
using StackExchange.Redis;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Activities.Expressions;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Web;
|
||||||
using System.Web.UI;
|
using System.Web.UI;
|
||||||
using System.Web.UI.WebControls;
|
using System.Web.UI.WebControls;
|
||||||
using static Extensiones.ModExtensiones;
|
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
|
public partial class Nomina_Nomina2 : ClsPaginas
|
||||||
{
|
{
|
||||||
@@ -10742,7 +10744,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
|||||||
SinSelccion,
|
SinSelccion,
|
||||||
Bancomer,
|
Bancomer,
|
||||||
Banorte,
|
Banorte,
|
||||||
Banamex
|
Banamex,
|
||||||
|
ScotiaBank
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -10786,6 +10789,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
|||||||
CargaCuentas();
|
CargaCuentas();
|
||||||
|
|
||||||
DivModalLayoutBancosFecha.Visible = false;
|
DivModalLayoutBancosFecha.Visible = false;
|
||||||
|
DVCuentasScotia.Visible = false;
|
||||||
TxtModalLayoutBancosFecha.Text = "";
|
TxtModalLayoutBancosFecha.Text = "";
|
||||||
|
|
||||||
RegistraScript("$('#ModalLayoutBancos').modal('show');");
|
RegistraScript("$('#ModalLayoutBancos').modal('show');");
|
||||||
@@ -10798,7 +10802,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
|||||||
DdlCuenta.Items.Clear();
|
DdlCuenta.Items.Clear();
|
||||||
DataTable DTCuentas = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta <> 1 AND UsaLayout = 'True' AND LEN(ConvenioPagoElectronico) > 0 ");
|
DataTable DTCuentas = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta <> 1 AND UsaLayout = 'True' AND LEN(ConvenioPagoElectronico) > 0 ");
|
||||||
DTCuentas.CaseSensitive = false;
|
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.DataBind();
|
||||||
DdlCuenta.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
DdlCuenta.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
||||||
DdlCuenta.SelectedValueExist("-1");
|
DdlCuenta.SelectedValueExist("-1");
|
||||||
@@ -10808,6 +10812,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
|||||||
{
|
{
|
||||||
ConvenioPagoElectronico = string.Empty;
|
ConvenioPagoElectronico = string.Empty;
|
||||||
DivModalLayoutBancosFecha.Visible = false;
|
DivModalLayoutBancosFecha.Visible = false;
|
||||||
|
DVCuentasScotia.Visible = false;
|
||||||
|
BtnGenerarAlta.Enabled = false;
|
||||||
|
|
||||||
if (DdlCuenta.SelectedValue.ToEntero() > 0)
|
if (DdlCuenta.SelectedValue.ToEntero() > 0)
|
||||||
{
|
{
|
||||||
@@ -10827,6 +10833,12 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
|||||||
Banco = Bancos.Banamex;
|
Banco = Bancos.Banamex;
|
||||||
DivModalLayoutBancosFecha.Visible = true;
|
DivModalLayoutBancosFecha.Visible = true;
|
||||||
}
|
}
|
||||||
|
else if (DdlCuenta.SelectedItem.Text.ToUpper().Contains("SCOTIA"))
|
||||||
|
{
|
||||||
|
DivModalLayoutBancosFecha.Visible = false;
|
||||||
|
Banco = Bancos.ScotiaBank;
|
||||||
|
PreparaLayoutBancosScotiaBank();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ConvenioPagoElectronico = string.Empty;
|
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)
|
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)
|
protected void BtnModalBancosProcesar_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
BtnModalBancosProcesar.Enabled = true;
|
||||||
|
|
||||||
if (Banco == Bancos.Bancomer)
|
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)
|
private void CrearLayoutNominaBancomer(DataTable DTNomina)
|
||||||
{
|
{
|
||||||
@@ -12489,4 +12868,6 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
|||||||
{
|
{
|
||||||
CargaMovtoPermanente();
|
CargaMovtoPermanente();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3976,6 +3976,8 @@ Partial Class OC_OC
|
|||||||
Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Handles BtnCancelar.Click
|
Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Handles BtnCancelar.Click
|
||||||
Dim ObjEventos As New ClsOIEventos
|
Dim ObjEventos As New ClsOIEventos
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
If CveEstatusFinalError > 0 Then
|
If CveEstatusFinalError > 0 Then
|
||||||
Dim objOrdenCompra As New ClsOC
|
Dim objOrdenCompra As New ClsOC
|
||||||
objOrdenCompra.IniciaTransacSQL()
|
objOrdenCompra.IniciaTransacSQL()
|
||||||
@@ -9499,6 +9501,10 @@ Partial Class OC_OC
|
|||||||
|
|
||||||
Dim Respuesta As Boolean = True
|
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
|
If UsuarioActual.Empresa.Funcionalidad(532).Contiene("2") Then
|
||||||
|
|
||||||
Dim CveMonedaPresupuesto As Integer = DdlMoneda.SelectedValue.ToEntero
|
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)
|
Dim dominio As String = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority)
|
||||||
|
|
||||||
If Not Page.IsPostBack Then
|
If Not Page.IsPostBack Then
|
||||||
GlobalDTRegimenesFiscales = Nothing
|
GlobalDTRegimenesFiscales = Nothing
|
||||||
|
|
||||||
|
GlobalDTProveedoresCuentas(UsuarioActual.CveEmpresa, -1) = Nothing
|
||||||
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
'If Not dominio.Contains("gps.adsistemas") Then
|
'If Not dominio.Contains("gps.adsistemas") Then
|
||||||
' dominio = dominio.Replace("http", "https")
|
' dominio = dominio.Replace("http", "https")
|
||||||
@@ -712,6 +716,8 @@ Partial Class Sistemas_CatSesiones
|
|||||||
|
|
||||||
Private Sub CargaTipoVenta()
|
Private Sub CargaTipoVenta()
|
||||||
GlobalDTTipoVenta(UsuarioActual.CveEmpresa) = Nothing
|
GlobalDTTipoVenta(UsuarioActual.CveEmpresa) = Nothing
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -37655,7 +37655,7 @@ Partial Class Ventas
|
|||||||
|
|
||||||
Try
|
Try
|
||||||
Using wc As New HttpClient()
|
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))
|
Dim Parametros As New List(Of KeyValuePair(Of String, String))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user