diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb
index 60e55b897..b47b3d317 100644
--- a/App_Code/ClsGenerales.vb
+++ b/App_Code/ClsGenerales.vb
@@ -1496,6 +1496,34 @@ Public Class ClsGenerales
Return Retorno
End Function
+ Public Function UpdateCuentasDepositosEstatusPagoElectronicoGrupos(CveCuentaDeposito As Integer, EstatusPagoElectronicoGrupos As Boolean) As Boolean
+
+ Dim Retorno As Boolean = False
+
+ DataAdapter("PA_Gral_CuentasDepositosUpdateEstatusPagoElectronicoGrupos")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveCuentaDeposito", SqlDbType.VarChar).Value = CveCuentaDeposito
+ .Add("@EstatusPagoElectronicoGrupos", SqlDbType.Bit).Value = EstatusPagoElectronicoGrupos
+ End With
+
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch Ex1 As SqlException
+ If Ex1.Message.Contains("Número: 2627;") Then
+ Alert("Ya existe un registro con el mismo nombre", TipoMensaje.MsgAdvertencia)
+ Else
+ Me.OnError("Ocurrió un error al guardar los cambios", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+ End If
+ Catch ex As Exception
+ OnError("Ocurrió un error al guardar los cambios.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
+
#End Region
#Region "T I P O - C A M B I O"
diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb
index 4bc6ba35a..4541aa752 100644
--- a/App_Code/ClsInventarios.vb
+++ b/App_Code/ClsInventarios.vb
@@ -1817,7 +1817,7 @@ Public Class ClsInventarios
CveAlmacen As Integer, Optional CveSeccionAlmacen As Integer = -1, Optional CveTipoAlmacen As Integer = -1, Optional CveSubProyecto As Integer = -1,
Optional FechaMovto As String = "-1", Optional SerieLote As String = "-1", Optional CveVendedor As Integer = -1, Optional CveCliente As Integer = -1,
Optional ExcluyeAdelantado As Integer = -1, Optional PendientePorSurtir As Integer = -1, Optional Lote As String = "-1", Optional Batch As String = "-1",
- Optional ExcluyeApartados As Integer = 1, Optional RestringirAlmacenes As Integer = -1) As Boolean
+ Optional ExcluyeApartados As Integer = 1, Optional RestringirAlmacenes As Integer = -1, Optional Caducidad As Date = MinFecha) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Inv_ExistenciasGet")
@@ -1839,6 +1839,7 @@ Public Class ClsInventarios
.Add("@PendientePorSurtir", SqlDbType.Int).Value = PendientePorSurtir
.Add("@ExcluyeApartados", SqlDbType.Int).Value = ExcluyeApartados
.Add("@RestringirAlmacenes", SqlDbType.Int).Value = RestringirAlmacenes
+ .Add("@Caducidad", SqlDbType.Date).Value = Caducidad
.Add("@Existencia", SqlDbType.Money).Direction = ParameterDirection.Output
End With
Try
@@ -4922,6 +4923,28 @@ Public Class ClsInventarios
Return Retorno
End Function
+
+#Region "SUGERENCIAS SALIDA DE ALMACEN"
+
+ Public Function GetSugerenciasSalidaAlmacen(CveVenta As Integer, CveAlmacen As Integer, CveEmpresa As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Inv_SugerenciasSalidasGet")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener las sugerencias para la salida de almacen.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+ End Try
+ Return Retorno
+ End Function
+
+#End Region
+
#Region " IDisposable Support "
' IDisposable
Protected Overridable Sub Dispose(ByVal disposing As Boolean)
diff --git a/Bancos/PagoElectronicoGrupos.aspx b/Bancos/PagoElectronicoGrupos.aspx
index 521e5853c..e8c9384e9 100644
--- a/Bancos/PagoElectronicoGrupos.aspx
+++ b/Bancos/PagoElectronicoGrupos.aspx
@@ -166,7 +166,7 @@
-
+ <%--
@@ -216,7 +216,7 @@
-
+
--%>
diff --git a/Bancos/PagoElectronicoGrupos.aspx.vb b/Bancos/PagoElectronicoGrupos.aspx.vb
index 0e89dec64..40f10f8f6 100644
--- a/Bancos/PagoElectronicoGrupos.aspx.vb
+++ b/Bancos/PagoElectronicoGrupos.aspx.vb
@@ -374,24 +374,25 @@ Partial Class Bancos_PagoElectronicoGrupos
fs.Close()
Return True
- End Function
- Private Function GuardaTXT() As Boolean
- Dim Retorno = True
- Try
- Dim Ruta = ""
- Dim FileName As String = Path.GetFileName(FUTxt.PostedFile.FileName)
- NombreArchivo = FileName
- Dim Extension As String = Path.GetExtension(FUTxt.PostedFile.FileName)
- Dim FolderPath As String = String.Format("{0}Empresas\", Request.ApplicationPath)
- Dim FilePath As String = Server.MapPath(FolderPath + FileName)
- FUTxt.SaveAs(FilePath)
- NombreArchivo = FilePath
- Catch ex As Exception
- Retorno = False
- End Try
-
- Return Retorno
End Function
+
+ 'Private Function GuardaTXT() As Boolean
+ ' Dim Retorno = True
+ ' Try
+ ' Dim Ruta = ""
+ ' Dim FileName As String = Path.GetFileName(FUTxt.PostedFile.FileName)
+ ' NombreArchivo = FileName
+ ' Dim Extension As String = Path.GetExtension(FUTxt.PostedFile.FileName)
+ ' Dim FolderPath As String = String.Format("{0}Empresas\", Request.ApplicationPath)
+ ' Dim FilePath As String = Server.MapPath(FolderPath + FileName)
+ ' FUTxt.SaveAs(FilePath)
+ ' NombreArchivo = FilePath
+ ' Catch ex As Exception
+ ' Retorno = False
+ ' End Try
+
+ ' Return Retorno
+ 'End Function
#End Region
#Region " TAB PRINCIPAL "
@@ -544,9 +545,11 @@ Partial Class Bancos_PagoElectronicoGrupos
DtCuentasPendientesTemp.CaseSensitive = False
- Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre like '%BBVA%' OR BancoNombre like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"})
- Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre not like '%BBVA%' AND BancoNombre not like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"})
- 'CLABEDestino
+ Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre like '%BBVA%' OR BancoNombre like '%BANCOMER%' ) ", "", {"CveCuentaDeposito", "BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"})
+ Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre not like '%BBVA%' AND BancoNombre not like '%BANCOMER%' ) ", "", {"CveCuentaDeposito", "BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"})
+
+
+ Dim ObjGrales As New ClsGenerales
If DtCuentasPendientesBancomer.Rows.Count > 0 Then
For Each dRow As DataRow In DtCuentasPendientesBancomer.Rows
@@ -591,6 +594,7 @@ Partial Class Bancos_PagoElectronicoGrupos
If Not ErrorLineaBancomer Then
RegistrosAltaBancomer.Append(SBTmpBancomer.ToString)
+ ObjGrales.UpdateCuentasDepositosEstatusPagoElectronicoGrupos(dRow("CveCuentaDeposito").ToString.ToEntero, True)
Else
SBErroresBancomer.Append(" ")
SBErrores.AppendLine(SBErroresBancomer.ToString)
@@ -667,6 +671,7 @@ Partial Class Bancos_PagoElectronicoGrupos
If Not ErrorLineaInterbancaria Then
RegistrosAltaInterbancario.Append(SBTmpInterbancarias.ToString)
+ ObjGrales.UpdateCuentasDepositosEstatusPagoElectronicoGrupos(dRow("CveCuentaDeposito").ToString.ToEntero, True)
Else
SBErroresInterBancario.Append(" ")
SBErrores.AppendLine(SBErroresInterBancario.ToString)
@@ -683,6 +688,7 @@ Partial Class Bancos_PagoElectronicoGrupos
End If
+ ObjGrales.Dispose()
Dim Mensaje As New StringBuilder
@@ -711,6 +717,7 @@ Partial Class Bancos_PagoElectronicoGrupos
End If
+ CargaDatos()
End Sub
@@ -1327,240 +1334,240 @@ Partial Class Bancos_PagoElectronicoGrupos
DtAlta.Columns.Add("MensajeAdicional", GetType(String))
DtAlta.Columns.Add("Moneda", GetType(String))
- End Sub
-
-
- Protected Sub BtnCargarAlta_Click(sender As Object, e As EventArgs)
- Dim ErrorArchivo = False
-
- If FUTxt.HasFile Then
- If Not GuardaTXT() Then
- Alert("Ocurrio un error al cargar el archivo", TipoMensaje.MsgError)
- Exit Sub
- End If
- Else
- Alert("No tiene ningun archivo", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
-
-
- 'LEE TXT
- Dim Texto As String
-
- Dim sr As New System.IO.StreamReader(NombreArchivo)
- Texto = sr.ReadToEnd()
- sr.Close()
-
- Dim TextoArreglo() = Texto.Split(CChar(vbCrLf))
-
- 'Alert(TextoArreglo.Length.ToString)
-
- 'LEE LINEA POR LINEA
- Dim RespuestaHeader = "", RespuestaDetalle = "", RespuestaTrailer = "", CveCuentasDeposito = ""
- CreaDtAlta()
- Dim ObjGrales As New ClsGenerales
- Dim Row As DataRow = Nothing
- Dim TipoCuentaDeposito = ""
-
- For i = 0 To TextoArreglo.Length - 1 Step 1
- 'Valida que el primer renglon sea el HEADER
- If i = 0 Then
- If TextoArreglo(i).Substring(0, 1) <> "H" Then
- ErrorArchivo = True
- Exit For
- Else
- RespuestaHeader = TextoArreglo(i).Substring(50, 2)
- End If
- Else
- 'LEE DETALLE
- If TextoArreglo(i).Length > 1 Then
- If TextoArreglo(i).Substring(1, 1) = "D" Then
-
- 'If i > 1 Then
- ' RespuestaDetalle += vbCrLf
- 'End If
-
- 'RespuestaDetalle += String.Format("
{0}
{1}
", If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim), (TextoArreglo(i).Substring(599, 30)))
-
- ''Guardo CveCuentaDeposito cuando la operacion salio exitosa para actualizar en la DB
- If TextoArreglo(i).Substring(597, 2) = "00" Or TextoArreglo(i).Substring(597, 2) = "34" Then
- CveCuentasDeposito += If(CveCuentasDeposito <> "", ",", "")
- CveCuentasDeposito += TextoArreglo(i).Substring(3, 30).ToEntero.ToString
- End If
-
-
- ''LLENA DT PARA REPORTE
- Row = DtAlta.NewRow()
-
- Row("Proveedor") = If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim)
-
- 'BANCO
- If ObjGrales.GetCuentasDepositos(CveCuentaDeposito:=TextoArreglo(i).Substring(3, 30).ToEntero) Then
- If ObjGrales.DtResultados.Rows.Count = 1 Then
- Row("Banco") = ObjGrales.DtResultados.Rows(0)("BancoNombre").ToString
- Else
- ErrorArchivo = True
- Exit For
- End If
- Else
- ErrorArchivo = True
- Exit For
- End If
-
- 'CUENTA
- If TextoArreglo(i).Substring(41, 2).Trim <> "" Then
- Row("Cuenta") = String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c))
- ElseIf TextoArreglo(i).Substring(81, 2).Trim <> "" Then
- Row("Cuenta") = String.Format("{0}", TextoArreglo(i).Substring(83, 35).TrimStart("0"c))
- Row("TipoCuenta") = "CLABE"
- Else
- ErrorArchivo = True
- Exit For
- End If
-
- 'TIPO CUENTA
- If Row("TipoCuenta").ToString = "" Then
- If String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 8 Then
- Row("TipoCuenta") = "CIE"
- ElseIf String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 10 Or String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 9 Then
- Row("TipoCuenta") = "Cuenta"
- ElseIf String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 18 Then
- Row("TipoCuenta") = "CLABE"
- End If
- End If
-
- Row("Estatus") = TextoArreglo(i).Substring(599, 30)
-
- DtAlta.Rows.Add(Row)
-
- ''LLENA PARA ALERT
- 'If i > 1 Then
- ' RespuestaDetalle += vbCrLf
- 'End If
-
- 'RespuestaDetalle += String.Format("
{0}
{1}
", If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim), (TextoArreglo(i).Substring(599, 30)))
-
-
- 'LEE TRAILER
- ElseIf TextoArreglo(i).Substring(1, 1) = "T" Then
- RespuestaTrailer = TextoArreglo(i).Substring(32, 10)
- RespuestaTrailer += vbCrLf
- RespuestaTrailer += TextoArreglo(i).Substring(42, 10)
- RespuestaTrailer += vbCrLf
- RespuestaTrailer += TextoArreglo(i).Substring(52, 10)
- Exit For
- Else
- ErrorArchivo = True
- Exit For
- End If
- End If
- End If
- Next
- ObjGrales.Dispose()
-
-
- Dim Respuesta As New StringBuilder
- 'LEE ARCHIVO
- If Not ErrorArchivo Then
- 'TRADUCE CODIGO RESPUESTA HEADER
- If RespuestaHeader = "01" Then
- RespuestaHeader = "ACEPTADO TOTAL"
- ElseIf RespuestaHeader = "02" Then
- RespuestaHeader = "ACEPTADO PARCIAL"
- ElseIf RespuestaHeader = "03" Then
- RespuestaHeader = "RECHAZADO"
- End If
-
- 'DIVIDE DETALLE
- Dim Detalle() = RespuestaDetalle.Split(CChar(vbCrLf))
-
- 'DIVIDE TRAILER
- Dim Trailer() = RespuestaTrailer.Split(CChar(vbCrLf))
-
- 'ARMADO DE RESPUESTA
- Respuesta.AppendFormat(" Resumen de respuesta: {0} ", RespuestaHeader)
- Respuesta.AppendFormat("Numero de movimientos: {0}
", DtAlta.Rows.Count)
- Respuesta.Append("------------------------------ Detalle de los movimientos ------------------------------ ")
-
- Respuesta.Append("
#
Proveedor
Banco
Tipo Cuenta
Cuenta
Estatus
")
- 'For i = 0 To Detalle.Length - 1
- ' Respuesta.AppendFormat("
{0}
{1}
", i + 1, Detalle(i).Trim)
- 'Next
- Dim i = 1
- Dim Style = ""
- Dim TotalExitos = 0, TotalFracasos = 0
- For Each dr As DataRow In DtAlta.Rows
-
- If dr("estatus").ToString.Trim.Contiene("OPERACION EXITOSA", "ALTA TERCERO EXITOSO") Then
- Style = ""
- TotalExitos += 1
- Else
- Style = "style=""background-color:#FF5F5F;"" "
- TotalFracasos += 1
- End If
-
- Respuesta.AppendFormat("
{0}
{1}
{2}
{3}
{4}
{5}
", i, dr("Proveedor"), dr("Banco"), dr("TipoCuenta"), dr("Cuenta"), dr("estatus"), Style)
- i += 1
- Next
-
- Respuesta.Append("
------------------------------------------------------------------------------------- ")
-
- Respuesta.AppendFormat("Total de movimientos exitosos: {0} ", TotalExitos)
- Respuesta.AppendFormat("Total de movimientos NO exitosos: {0} ", TotalFracasos)
-
- 'LEE DESDE EL LAYOUT
- 'Respuesta.AppendFormat("Total de altas rechazadas: {0} ", Trailer(0).ToString.ToEntero)
- 'Respuesta.AppendFormat("Total de bajas rechazadas: {0} ", Trailer(1).ToString.ToEntero)
- 'Respuesta.AppendFormat("Total de cambios rechazados: {0} ", Trailer(2).ToString.ToEntero)
-
- End If
-
- If Not ErrorArchivo Then
-
- If CveCuentasDeposito <> "" Then
- Dim ObjIE As New ClsBancos
- Dim ErrorDB = False
- ObjIE.IniciaTransacSQL()
- Dim ArrayCuentasDeposito() = CveCuentasDeposito.Split(","c)
-
- For index = 0 To ArrayCuentasDeposito.Length - 1
- If Not ObjIE.UpdateCuentaDepositoPagoElectronico(ArrayCuentasDeposito(index).ToEntero) Then
- ErrorDB = True
- End If
- Next
-
- If Not ErrorDB Then
- ObjIE.Commit()
- Respuesta.Append("
NOTA: El archivo se analizo correctamente y se efectuaron todos los cambios en el sistema.")
- 'Respuesta.AppendFormat(" Descargar reporte", NombreArchivo)
- Respuesta.AppendFormat("
NOTA: El archivo se analizo correctamente pero ocurrio un problema al efectuar los cambios en el sistema. Por favor vuelta a intentar.")
- Alert(Respuesta.ToString, TipoMensaje.MsgError)
- End If
-
- ObjIE.Dispose()
- Else
- Respuesta.AppendFormat("
NOTA: El archivo se analizo correctamente pero ningun movimiento fue exitoso.")
- 'Respuesta.AppendFormat(" Descargar reporte", NombreArchivo)
- Respuesta.AppendFormat("
", NombreArchivo)
-
- Alert(Respuesta.ToString, TipoMensaje.MsgAdvertencia)
- End If
-
- Else
- Alert("Ocurrio un problema al leer el archivo. Por favor revise que el archivo sea el correcto e intente de nuevo.", TipoMensaje.MsgError)
- End If
-
- 'ELIMINA TXT
- My.Computer.FileSystem.DeleteFile(NombreArchivo)
-
- RecargaDatos()
-
End Sub
+
+
+ 'Protected Sub BtnCargarAlta_Click(sender As Object, e As EventArgs)
+ ' Dim ErrorArchivo = False
+
+ ' If FUTxt.HasFile Then
+ ' If Not GuardaTXT() Then
+ ' Alert("Ocurrio un error al cargar el archivo", TipoMensaje.MsgError)
+ ' Exit Sub
+ ' End If
+ ' Else
+ ' Alert("No tiene ningun archivo", TipoMensaje.MsgAdvertencia)
+ ' Exit Sub
+ ' End If
+
+
+ ' 'LEE TXT
+ ' Dim Texto As String
+
+ ' Dim sr As New System.IO.StreamReader(NombreArchivo)
+ ' Texto = sr.ReadToEnd()
+ ' sr.Close()
+
+ ' Dim TextoArreglo() = Texto.Split(CChar(vbCrLf))
+
+ ' 'Alert(TextoArreglo.Length.ToString)
+
+ ' 'LEE LINEA POR LINEA
+ ' Dim RespuestaHeader = "", RespuestaDetalle = "", RespuestaTrailer = "", CveCuentasDeposito = ""
+ ' CreaDtAlta()
+ ' Dim ObjGrales As New ClsGenerales
+ ' Dim Row As DataRow = Nothing
+ ' Dim TipoCuentaDeposito = ""
+
+ ' For i = 0 To TextoArreglo.Length - 1 Step 1
+ ' 'Valida que el primer renglon sea el HEADER
+ ' If i = 0 Then
+ ' If TextoArreglo(i).Substring(0, 1) <> "H" Then
+ ' ErrorArchivo = True
+ ' Exit For
+ ' Else
+ ' RespuestaHeader = TextoArreglo(i).Substring(50, 2)
+ ' End If
+ ' Else
+ ' 'LEE DETALLE
+ ' If TextoArreglo(i).Length > 1 Then
+ ' If TextoArreglo(i).Substring(1, 1) = "D" Then
+
+ ' 'If i > 1 Then
+ ' ' RespuestaDetalle += vbCrLf
+ ' 'End If
+
+ ' 'RespuestaDetalle += String.Format("
{0}
{1}
", If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim), (TextoArreglo(i).Substring(599, 30)))
+
+ ' ''Guardo CveCuentaDeposito cuando la operacion salio exitosa para actualizar en la DB
+ ' If TextoArreglo(i).Substring(597, 2) = "00" Or TextoArreglo(i).Substring(597, 2) = "34" Then
+ ' CveCuentasDeposito += If(CveCuentasDeposito <> "", ",", "")
+ ' CveCuentasDeposito += TextoArreglo(i).Substring(3, 30).ToEntero.ToString
+ ' End If
+
+
+ ' ''LLENA DT PARA REPORTE
+ ' Row = DtAlta.NewRow()
+
+ ' Row("Proveedor") = If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim)
+
+ ' 'BANCO
+ ' If ObjGrales.GetCuentasDepositos(CveCuentaDeposito:=TextoArreglo(i).Substring(3, 30).ToEntero) Then
+ ' If ObjGrales.DtResultados.Rows.Count = 1 Then
+ ' Row("Banco") = ObjGrales.DtResultados.Rows(0)("BancoNombre").ToString
+ ' Else
+ ' ErrorArchivo = True
+ ' Exit For
+ ' End If
+ ' Else
+ ' ErrorArchivo = True
+ ' Exit For
+ ' End If
+
+ ' 'CUENTA
+ ' If TextoArreglo(i).Substring(41, 2).Trim <> "" Then
+ ' Row("Cuenta") = String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c))
+ ' ElseIf TextoArreglo(i).Substring(81, 2).Trim <> "" Then
+ ' Row("Cuenta") = String.Format("{0}", TextoArreglo(i).Substring(83, 35).TrimStart("0"c))
+ ' Row("TipoCuenta") = "CLABE"
+ ' Else
+ ' ErrorArchivo = True
+ ' Exit For
+ ' End If
+
+ ' 'TIPO CUENTA
+ ' If Row("TipoCuenta").ToString = "" Then
+ ' If String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 8 Then
+ ' Row("TipoCuenta") = "CIE"
+ ' ElseIf String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 10 Or String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 9 Then
+ ' Row("TipoCuenta") = "Cuenta"
+ ' ElseIf String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 18 Then
+ ' Row("TipoCuenta") = "CLABE"
+ ' End If
+ ' End If
+
+ ' Row("Estatus") = TextoArreglo(i).Substring(599, 30)
+
+ ' DtAlta.Rows.Add(Row)
+
+ ' ''LLENA PARA ALERT
+ ' 'If i > 1 Then
+ ' ' RespuestaDetalle += vbCrLf
+ ' 'End If
+
+ ' 'RespuestaDetalle += String.Format("
{0}
{1}
", If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim), (TextoArreglo(i).Substring(599, 30)))
+
+
+ ' 'LEE TRAILER
+ ' ElseIf TextoArreglo(i).Substring(1, 1) = "T" Then
+ ' RespuestaTrailer = TextoArreglo(i).Substring(32, 10)
+ ' RespuestaTrailer += vbCrLf
+ ' RespuestaTrailer += TextoArreglo(i).Substring(42, 10)
+ ' RespuestaTrailer += vbCrLf
+ ' RespuestaTrailer += TextoArreglo(i).Substring(52, 10)
+ ' Exit For
+ ' Else
+ ' ErrorArchivo = True
+ ' Exit For
+ ' End If
+ ' End If
+ ' End If
+ ' Next
+ ' ObjGrales.Dispose()
+
+
+ ' Dim Respuesta As New StringBuilder
+ ' 'LEE ARCHIVO
+ ' If Not ErrorArchivo Then
+ ' 'TRADUCE CODIGO RESPUESTA HEADER
+ ' If RespuestaHeader = "01" Then
+ ' RespuestaHeader = "ACEPTADO TOTAL"
+ ' ElseIf RespuestaHeader = "02" Then
+ ' RespuestaHeader = "ACEPTADO PARCIAL"
+ ' ElseIf RespuestaHeader = "03" Then
+ ' RespuestaHeader = "RECHAZADO"
+ ' End If
+
+ ' 'DIVIDE DETALLE
+ ' Dim Detalle() = RespuestaDetalle.Split(CChar(vbCrLf))
+
+ ' 'DIVIDE TRAILER
+ ' Dim Trailer() = RespuestaTrailer.Split(CChar(vbCrLf))
+
+ ' 'ARMADO DE RESPUESTA
+ ' Respuesta.AppendFormat(" Resumen de respuesta: {0} ", RespuestaHeader)
+ ' Respuesta.AppendFormat("Numero de movimientos: {0}
", DtAlta.Rows.Count)
+ ' Respuesta.Append("------------------------------ Detalle de los movimientos ------------------------------ ")
+
+ ' Respuesta.Append("
#
Proveedor
Banco
Tipo Cuenta
Cuenta
Estatus
")
+ ' 'For i = 0 To Detalle.Length - 1
+ ' ' Respuesta.AppendFormat("
{0}
{1}
", i + 1, Detalle(i).Trim)
+ ' 'Next
+ ' Dim i = 1
+ ' Dim Style = ""
+ ' Dim TotalExitos = 0, TotalFracasos = 0
+ ' For Each dr As DataRow In DtAlta.Rows
+
+ ' If dr("estatus").ToString.Trim.Contiene("OPERACION EXITOSA", "ALTA TERCERO EXITOSO") Then
+ ' Style = ""
+ ' TotalExitos += 1
+ ' Else
+ ' Style = "style=""background-color:#FF5F5F;"" "
+ ' TotalFracasos += 1
+ ' End If
+
+ ' Respuesta.AppendFormat("
{0}
{1}
{2}
{3}
{4}
{5}
", i, dr("Proveedor"), dr("Banco"), dr("TipoCuenta"), dr("Cuenta"), dr("estatus"), Style)
+ ' i += 1
+ ' Next
+
+ ' Respuesta.Append("
------------------------------------------------------------------------------------- ")
+
+ ' Respuesta.AppendFormat("Total de movimientos exitosos: {0} ", TotalExitos)
+ ' Respuesta.AppendFormat("Total de movimientos NO exitosos: {0} ", TotalFracasos)
+
+ ' 'LEE DESDE EL LAYOUT
+ ' 'Respuesta.AppendFormat("Total de altas rechazadas: {0} ", Trailer(0).ToString.ToEntero)
+ ' 'Respuesta.AppendFormat("Total de bajas rechazadas: {0} ", Trailer(1).ToString.ToEntero)
+ ' 'Respuesta.AppendFormat("Total de cambios rechazados: {0} ", Trailer(2).ToString.ToEntero)
+
+ ' End If
+
+ ' If Not ErrorArchivo Then
+
+ ' If CveCuentasDeposito <> "" Then
+ ' Dim ObjIE As New ClsBancos
+ ' Dim ErrorDB = False
+ ' ObjIE.IniciaTransacSQL()
+ ' Dim ArrayCuentasDeposito() = CveCuentasDeposito.Split(","c)
+
+ ' For index = 0 To ArrayCuentasDeposito.Length - 1
+ ' If Not ObjIE.UpdateCuentaDepositoPagoElectronico(ArrayCuentasDeposito(index).ToEntero) Then
+ ' ErrorDB = True
+ ' End If
+ ' Next
+
+ ' If Not ErrorDB Then
+ ' ObjIE.Commit()
+ ' Respuesta.Append("
NOTA: El archivo se analizo correctamente y se efectuaron todos los cambios en el sistema.")
+ ' 'Respuesta.AppendFormat(" Descargar reporte", NombreArchivo)
+ ' Respuesta.AppendFormat("
NOTA: El archivo se analizo correctamente pero ocurrio un problema al efectuar los cambios en el sistema. Por favor vuelta a intentar.")
+ ' Alert(Respuesta.ToString, TipoMensaje.MsgError)
+ ' End If
+
+ ' ObjIE.Dispose()
+ ' Else
+ ' Respuesta.AppendFormat("
NOTA: El archivo se analizo correctamente pero ningun movimiento fue exitoso.")
+ ' 'Respuesta.AppendFormat(" Descargar reporte", NombreArchivo)
+ ' Respuesta.AppendFormat("
", NombreArchivo)
+
+ ' Alert(Respuesta.ToString, TipoMensaje.MsgAdvertencia)
+ ' End If
+
+ ' Else
+ ' Alert("Ocurrio un problema al leer el archivo. Por favor revise que el archivo sea el correcto e intente de nuevo.", TipoMensaje.MsgError)
+ ' End If
+
+ ' 'ELIMINA TXT
+ ' My.Computer.FileSystem.DeleteFile(NombreArchivo)
+
+ ' RecargaDatos()
+
+ 'End Sub
#End Region
#Region "CARGA PAGO PROVEEDORES"
@@ -1580,315 +1587,315 @@ Partial Class Bancos_PagoElectronicoGrupos
DtPago.Columns.Add("FechaOperacion", GetType(String))
- End Sub
-
-
- Protected Sub BtnCargarPago_Click(sender As Object, e As System.EventArgs)
- Dim ErrorArchivo = False
- Dim TextoErrorArchivo = "Ocurrió un problema al leer el archivo, por favor revise que el archivo sea el correcto e intente de nuevo."
-
- If FUTxt.HasFile Then
- If Not GuardaTXT() Then
- Alert("Ocurrio un error al cargar el archivo", TipoMensaje.MsgError)
- Exit Sub
- End If
- Else
- Alert("No tiene ningun archivo", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
-
-
- 'LEE TXT
- Dim Texto As String
- Dim sr As New System.IO.StreamReader(NombreArchivo)
- Texto = sr.ReadToEnd()
- sr.Close()
- Dim TextoArreglo() = Texto.Split(CChar(vbCrLf))
-
- 'INICIALIZA VARIABLES
- Dim ObjBancos As New ClsBancos
- Dim RespuestaHeader = "", RespuestaDetalle = "", RespuestaTrailer = "", Proveedor = "", CuentaAbono = "", Estatus = "", CveIEs = "", EstatusIEs = "", FechaMovto = "", Correos = ""
- Dim Row As DataRow = Nothing
- Dim Convenio = ""
- CreaDtPago()
-
- 'LEE LINEA POR LINEA
- For i = 0 To TextoArreglo.Length - 1
- 'Valida que el primer renglon sea el HEADER
- If i = 0 Then
- If TextoArreglo(i).Substring(0, 1) <> "H" Then
- ErrorArchivo = True
- Exit For
- Else
- ' Codigo de respuesta | Cuenta cargo
- RespuestaHeader = String.Format("{0}|{1}", TextoArreglo(i).Substring(52, 2), TextoArreglo(i).Substring(77, 35))
- Convenio = TextoArreglo(i).Substring(2, 9)
- End If
- Else
- If TextoArreglo(i).Length > 1 Then
-
- 'LEE DETALLE
- If TextoArreglo(i).Substring(1, 1) = "D" Then
- If i > 1 Then
- RespuestaDetalle += vbCrLf
- End If
-
- 'TRUENA PORQUE AHORA ES LA CVECUENTADEPOSITO
- 'Proveedor = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", TextoArreglo(i).Substring(24, 30).ToEntero)).Rows(0)("RazonSocial").ToString
-
- Correos += If(Correos <> "", "|", "")
-
- If ObjBancos.GetProveedorCuentaDeposito(TextoArreglo(i).Substring(24, 30).ToDouble.ToEntero) Then
- If ObjBancos.DtResultados.Rows.Count > 0 Then
-
- Proveedor = ObjBancos.DtResultados.Rows(0)("RazonSocial").ToString
-
- 'Correos += If(TextoArreglo(i).Substring(477, 50).Trim = "", "-1", TextoArreglo(i).Substring(477, 50).Trim)
- Correos += String.Format("{0};{1}", ObjBancos.DtResultados.Rows(0)("NotificarA").ToString, ObjBancos.DtResultados.Rows(0)("ContactoMailCobranza").ToString)
-
-
- ''SELECCIONA CUENTA ABONO PARA CORREO
- Select Case TextoArreglo(i).Substring(57, 1).ToEntero
- Case 1
- CuentaAbono = "NO APLICA"
- Case 2
- CuentaAbono = If(ObjBancos.DtResultados.Rows(0)("Cuenta").ToString <> "", ObjBancos.DtResultados.Rows(0)("Cuenta").ToString, ObjBancos.DtResultados.Rows(0)("CLABE").ToString)
- Case 3
- CuentaAbono = ObjBancos.DtResultados.Rows(0)("CIE").ToString
- Case 4
- CuentaAbono = ObjBancos.DtResultados.Rows(0)("SWIFT").ToString
- Case 5, 6, 7
- CuentaAbono = ObjBancos.DtResultados.Rows(0)("CLABE").ToString
- End Select
-
- Else
- Proveedor = "PROVEEDOR NO ENCONTRADO"
- End If
- Else
- Proveedor = "PROVEEDOR NO ENCONTRADO"
- End If
-
- Estatus = If(TextoArreglo(i).Substring(1325, 2) = "00", "OPERACION EXITOSA: ", "OPERACION FALLIDA: ")
- ' Proveedor | Importe | Descripcion estatus
- RespuestaDetalle += String.Format("
{0}
{1}.{2}
{5}
{3}{4}
", Proveedor, TextoArreglo(i).Substring(445, 13).ToDouble.ToEntero, TextoArreglo(i).Substring(458, 2).ToEntero, Estatus, TextoArreglo(i).Substring(1327, 30), TextoArreglo(i).Substring(420, 3))
-
- ''Guardo CveIE cuando la operacion salio exitosa para actualizar en la DB el IE
- 'If TextoArreglo(i).Substring(1325, 2) = "00" Then
- CveIEs += If(CveIEs <> "", ",", "")
- 'VIEJO IE EN CAMPO 9
- 'CveIEs += TextoArreglo(i).Substring(83, 10).Trim
- CveIEs += TextoArreglo(i).Substring(123, 32).Trim
-
- 'SI VIENE SIN RESPUESTA ES ERROR DE ARCHIVO
- If TextoArreglo(i).Substring(1325, 2).Trim = "" Then
- ErrorArchivo = True
- TextoErrorArchivo = "El archivo que se intento procesar no es de respuesta. Por favor verifique cargar el archivo correcto."
- Exit For
- End If
-
- EstatusIEs += If(EstatusIEs <> "", ",", "")
- EstatusIEs += If(TextoArreglo(i).Substring(1325, 2) = "00", "2", "3")
-
- FechaMovto += If(FechaMovto <> "", ",", "")
- FechaMovto += TextoArreglo(i).Substring(540, 10)
-
- 'If Proveedor = "PROVEEDOR NO ENCONTRADO" Or CuentaAbono = "" Then
- ' Continue For
- 'End If
-
-
- ''LLENA DTPAGOS PARA CORREO
- Row = DtPago.NewRow()
- Row("NumeroConvenio") = Convenio
- Row("ClaveProveedor") = TextoArreglo(i).Substring(24, 30)
- Row("Proveedor") = Proveedor
- Row("ReferenciaPago") = TextoArreglo(i).Substring(4, 20)
- Row("Cuenta") = CuentaAbono
-
- Select Case TextoArreglo(i).Substring(57, 1).ToEntero
- Case 1
- Row("TipoPago") = "1 .- ABONO EN VENTANILLA"
- Case 2
- Row("TipoPago") = "2 .- ABONO A CUENTAS BANCOMER"
- Case 3
- Row("TipoPago") = "3 .- ABONO A CONVENIO CIE"
- Case 4
- Row("TipoPago") = "4 .- ABONO A CUENTA INTERNACIONAL VIA SWIFT"
- Case 5
- Row("TipoPago") = "5 .- ABONO A CUENTA INTERBANCARIA DIA SIGUIENTE"
- Case 6
- Row("TipoPago") = "6 .- ABONO A CUENTA INTERBANCARIA MISMO DIA"
- Case 7
- Row("TipoPago") = "7 .- ABONO A CUENTA INTERNACIONAL VIA ACH"
- End Select
-
- Try
- Row("Cuenta") = If(Row("Cuenta").ToString = "", String.Format("******{0}", CuentaAbono.Substring(CuentaAbono.Length - 4, 4)), Row("Cuenta").ToString)
- Catch ex As Exception
- Row("Cuenta") = "******"
- End Try
-
- Row("Importe") = String.Format("{0}.{1}", TextoArreglo(i).Substring(445, 13), TextoArreglo(i).Substring(458, 2)).ToDecimal.ToString
- Row("FechaOperacion") = TextoArreglo(i).Substring(540, 10)
- Row("Observaciones") = TextoArreglo(i).Substring(605, 700).Trim
- DtPago.Rows.Add(Row)
-
- 'End If
-
- 'LEE TRAILER
- ElseIf TextoArreglo(i).Substring(1, 1) = "T" Then
-
- 'PARA BCOM, YA QUE TRUNCA EL STRING CUANDO SOLO ES MXP
- If TextoArreglo(i).Length < 1367 Then
- TextoArreglo(i) = TextoArreglo(i).PadRight(1367)
- End If
-
- RespuestaTrailer += "------------------------------------------------------------ RESUMEN ------------------------------------------------------------"
- RespuestaTrailer += String.Format("
", TextoArreglo(i).Substring(187, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(200, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(312, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(325, 2).ToDouble.ToEntero.ToString)
-
- 'RespuestaTrailer += String.Format("Total registros rechazados: {1}{0} Total Importe rechazado: $ {2}.{3}{0} Total registros aceptados: {4}{0} Total Importe aceptado: $ {5}.{6}{0}", " ", TextoArreglo(i).Substring(77, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(87, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(100, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(177, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(187, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(200, 2).ToEntero.ToString)
- Else
- ErrorArchivo = True
- Exit For
- End If
- End If
- End If
- Next
-
- ObjBancos.Dispose()
-
- Dim Respuesta As New StringBuilder
- If Not ErrorArchivo Then
-
- 'DIVIDE HEADER
- Dim Header() = RespuestaHeader.Split(CChar("|"))
- 'TRADUCE CODIGO RESPUESTA HEADER
- If Header(0) = "01" Then
- RespuestaHeader = "ACEPTADO TOTAL"
- ElseIf Header(0) = "02" Then
- RespuestaHeader = "ACEPTADO PARCIAL"
- ElseIf Header(0) = "03" Then
- RespuestaHeader = "RECHAZADO"
- End If
- RespuestaHeader += String.Format(" Cuenta Cargo: {0}", Header(1))
-
- 'DIVIDE DETALLE
- Dim Detalle() = RespuestaDetalle.Split(CChar(vbCrLf))
-
- 'ARMADO DE RESPUESTA
- Respuesta.AppendFormat(" Resumen de respuesta: {0} ", RespuestaHeader)
- Respuesta.AppendFormat("Numero de movimientos: {0}
", Detalle.Length.ToString)
- Respuesta.Append("----------------------------------------------------- Detalle de los movimientos -------------------------------------------------- ")
- Respuesta.Append("
#
Proveedor
Importe($)
Moneda
Estatus
")
- For i = 0 To Detalle.Length - 1
- Respuesta.AppendFormat("
{0}
{1}
", i + 1, Detalle(i).Trim)
- Next
- Respuesta.Append("
---------------------------------------------------------------------------------------------------------------------- ")
- Respuesta.AppendFormat(RespuestaTrailer)
-
-
- End If
-
- If Not ErrorArchivo Then
- If CveIEs <> "" Then
- Dim ObjIE As New ClsBancos
- Dim ErrorDB = False
- ObjIE.IniciaTransacSQL()
- Dim ArrayCveIEs() = CveIEs.Split(","c)
- Dim ArrayEstatusIEs() = EstatusIEs.Split(","c)
- Dim ArrayFechasMovto() = FechaMovto.Split(","c)
- Dim ArrayCorreos() = Correos.Split("|"c)
-
- Dim ArregloHilos As New Generic.List(Of System.Threading.Thread)
- Dim ArregloParametros As New Generic.List(Of List(Of String))
-
- For index = 0 To ArrayCveIEs.Length - 1
- If ObjIE.UpdatePagoElectronicoCarga(ArrayCveIEs(index).ToEntero, ArrayEstatusIEs(index).ToEntero) Then
-
- 'Cuando salio exitoso actualizamos el IE
- If ArrayEstatusIEs(index).ToEntero = 2 Then
- If ObjIE.UpdateIEPagoElectronico(ArrayCveIEs(index).ToEntero, ArrayFechasMovto(index).ToDate, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then 'DESPROGRAMA LAS COMPRAS RELACIONADAS EN ESTE PA
-
- 'Cambiamos estatus notificación
- If ObjIE.UpdateBancos_IENotificaciones(2, "-1", "-1", ArrayCveIEs(index).ToEntero) Then
-
- 'Obtenemos los correos del movimiento
- If ArrayCorreos(index) <> "-1" Or ArrayCorreos(index) <> "" Then
-
- 'Dim CorreosMovto() = ArrayCorreos(index).Split(";"c)
- 'For index2 = 0 To CorreosMovto.Length - 1
- ' If CorreosMovto(index2).Length > 5 Then
- ' End If
- 'Next
-
- Dim Param As New List(Of String)
-
- Param.Add(ArrayCorreos(index)) 'Para
- Param.Add("Notificación de Pago") 'Asunto
- Param.Add(GeneraCorreo2(DtPago.Rows(index), ObjIE, ArrayCveIEs(index).ToEntero)) 'Body
-
- Dim Hilo As New Threading.Thread(AddressOf MandaCorreo)
- ArregloHilos.Add(Hilo)
- ArregloParametros.Add(Param)
- End If
- Else
- ErrorDB = True
- End If
-
- Else
- ErrorDB = True
- End If
- Else
-
- 'Cuando salio NO exitoso cancelamos el IE
- If Not ObjIE.CancelarBancos_IE(UsuarioActual.CveUsuario, ArrayCveIEs(index).ToEntero, False, -1, -1) Then
- ErrorDB = True
- End If
- End If
-
- Else
- ErrorDB = True
- End If
- Next
-
- If Not ErrorDB Then
- ObjIE.Commit()
- 'ObjIE.RollBack()
-
- 'EMPIEZA A ENVIAR CORREO POR HILOS
- For index = 0 To ArregloHilos.Count - 1
- ArregloHilos(index).Start(ArregloParametros(index))
- Next
-
- Respuesta.Append("
NOTA: El archivo se analizo correctamente y se efectuaron todos los cambios en el sistema.")
- Alert(Respuesta.ToString, TipoMensaje.MsgInformacion)
-
- CargaDatos()
- Else
- ObjIE.RollBack()
- Respuesta.Append("
NOTA: El archivo se analizo correctamente pero ocurrió un problema al efectuar los cambios en el sistema. Por favor vuelva a intentar.")
- Alert(Respuesta.ToString, TipoMensaje.MsgError)
- End If
-
- ObjIE.Dispose()
- Else
- Respuesta.AppendFormat("
NOTA: El archivo se analizo correctamente pero ningun movimiento fue exitoso.")
- Alert(Respuesta.ToString, TipoMensaje.MsgAdvertencia)
- End If
- Else
- Alert(TextoErrorArchivo, TipoMensaje.MsgError)
- End If
-
- 'ELIMINA TXT
- My.Computer.FileSystem.DeleteFile(NombreArchivo)
-
- RecargaDatos()
-
End Sub
+
+
+ 'Protected Sub BtnCargarPago_Click(sender As Object, e As System.EventArgs)
+ ' Dim ErrorArchivo = False
+ ' Dim TextoErrorArchivo = "Ocurrió un problema al leer el archivo, por favor revise que el archivo sea el correcto e intente de nuevo."
+
+ ' If FUTxt.HasFile Then
+ ' If Not GuardaTXT() Then
+ ' Alert("Ocurrio un error al cargar el archivo", TipoMensaje.MsgError)
+ ' Exit Sub
+ ' End If
+ ' Else
+ ' Alert("No tiene ningun archivo", TipoMensaje.MsgAdvertencia)
+ ' Exit Sub
+ ' End If
+
+
+ ' 'LEE TXT
+ ' Dim Texto As String
+ ' Dim sr As New System.IO.StreamReader(NombreArchivo)
+ ' Texto = sr.ReadToEnd()
+ ' sr.Close()
+ ' Dim TextoArreglo() = Texto.Split(CChar(vbCrLf))
+
+ ' 'INICIALIZA VARIABLES
+ ' Dim ObjBancos As New ClsBancos
+ ' Dim RespuestaHeader = "", RespuestaDetalle = "", RespuestaTrailer = "", Proveedor = "", CuentaAbono = "", Estatus = "", CveIEs = "", EstatusIEs = "", FechaMovto = "", Correos = ""
+ ' Dim Row As DataRow = Nothing
+ ' Dim Convenio = ""
+ ' CreaDtPago()
+
+ ' 'LEE LINEA POR LINEA
+ ' For i = 0 To TextoArreglo.Length - 1
+ ' 'Valida que el primer renglon sea el HEADER
+ ' If i = 0 Then
+ ' If TextoArreglo(i).Substring(0, 1) <> "H" Then
+ ' ErrorArchivo = True
+ ' Exit For
+ ' Else
+ ' ' Codigo de respuesta | Cuenta cargo
+ ' RespuestaHeader = String.Format("{0}|{1}", TextoArreglo(i).Substring(52, 2), TextoArreglo(i).Substring(77, 35))
+ ' Convenio = TextoArreglo(i).Substring(2, 9)
+ ' End If
+ ' Else
+ ' If TextoArreglo(i).Length > 1 Then
+
+ ' 'LEE DETALLE
+ ' If TextoArreglo(i).Substring(1, 1) = "D" Then
+ ' If i > 1 Then
+ ' RespuestaDetalle += vbCrLf
+ ' End If
+
+ ' 'TRUENA PORQUE AHORA ES LA CVECUENTADEPOSITO
+ ' 'Proveedor = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", TextoArreglo(i).Substring(24, 30).ToEntero)).Rows(0)("RazonSocial").ToString
+
+ ' Correos += If(Correos <> "", "|", "")
+
+ ' If ObjBancos.GetProveedorCuentaDeposito(TextoArreglo(i).Substring(24, 30).ToDouble.ToEntero) Then
+ ' If ObjBancos.DtResultados.Rows.Count > 0 Then
+
+ ' Proveedor = ObjBancos.DtResultados.Rows(0)("RazonSocial").ToString
+
+ ' 'Correos += If(TextoArreglo(i).Substring(477, 50).Trim = "", "-1", TextoArreglo(i).Substring(477, 50).Trim)
+ ' Correos += String.Format("{0};{1}", ObjBancos.DtResultados.Rows(0)("NotificarA").ToString, ObjBancos.DtResultados.Rows(0)("ContactoMailCobranza").ToString)
+
+
+ ' ''SELECCIONA CUENTA ABONO PARA CORREO
+ ' Select Case TextoArreglo(i).Substring(57, 1).ToEntero
+ ' Case 1
+ ' CuentaAbono = "NO APLICA"
+ ' Case 2
+ ' CuentaAbono = If(ObjBancos.DtResultados.Rows(0)("Cuenta").ToString <> "", ObjBancos.DtResultados.Rows(0)("Cuenta").ToString, ObjBancos.DtResultados.Rows(0)("CLABE").ToString)
+ ' Case 3
+ ' CuentaAbono = ObjBancos.DtResultados.Rows(0)("CIE").ToString
+ ' Case 4
+ ' CuentaAbono = ObjBancos.DtResultados.Rows(0)("SWIFT").ToString
+ ' Case 5, 6, 7
+ ' CuentaAbono = ObjBancos.DtResultados.Rows(0)("CLABE").ToString
+ ' End Select
+
+ ' Else
+ ' Proveedor = "PROVEEDOR NO ENCONTRADO"
+ ' End If
+ ' Else
+ ' Proveedor = "PROVEEDOR NO ENCONTRADO"
+ ' End If
+
+ ' Estatus = If(TextoArreglo(i).Substring(1325, 2) = "00", "OPERACION EXITOSA: ", "OPERACION FALLIDA: ")
+ ' ' Proveedor | Importe | Descripcion estatus
+ ' RespuestaDetalle += String.Format("
{0}
{1}.{2}
{5}
{3}{4}
", Proveedor, TextoArreglo(i).Substring(445, 13).ToDouble.ToEntero, TextoArreglo(i).Substring(458, 2).ToEntero, Estatus, TextoArreglo(i).Substring(1327, 30), TextoArreglo(i).Substring(420, 3))
+
+ ' ''Guardo CveIE cuando la operacion salio exitosa para actualizar en la DB el IE
+ ' 'If TextoArreglo(i).Substring(1325, 2) = "00" Then
+ ' CveIEs += If(CveIEs <> "", ",", "")
+ ' 'VIEJO IE EN CAMPO 9
+ ' 'CveIEs += TextoArreglo(i).Substring(83, 10).Trim
+ ' CveIEs += TextoArreglo(i).Substring(123, 32).Trim
+
+ ' 'SI VIENE SIN RESPUESTA ES ERROR DE ARCHIVO
+ ' If TextoArreglo(i).Substring(1325, 2).Trim = "" Then
+ ' ErrorArchivo = True
+ ' TextoErrorArchivo = "El archivo que se intento procesar no es de respuesta. Por favor verifique cargar el archivo correcto."
+ ' Exit For
+ ' End If
+
+ ' EstatusIEs += If(EstatusIEs <> "", ",", "")
+ ' EstatusIEs += If(TextoArreglo(i).Substring(1325, 2) = "00", "2", "3")
+
+ ' FechaMovto += If(FechaMovto <> "", ",", "")
+ ' FechaMovto += TextoArreglo(i).Substring(540, 10)
+
+ ' 'If Proveedor = "PROVEEDOR NO ENCONTRADO" Or CuentaAbono = "" Then
+ ' ' Continue For
+ ' 'End If
+
+
+ ' ''LLENA DTPAGOS PARA CORREO
+ ' Row = DtPago.NewRow()
+ ' Row("NumeroConvenio") = Convenio
+ ' Row("ClaveProveedor") = TextoArreglo(i).Substring(24, 30)
+ ' Row("Proveedor") = Proveedor
+ ' Row("ReferenciaPago") = TextoArreglo(i).Substring(4, 20)
+ ' Row("Cuenta") = CuentaAbono
+
+ ' Select Case TextoArreglo(i).Substring(57, 1).ToEntero
+ ' Case 1
+ ' Row("TipoPago") = "1 .- ABONO EN VENTANILLA"
+ ' Case 2
+ ' Row("TipoPago") = "2 .- ABONO A CUENTAS BANCOMER"
+ ' Case 3
+ ' Row("TipoPago") = "3 .- ABONO A CONVENIO CIE"
+ ' Case 4
+ ' Row("TipoPago") = "4 .- ABONO A CUENTA INTERNACIONAL VIA SWIFT"
+ ' Case 5
+ ' Row("TipoPago") = "5 .- ABONO A CUENTA INTERBANCARIA DIA SIGUIENTE"
+ ' Case 6
+ ' Row("TipoPago") = "6 .- ABONO A CUENTA INTERBANCARIA MISMO DIA"
+ ' Case 7
+ ' Row("TipoPago") = "7 .- ABONO A CUENTA INTERNACIONAL VIA ACH"
+ ' End Select
+
+ ' Try
+ ' Row("Cuenta") = If(Row("Cuenta").ToString = "", String.Format("******{0}", CuentaAbono.Substring(CuentaAbono.Length - 4, 4)), Row("Cuenta").ToString)
+ ' Catch ex As Exception
+ ' Row("Cuenta") = "******"
+ ' End Try
+
+ ' Row("Importe") = String.Format("{0}.{1}", TextoArreglo(i).Substring(445, 13), TextoArreglo(i).Substring(458, 2)).ToDecimal.ToString
+ ' Row("FechaOperacion") = TextoArreglo(i).Substring(540, 10)
+ ' Row("Observaciones") = TextoArreglo(i).Substring(605, 700).Trim
+ ' DtPago.Rows.Add(Row)
+
+ ' 'End If
+
+ ' 'LEE TRAILER
+ ' ElseIf TextoArreglo(i).Substring(1, 1) = "T" Then
+
+ ' 'PARA BCOM, YA QUE TRUNCA EL STRING CUANDO SOLO ES MXP
+ ' If TextoArreglo(i).Length < 1367 Then
+ ' TextoArreglo(i) = TextoArreglo(i).PadRight(1367)
+ ' End If
+
+ ' RespuestaTrailer += "------------------------------------------------------------ RESUMEN ------------------------------------------------------------"
+ ' RespuestaTrailer += String.Format("
", TextoArreglo(i).Substring(187, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(200, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(312, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(325, 2).ToDouble.ToEntero.ToString)
+
+ ' 'RespuestaTrailer += String.Format("Total registros rechazados: {1}{0} Total Importe rechazado: $ {2}.{3}{0} Total registros aceptados: {4}{0} Total Importe aceptado: $ {5}.{6}{0}", " ", TextoArreglo(i).Substring(77, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(87, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(100, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(177, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(187, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(200, 2).ToEntero.ToString)
+ ' Else
+ ' ErrorArchivo = True
+ ' Exit For
+ ' End If
+ ' End If
+ ' End If
+ ' Next
+
+ ' ObjBancos.Dispose()
+
+ ' Dim Respuesta As New StringBuilder
+ ' If Not ErrorArchivo Then
+
+ ' 'DIVIDE HEADER
+ ' Dim Header() = RespuestaHeader.Split(CChar("|"))
+ ' 'TRADUCE CODIGO RESPUESTA HEADER
+ ' If Header(0) = "01" Then
+ ' RespuestaHeader = "ACEPTADO TOTAL"
+ ' ElseIf Header(0) = "02" Then
+ ' RespuestaHeader = "ACEPTADO PARCIAL"
+ ' ElseIf Header(0) = "03" Then
+ ' RespuestaHeader = "RECHAZADO"
+ ' End If
+ ' RespuestaHeader += String.Format(" Cuenta Cargo: {0}", Header(1))
+
+ ' 'DIVIDE DETALLE
+ ' Dim Detalle() = RespuestaDetalle.Split(CChar(vbCrLf))
+
+ ' 'ARMADO DE RESPUESTA
+ ' Respuesta.AppendFormat(" Resumen de respuesta: {0} ", RespuestaHeader)
+ ' Respuesta.AppendFormat("Numero de movimientos: {0}
", Detalle.Length.ToString)
+ ' Respuesta.Append("----------------------------------------------------- Detalle de los movimientos -------------------------------------------------- ")
+ ' Respuesta.Append("
#
Proveedor
Importe($)
Moneda
Estatus
")
+ ' For i = 0 To Detalle.Length - 1
+ ' Respuesta.AppendFormat("
{0}
{1}
", i + 1, Detalle(i).Trim)
+ ' Next
+ ' Respuesta.Append("
---------------------------------------------------------------------------------------------------------------------- ")
+ ' Respuesta.AppendFormat(RespuestaTrailer)
+
+
+ ' End If
+
+ ' If Not ErrorArchivo Then
+ ' If CveIEs <> "" Then
+ ' Dim ObjIE As New ClsBancos
+ ' Dim ErrorDB = False
+ ' ObjIE.IniciaTransacSQL()
+ ' Dim ArrayCveIEs() = CveIEs.Split(","c)
+ ' Dim ArrayEstatusIEs() = EstatusIEs.Split(","c)
+ ' Dim ArrayFechasMovto() = FechaMovto.Split(","c)
+ ' Dim ArrayCorreos() = Correos.Split("|"c)
+
+ ' Dim ArregloHilos As New Generic.List(Of System.Threading.Thread)
+ ' Dim ArregloParametros As New Generic.List(Of List(Of String))
+
+ ' For index = 0 To ArrayCveIEs.Length - 1
+ ' If ObjIE.UpdatePagoElectronicoCarga(ArrayCveIEs(index).ToEntero, ArrayEstatusIEs(index).ToEntero) Then
+
+ ' 'Cuando salio exitoso actualizamos el IE
+ ' If ArrayEstatusIEs(index).ToEntero = 2 Then
+ ' If ObjIE.UpdateIEPagoElectronico(ArrayCveIEs(index).ToEntero, ArrayFechasMovto(index).ToDate, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then 'DESPROGRAMA LAS COMPRAS RELACIONADAS EN ESTE PA
+
+ ' 'Cambiamos estatus notificación
+ ' If ObjIE.UpdateBancos_IENotificaciones(2, "-1", "-1", ArrayCveIEs(index).ToEntero) Then
+
+ ' 'Obtenemos los correos del movimiento
+ ' If ArrayCorreos(index) <> "-1" Or ArrayCorreos(index) <> "" Then
+
+ ' 'Dim CorreosMovto() = ArrayCorreos(index).Split(";"c)
+ ' 'For index2 = 0 To CorreosMovto.Length - 1
+ ' ' If CorreosMovto(index2).Length > 5 Then
+ ' ' End If
+ ' 'Next
+
+ ' Dim Param As New List(Of String)
+
+ ' Param.Add(ArrayCorreos(index)) 'Para
+ ' Param.Add("Notificación de Pago") 'Asunto
+ ' Param.Add(GeneraCorreo2(DtPago.Rows(index), ObjIE, ArrayCveIEs(index).ToEntero)) 'Body
+
+ ' Dim Hilo As New Threading.Thread(AddressOf MandaCorreo)
+ ' ArregloHilos.Add(Hilo)
+ ' ArregloParametros.Add(Param)
+ ' End If
+ ' Else
+ ' ErrorDB = True
+ ' End If
+
+ ' Else
+ ' ErrorDB = True
+ ' End If
+ ' Else
+
+ ' 'Cuando salio NO exitoso cancelamos el IE
+ ' If Not ObjIE.CancelarBancos_IE(UsuarioActual.CveUsuario, ArrayCveIEs(index).ToEntero, False, -1, -1) Then
+ ' ErrorDB = True
+ ' End If
+ ' End If
+
+ ' Else
+ ' ErrorDB = True
+ ' End If
+ ' Next
+
+ ' If Not ErrorDB Then
+ ' ObjIE.Commit()
+ ' 'ObjIE.RollBack()
+
+ ' 'EMPIEZA A ENVIAR CORREO POR HILOS
+ ' For index = 0 To ArregloHilos.Count - 1
+ ' ArregloHilos(index).Start(ArregloParametros(index))
+ ' Next
+
+ ' Respuesta.Append("
NOTA: El archivo se analizo correctamente y se efectuaron todos los cambios en el sistema.")
+ ' Alert(Respuesta.ToString, TipoMensaje.MsgInformacion)
+
+ ' CargaDatos()
+ ' Else
+ ' ObjIE.RollBack()
+ ' Respuesta.Append("
NOTA: El archivo se analizo correctamente pero ocurrió un problema al efectuar los cambios en el sistema. Por favor vuelva a intentar.")
+ ' Alert(Respuesta.ToString, TipoMensaje.MsgError)
+ ' End If
+
+ ' ObjIE.Dispose()
+ ' Else
+ ' Respuesta.AppendFormat("
NOTA: El archivo se analizo correctamente pero ningun movimiento fue exitoso.")
+ ' Alert(Respuesta.ToString, TipoMensaje.MsgAdvertencia)
+ ' End If
+ ' Else
+ ' Alert(TextoErrorArchivo, TipoMensaje.MsgError)
+ ' End If
+
+ ' 'ELIMINA TXT
+ ' My.Computer.FileSystem.DeleteFile(NombreArchivo)
+
+ ' RecargaDatos()
+
+ 'End Sub
#End Region
@@ -1921,10 +1928,15 @@ Partial Class Bancos_PagoElectronicoGrupos
DtCuentasPendientesTemp.CaseSensitive = False
- Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre like '%BBVA%' OR BancoNombre like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CvePersonal", "CveBanco", "Cuenta", "BBVAAlias"})
- Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre not like '%BBVA%' AND BancoNombre not like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CvePersonal", "CveBanco", "Cuenta", "BBVAAlias"})
+
+
+
+ Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre like '%BBVA%' OR BancoNombre like '%BANCOMER%' ) ", "", {"CveCuentaDeposito", "BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CvePersonal", "CveBanco", "Cuenta", "BBVAAlias"})
+ Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre not like '%BBVA%' AND BancoNombre not like '%BANCOMER%' ) ", "", {"CveCuentaDeposito", "BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CvePersonal", "CveBanco", "Cuenta", "BBVAAlias"})
'CLABEDestino
+ Dim ObjGrales As New ClsGenerales
+
If DtCuentasPendientesBancomer.Rows.Count > 0 Then
For Each dRow As DataRow In DtCuentasPendientesBancomer.Rows
@@ -1974,6 +1986,7 @@ Partial Class Bancos_PagoElectronicoGrupos
If Not ErrorLineaBancomer Then
RegistrosAltaBancomer.Append(SBTmpBancomer.ToString)
+ ObjGrales.UpdateCuentasDepositosEstatusPagoElectronicoGrupos(dRow("CveCuentaDeposito").ToString.ToEntero, True)
Else
SBErroresBancomer.Append(" ")
SBErrores.AppendLine(SBErroresBancomer.ToString)
@@ -2057,6 +2070,7 @@ Partial Class Bancos_PagoElectronicoGrupos
If Not ErrorLineaInterbancaria Then
RegistrosAltaInterbancario.Append(SBTmpInterbancarias.ToString)
+ ObjGrales.UpdateCuentasDepositosEstatusPagoElectronicoGrupos(dRow("CveCuentaDeposito").ToString.ToEntero, True)
Else
SBErroresInterBancario.Append(" ")
SBErrores.AppendLine(SBErroresInterBancario.ToString)
@@ -2073,6 +2087,7 @@ Partial Class Bancos_PagoElectronicoGrupos
End If
+ ObjGrales.Dispose()
Dim Mensaje As New StringBuilder
@@ -2100,238 +2115,238 @@ Partial Class Bancos_PagoElectronicoGrupos
Alert(Mensaje.ToString, TipoMensaje.MsgInformacion)
End If
-
+ CargaDatos()
End Sub
- Private Sub CargaFyE()
- Dim ObjBancos As New ClsBancos
-
- If ObjBancos.GetLayoutFyE(DdlCuenta.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, PorGrupos:=True) Then
- DTFyE = ObjBancos.DtResultados.FiltraParametros("LEN(RFC) IN (13)")
- Else
- DTFyE = Nothing
- End If
- ObjBancos.Dispose()
-
- If DTFyE.Rows.Count > 0 Then
- GvProveedores.DataSource = DTFyE
- End If
- GvProveedores.DataBind()
-
- UpProveedores.Update()
- End Sub
-
- Private Sub GeneraAltaFyE()
- Dim DtTemp As DataTable = Nothing
-
- 'REINICIA PROPIEDAS
- HeaderTexto = ""
- DetalleTexto = ""
- TrailerTexto = ""
- TotalAcumulado = 0
- CreaDtAlta()
-
- DtTemp = DTFyE
-
- ''VALIDA CUENTAS DEPOSITOS
- Dim ErrorCuenta = False
- Dim FyEError As StringBuilder = New StringBuilder
- FyEError.AppendFormat("
Personal
Cuenta
Error
")
-
- Dim TotalDetalles As Integer = 0
- Dim EsBancomer = False
- For Each gvr As DataRow In DtTemp.Rows
- If gvr("CvePersonal").ToString <> "" AndAlso gvr("EstatusPagoElectronico").ToString <> "True" AndAlso gvr("AltaCuenta").ToString = "1" Then
- DTPendienteActual = DtTemp.FiltraParametros(String.Format("CveCuentaDeposito = {0}", gvr("CveCuentaDeposito").ToString))
- ErrorCuenta = False
- EsBancomer = False
-
- If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Or (DTPendienteActual(0)("CLABE").ToString.Length = 18 AndAlso DTPendienteActual(0)("CLABE").ToString.Substring(0, 3) = "012") Then
- EsBancomer = True
- End If
-
- 'CLABE SIEMPRE OBLIGATORIA SI NO ES BANCOMER
- If Not ErrorCuenta Then
- If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 And DTPendienteActual(0)("CLABE").ToString.Trim.Length = 0 And Not EsBancomer Then
- FyEError.AppendFormat("
{0}
{1}
CLABE ES OBLIGATORIA
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
- ErrorCuenta = True
- End If
- End If
-
- 'SI CUENTA TIENE ALGO Y BANCO BANCOMER DEBE TENER UNA LOGITUD EXACTA DE 10
- If Not ErrorCuenta Then
- If DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 10 AndAlso EsBancomer Then
- FyEError.AppendFormat("
{0}
{1}
NUMERO DE CUENTA CON FORMATO INCORRECTO
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
- ErrorCuenta = True
- End If
- End If
-
- 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18
- If Not ErrorCuenta Then
- If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 Then
- FyEError.AppendFormat("
{0}
{1}
CLABE CON FORMATO INCORRECTO
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
- ErrorCuenta = True
- End If
- End If
-
- 'SI CIE TIENE ALGO DEBE TENER REFERENCIA OBLIGATORIA
- If Not ErrorCuenta Then
- If DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0 And DTPendienteActual(0)("Referencia").ToString.Trim.Length < 3 Then
- FyEError.AppendFormat("
{0}
{1}
CIE CON FORMATO INCORRECTO
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
- ErrorCuenta = True
- End If
- End If
-
- 'CUANDO SEA "BBVA" O "BANCOMER" DEBE TENER "CIE" O "CUENTA"
- If Not ErrorCuenta Then
- If EsBancomer AndAlso Not (DTPendienteActual(0)("Cuenta").ToString.Trim.Length = 10 Or DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0) Then
- FyEError.AppendFormat("
{0}
{1}
CUENTA BANCOMER SIN CUENTA O CIE
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
- ErrorCuenta = True
- End If
- End If
-
- If Not ErrorCuenta Then
- If TotalDetalles > 0 Then
- DetalleTexto &= vbCrLf
- End If
- GeneraAltaDetalleFyE()
- TotalDetalles += 1
- End If
-
- End If
- Next
- FyEError.AppendFormat("
")
-
-
- If TotalDetalles > 0 Then
- FormarTextoAltaFyE(TotalDetalles)
- CreaArchivo(2)
-
- Dim Descargas As New StringBuilder()
- Descargas.AppendFormat("
", FyEError.ToString)
-
- Alert(String.Format(" El Layout fue creado satisfactoriamente.{1} Descargas:
{0}
", Descargas, TextoErrorProveedores), TipoMensaje.MsgInformacion)
-
- 'NombreArchivo = "LayoutAltaProveedores"
- 'DescargarArchivo()
- Else
- Alert("No hay proveedores que dar de alta", TipoMensaje.MsgInformacion)
- End If
-
-
- End Sub
-
- Private Sub GeneraAltaDetalleFyE()
- Dim Resultado = True
- Dim CuentaDeposito As String = ""
- Dim TipoCuentaDeposito As String = ""
- Dim TipoCuenta As String = ""
-
- ''''' LLENADO DE DETALLE
- 'Campos #1-4 del Detalle
- DetalleTexto &= String.Format("DA{0}N ", DTPendienteActual(0)("CveCuentaDeposito").ToString.ToUpper.PadLeft(30, PadCeros))
-
- 'Banco BBVA
- If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Then
- 'Llenamos datos de BBVA
- 'Campo #5-7 del detalle
-
- 'Busca que cuenta sera la asignada para el proveedor
- If DTPendienteActual(0)("CIE").ToString <> "" Then
- CuentaDeposito = String.Format("02{0}", DTPendienteActual(0)("CIE").ToString.PadLeft(8, PadCeros))
- TipoCuenta = "50"
- TipoCuentaDeposito = "CIE"
- ElseIf DTPendienteActual(0)("Cuenta").ToString.Length = 10 Then
- CuentaDeposito = DTPendienteActual(0)("Cuenta").ToString
- TipoCuenta = "99"
- TipoCuentaDeposito = "Cuenta"
- ElseIf DTPendienteActual(0)("CLABE").ToString.Length = 18 Then
- CuentaDeposito = DTPendienteActual(0)("CLABE").ToString
- TipoCuenta = "40"
- TipoCuentaDeposito = "CLABE"
- End If
-
-
- DetalleTexto &= String.Format("{0}{1}{2}", DTPendienteActual(0)("Abreviatura").ToString, TipoCuenta, CuentaDeposito.PadLeft(35, PadCeros))
-
- 'Llenamos en blanco datos de otros bancos
- 'Campos 8-17 del detalle --- 64 de otros bancos y 45 para FILLER --- Fecha de Alta
- DetalleTexto &= String.Format("{0}{1}", Vacio.PadLeft(109), DateTime.Now().ToString("yyyy-MM-dd"))
-
-
- 'Otros Bancos NACIONAL!!
- Else
-
- CuentaDeposito = DTPendienteActual(0)("CLABE").ToString
- TipoCuentaDeposito = "CLABE"
-
- 'Llenamos en blanco datos de BBVA
- DetalleTexto &= Vacio.PadRight(40)
-
- 'Llenamos datos de otros bancos
- 'Campos 8- 17 del detalle --- 44 de otros bancos --- 20 de internacional --- 45 Filler -- Fecha de Alta
- DetalleTexto &= String.Format("{0}40{1}{2}{3}{4}{5}", DTPendienteActual(0)("Abreviatura").ToString, DTPendienteActual(0)("CLABE").ToString.PadLeft(35, PadCeros), DTPendienteActual(0)("CLABE").ToString.Substring(0, 3).PadLeft(4, PadCeros), Vacio.PadRight(20), Vacio.PadRight(45), DateTime.Now().ToString("yyyy-MM-dd"))
- End If
-
- 'Llenamos datos de Tipo de Persona - Fisica
- ' nombres Primer apellido Segundo apellido
- DetalleTexto &= String.Format("F{0}{1}{2}{3}", Vacio.PadRight(70), DTPendienteActual(0)("Nombres").ToString.PadRight(20).Substring(0, 20), DTPendienteActual(0)("APaterno").ToString.PadRight(20).Substring(0, 20), DTPendienteActual(0)("AMaterno").ToString.PadRight(20).Substring(0, 20))
-
- 'Campo 25-26 del detalle -- Fecha Nacimiento -- RFC
- DetalleTexto &= String.Format("{0}{1}", DTPendienteActual(0)("FechaNacimiento").ToString.ToDate.ToString("yyyy-MM-dd"), DTPendienteActual(0)("RFC").ToString.ToUpper.PadRight(14))
-
- 'Campos 27-32 --- Fillers --- datos de otros bancos (internacional)
- DetalleTexto &= Vacio.PadLeft(153)
-
- 'Campos 33-36 --- Datos de confirmacion
- DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), CorreoNotificacionesEmpresa.ToUpper.PadRight(50))
-
- 'If DTPendienteActual(0)("ContactoMail").ToString.Length > 0 Then
- ' 'DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), DTPendienteActual(0)("ContactoMail").ToString.ToUpper.PadRight(50))
- 'ElseIf DTPendienteActual(0)("ContactoMail").ToString.Length <= 0 Then
- ' DetalleTexto &= String.Format("{0}00{1}", Vacio.PadRight(40), Vacio.PadRight(50))
- 'End If
-
- 'Campos 37-39 -- FILLER
- DetalleTexto &= String.Format("00{0}", Vacio.PadRight(38))
-
-
- ''LLENA DT PARA REPORTE
- Dim Row = DtAlta.NewRow()
- Row("Proveedor") = DTPendienteActual(0)("RazonSocial").ToString
- Row("Banco") = DTPendienteActual(0)("BancoNombre").ToString
- Row("TipoCuenta") = TipoCuentaDeposito
- Row("Cuenta") = String.Format("{0}", CuentaDeposito)
- DtAlta.Rows.Add(Row)
- End Sub
-
- Protected Sub FormarTextoAltaFyE(Registros As Integer)
- '''''' LLENADO HEADER
- Dim convenio As String = DTPendienteActual(0)("ConvenioPagoElectronico").ToString
- 'Campos #1-4 del Header
- HeaderTexto = String.Format("H{0}{1}GRUPO01 ", convenio.PadLeft(9, PadCeros), DateTime.Now().ToString("yyyy-MM-dd"))
- 'Campo #5 del Header
- HeaderTexto &= String.Format("{0}{1}", UsuarioActual.CveUsuario, DateTime.Now().ToString("yyyyMMdd")).PadRight(20)
- 'Campos #6-8 del Header
- HeaderTexto &= String.Format("00").PadRight(586)
- Dim HeaderLength = HeaderTexto.Length
-
- ''''' LLENADO DE TRAILER
- TrailerTexto = String.Format("T{0}{1}{2}", Registros.ToString.PadLeft(10, PadCeros), Vacio.PadRight(50, PadCeros), Vacio.PadRight(575))
-
- ''''' ARMADO DEL TEXTO COMPLETO
- TextoCompleto = String.Format("{1}{0}{2}{0}{3}{0}", vbCrLf, HeaderTexto, DetalleTexto, TrailerTexto)
- 'TxtAltas.Text = TextoCompleto
+ Private Sub CargaFyE()
+ Dim ObjBancos As New ClsBancos
+
+ If ObjBancos.GetLayoutFyE(DdlCuenta.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, PorGrupos:=True) Then
+ DTFyE = ObjBancos.DtResultados.FiltraParametros("LEN(RFC) IN (13)")
+ Else
+ DTFyE = Nothing
+ End If
+ ObjBancos.Dispose()
+
+ If DTFyE.Rows.Count > 0 Then
+ GvProveedores.DataSource = DTFyE
+ End If
+ GvProveedores.DataBind()
+
+ UpProveedores.Update()
End Sub
+ 'Private Sub GeneraAltaFyE()
+ ' Dim DtTemp As DataTable = Nothing
+
+ ' 'REINICIA PROPIEDAS
+ ' HeaderTexto = ""
+ ' DetalleTexto = ""
+ ' TrailerTexto = ""
+ ' TotalAcumulado = 0
+ ' CreaDtAlta()
+
+ ' DtTemp = DTFyE
+
+ ' ''VALIDA CUENTAS DEPOSITOS
+ ' Dim ErrorCuenta = False
+ ' Dim FyEError As StringBuilder = New StringBuilder
+ ' FyEError.AppendFormat("
Personal
Cuenta
Error
")
+
+ ' Dim TotalDetalles As Integer = 0
+ ' Dim EsBancomer = False
+ ' For Each gvr As DataRow In DtTemp.Rows
+ ' If gvr("CvePersonal").ToString <> "" AndAlso gvr("EstatusPagoElectronico").ToString <> "True" AndAlso gvr("AltaCuenta").ToString = "1" Then
+ ' DTPendienteActual = DtTemp.FiltraParametros(String.Format("CveCuentaDeposito = {0}", gvr("CveCuentaDeposito").ToString))
+ ' ErrorCuenta = False
+ ' EsBancomer = False
+
+ ' If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Or (DTPendienteActual(0)("CLABE").ToString.Length = 18 AndAlso DTPendienteActual(0)("CLABE").ToString.Substring(0, 3) = "012") Then
+ ' EsBancomer = True
+ ' End If
+
+ ' 'CLABE SIEMPRE OBLIGATORIA SI NO ES BANCOMER
+ ' If Not ErrorCuenta Then
+ ' If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 And DTPendienteActual(0)("CLABE").ToString.Trim.Length = 0 And Not EsBancomer Then
+ ' FyEError.AppendFormat("
{0}
{1}
CLABE ES OBLIGATORIA
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
+ ' ErrorCuenta = True
+ ' End If
+ ' End If
+
+ ' 'SI CUENTA TIENE ALGO Y BANCO BANCOMER DEBE TENER UNA LOGITUD EXACTA DE 10
+ ' If Not ErrorCuenta Then
+ ' If DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 10 AndAlso EsBancomer Then
+ ' FyEError.AppendFormat("
{0}
{1}
NUMERO DE CUENTA CON FORMATO INCORRECTO
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
+ ' ErrorCuenta = True
+ ' End If
+ ' End If
+
+ ' 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18
+ ' If Not ErrorCuenta Then
+ ' If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 Then
+ ' FyEError.AppendFormat("
{0}
{1}
CLABE CON FORMATO INCORRECTO
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
+ ' ErrorCuenta = True
+ ' End If
+ ' End If
+
+ ' 'SI CIE TIENE ALGO DEBE TENER REFERENCIA OBLIGATORIA
+ ' If Not ErrorCuenta Then
+ ' If DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0 And DTPendienteActual(0)("Referencia").ToString.Trim.Length < 3 Then
+ ' FyEError.AppendFormat("
{0}
{1}
CIE CON FORMATO INCORRECTO
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
+ ' ErrorCuenta = True
+ ' End If
+ ' End If
+
+ ' 'CUANDO SEA "BBVA" O "BANCOMER" DEBE TENER "CIE" O "CUENTA"
+ ' If Not ErrorCuenta Then
+ ' If EsBancomer AndAlso Not (DTPendienteActual(0)("Cuenta").ToString.Trim.Length = 10 Or DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0) Then
+ ' FyEError.AppendFormat("
{0}
{1}
CUENTA BANCOMER SIN CUENTA O CIE
", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString)
+ ' ErrorCuenta = True
+ ' End If
+ ' End If
+
+ ' If Not ErrorCuenta Then
+ ' If TotalDetalles > 0 Then
+ ' DetalleTexto &= vbCrLf
+ ' End If
+ ' GeneraAltaDetalleFyE()
+ ' TotalDetalles += 1
+ ' End If
+
+ ' End If
+ ' Next
+ ' FyEError.AppendFormat("
")
+
+
+ ' If TotalDetalles > 0 Then
+ ' FormarTextoAltaFyE(TotalDetalles)
+ ' CreaArchivo(2)
+
+ ' Dim Descargas As New StringBuilder()
+ ' Descargas.AppendFormat("
-
@@ -1135,7 +1161,28 @@
$("#DivCantidadEspecial").show(200);
}
+ function Dividir(t) {
+ $get("HdnCantidadMovimiento").value = $get(t).value;
+ }
+ function LimitaCantidad(C, textbox, button) {
+
+ // var contenedor = $(textbox).parent().find("#" + buttonIdDiv);
+
+ if (ToDouble(textbox.value) >= C) {
+ textbox.value = "";
+ }
+
+ if (parseFloat(textbox.value) > 0) {
+ $get(button).style.display = "";
+ //$(contenedor).show();
+ }
+ else {
+ $get(button).style.display = "none";
+ //$(contenedor).hide();
+
+ }
+ }
diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb
index 6a926090f..05ef7a391 100644
--- a/Inventarios/RecepcionAlmacen.aspx.vb
+++ b/Inventarios/RecepcionAlmacen.aspx.vb
@@ -388,116 +388,131 @@ Partial Class Inventarios_RecepcionAlmacen
End Sub
#End Region
-#Region " INICIALIZA VALORES "
- Private Sub InicializaValores()
- CveCompraParametro = -1
- CveCompraSurtir = -1
- CvePrePolizaCompra = -1
- CveOCSurtir = -1
- CveImportacionSurtir = -1
- CveImportacionProveedor = -1
- CveImportacionCompra = -1
- CveFleteSurtir = -1
- CveFleteOrdenCompra = -1
- CveFleteCompra = -1
- BuscaEntregaDirecta = -1
- CveAlmacenApartado = -1
- TipoMovimiento = 1
-
- CantidadTotal = 0
- IndexSeccionAlmacen = 0
- CreaDtSeccionAlmacen()
- CargaDdlAlmacen()
-
- ddlAlmacenAdd.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen NOT IN (9)")
- ddlAlmacenAdd.DataBind()
-
- CargaAlmacenes(-1)
-
- ddlProveedor.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
-
- If ddlProveedor.UsaWebService Then
-
- ddlProveedor.Attributes.Add("data-metodo", "getproveedores")
- Else
- ddlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
- ddlProveedor.DataBind()
- ddlProveedor.ddl.Items.Insert(0, New ListItem("Seleccione el Proveedor", "-1"))
- ddlProveedor.SelectedValue = "-1"
- End If
-
-
- DdlFolio.Items.Insert(0, New ListItem("Seleccione", "-1"))
- DdlFolioOC.Items.Insert(0, New ListItem("Seleccione", "-1"))
-
- ConfiguraTipoRecepcion()
-
- If UsuarioActual.CveEmpresa = 119 Then
- DivRemision.Visible = True
- End If
-
- TxtFechaCaducidad.Text = Now.ToShortDateString
- TxtFechaPendientes.Text = Now.ToShortDateString
- TipoCambio = -1
- CreaDtDetalle()
-
- ImgClose.Attributes.Add("onclick", "$('#DivAlmacen').hide();")
- ImgAdd.Attributes.Add("onclick", "$('#DivAlmacen').hide();")
-
- BtnGuardar.Visible = False
- TxtFecha.Text = Now.ToShortDateString
- RVFecha.MaximumValue = MaxFecha.ToShortDateString
- If UsuarioActual.CveEmpresa.Contiene(119) Then RVFecha.MinimumValue = Now.ToShortDateString : CEFecha.StartDate = Now Else RVFecha.MinimumValue = MinFecha.ToShortDateString
- InicializaBitacoraTemporal()
- DdlMonedaTC.Enabled = False
-
-
-
+#Region " INICIALIZA VALORES "
+ Private Sub InicializaValores()
+ CveCompraParametro = -1
+ CveCompraSurtir = -1
+ CvePrePolizaCompra = -1
+ CveOCSurtir = -1
+ CveImportacionSurtir = -1
+ CveImportacionProveedor = -1
+ CveImportacionCompra = -1
+ CveFleteSurtir = -1
+ CveFleteOrdenCompra = -1
+ CveFleteCompra = -1
+ BuscaEntregaDirecta = -1
+ CveAlmacenApartado = -1
+ TipoMovimiento = 1
+
+ CantidadTotal = 0
+ IndexSeccionAlmacen = 0
+ CreaDtSeccionAlmacen()
+ CargaDdlAlmacen()
+
+ ddlAlmacenAdd.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen NOT IN (9)")
+ ddlAlmacenAdd.DataBind()
+
+ CargaAlmacenes(-1)
+
+ ddlProveedor.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
+
+ If ddlProveedor.UsaWebService Then
+
+ ddlProveedor.Attributes.Add("data-metodo", "getproveedores")
+ Else
+ ddlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
+ ddlProveedor.DataBind()
+ ddlProveedor.ddl.Items.Insert(0, New ListItem("Seleccione el Proveedor", "-1"))
+ ddlProveedor.SelectedValue = "-1"
+ End If
+
+
+ DdlFolio.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlFolioOC.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
+ ConfiguraTipoRecepcion()
+
+ If UsuarioActual.CveEmpresa = 119 Then
+ DivRemision.Visible = True
+ End If
+
+ TxtFechaCaducidad.Text = Now.ToShortDateString
+ TxtFechaPendientes.Text = Now.ToShortDateString
+ TipoCambio = -1
+ CreaDtDetalle()
+
+ ImgClose.Attributes.Add("onclick", "$('#DivAlmacen').hide();")
+ ImgAdd.Attributes.Add("onclick", "$('#DivAlmacen').hide();")
+
+ BtnGuardar.Visible = False
+ TxtFecha.Text = Now.ToShortDateString
+ RVFecha.MaximumValue = MaxFecha.ToShortDateString
+ If UsuarioActual.CveEmpresa.Contiene(119) Then RVFecha.MinimumValue = Now.ToShortDateString : CEFecha.StartDate = Now Else RVFecha.MinimumValue = MinFecha.ToShortDateString
+ InicializaBitacoraTemporal()
+ DdlMonedaTC.Enabled = False
+
+
+
+ End Sub
+ '''
+ ''' Recarga los almacenes [DdlAlmacen] que se pueden usar para el movimiento
+ '''
+ '''
+ ''' Parametro sin espacios y separado por comas ["1,2,3,21"]
+ Private Sub CargaAlmacenes(CveSubProyecto As Integer, Optional CveTiposAlmacen As String = "")
+ Dim StrAlmacenes As String = ""
+
+ If UsuarioActual.CveSubProyecto = 8804 Then 'AGS
+ StrAlmacenes = $"CveTipoAlmacen IN ({If(CveTiposAlmacen.Length > 0, CveTiposAlmacen, "1,2,12,15")}) {If(CveSubProyecto > 0, $"And CveSubProyecto = {CveSubProyecto}", "")}"
+ Else
+ StrAlmacenes = $"CveTipoAlmacen IN ({If(CveTiposAlmacen.Length > 0, CveTiposAlmacen, "1,2,15,6")}) {If(CveSubProyecto > 0, $"And CveSubProyecto = {CveSubProyecto}", "")}"
+ End If
+
+ DdlAlmacen.Items.Clear()
+ DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrAlmacenes) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
+ DdlAlmacen.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
+ DdlAlmacen.SelectedValue = "-1"
+ DdlAlmacen.DataBind()
+ DdlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen)
+
+ UpGenerales.Update()
End Sub
- '''
- ''' Recarga los almacenes [DdlAlmacen] que se pueden usar para el movimiento
- '''
- '''
- ''' Parametro sin espacios y separado por comas ["1,2,3,21"]
- Private Sub CargaAlmacenes(CveSubProyecto As Integer, Optional CveTiposAlmacen As String = "")
- Dim StrAlmacenes As String = ""
- If UsuarioActual.CveSubProyecto = 8804 Then 'AGS
- StrAlmacenes = $"CveTipoAlmacen IN ({If(CveTiposAlmacen.Length > 0, CveTiposAlmacen, "1,2,12,15")}) {If(CveSubProyecto > 0, $"And CveSubProyecto = {CveSubProyecto}", "")}"
- Else
- StrAlmacenes = $"CveTipoAlmacen IN ({If(CveTiposAlmacen.Length > 0, CveTiposAlmacen, "1,2,15,6")}) {If(CveSubProyecto > 0, $"And CveSubProyecto = {CveSubProyecto}", "")}"
+ Protected Sub DdlAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs)
+ If DdlAlmacen.SelectedValue <> "-1" Then
+ For Each Gvr As GridViewRow In GvInv.Rows
+ If Gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue = "-1" Then
+ Dim Dr As DataRow = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero($"CveAlmacen = {DdlAlmacen.SelectedValue}")
+ If Dr IsNot Nothing Then
+ Gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValueExist(Dr("CveSeccion"))
+ End If
+ End If
+ Next
+ UPInv.Update()
End If
-
- DdlAlmacen.Items.Clear()
- DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrAlmacenes) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
- DdlAlmacen.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
- DdlAlmacen.SelectedValue = "-1"
- DdlAlmacen.DataBind()
- DdlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen)
-
- UpGenerales.Update()
- End Sub
- Private Sub ConfiguraTipoRecepcion()
- DdlTipo.Items.Insert(0, New ListItem("Compra", "1"))
-
- If UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 Then
- DdlTipo.Items.Insert(1, New ListItem("OC", "2"))
- If UsuarioActual.Empresa.Funcionalidad(153).ToEntero > 0 Then
- DdlTipo.Items.RemoveAt(0)
- DdlTipo.SelectedValue = "2"
- ModalidadRecepcion()
- End If
- End If
-
- If UsuarioActual.Empresa.Funcionalidad(155).ToEntero > 0 Then
- DdlTipo.Items.Insert(DdlTipo.Items.Count - 1, New ListItem("Importación", "3"))
- End If
-
- If UsuarioActual.Empresa.Funcionalidad(158).ToEntero > 0 Then
- DdlTipo.Items.Insert(DdlTipo.Items.Count - 1, New ListItem("Costo Indirecto", "4"))
- End If
-
- UpFiltros.Update()
+ End Sub
+
+ Private Sub ConfiguraTipoRecepcion()
+ DdlTipo.Items.Insert(0, New ListItem("Compra", "1"))
+
+ If UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 Then
+ DdlTipo.Items.Insert(1, New ListItem("OC", "2"))
+ If UsuarioActual.Empresa.Funcionalidad(153).ToEntero > 0 Then
+ DdlTipo.Items.RemoveAt(0)
+ DdlTipo.SelectedValue = "2"
+ ModalidadRecepcion()
+ End If
+ End If
+
+ If UsuarioActual.Empresa.Funcionalidad(155).ToEntero > 0 Then
+ DdlTipo.Items.Insert(DdlTipo.Items.Count - 1, New ListItem("Importación", "3"))
+ End If
+
+ If UsuarioActual.Empresa.Funcionalidad(158).ToEntero > 0 Then
+ DdlTipo.Items.Insert(DdlTipo.Items.Count - 1, New ListItem("Costo Indirecto", "4"))
+ End If
+
+ UpFiltros.Update()
End Sub
#End Region
@@ -1088,131 +1103,196 @@ Partial Class Inventarios_RecepcionAlmacen
End Sub
#End Region
-#Region " GVINV "
- Private Sub CreaDTInv(TmDT As DataTable)
- TmDT.Columns.Add("CveAlmacen", GetType(Integer))
- TmDT.Columns.Add("PUExtranjero", GetType(Double))
- TmDT.Columns.Add("CostoIndirectoExtranjero", GetType(Double))
- TmDT.Columns.Add("Consec", GetType(Integer))
- TmDT.Columns.Add("CantidadSurtidaPantalla", GetType(Double))
- If Not TmDT.Columns.Contains("CostoIndirecto") Then
- TmDT.Columns.Add("CostoIndirecto", GetType(Double))
- End If
-
- GvInv.Columns(2).Visible = False
- GvInv.Columns(3).Visible = False
- GvInv.Columns(9).Visible = TmDT.SUM("CostoIndirecto") > 0
-
- Dim VariableCampo = If(TipoMovimiento.Contiene(1, 3), "CantidadF", "CantidadS")
-
- Dim Index = 1
- For Each Dr As DataRow In TmDT.Rows
- Dr("PUExtranjero") = Dr("PU")
- Dr("CostoIndirectoExtranjero") = Dr("CostoIndirecto")
- Dr("Consec") = Index
- Index += 1
- Dr("CantidadF") = Dr(VariableCampo)
-
- If Dr(VariableCampo).ToString.ToDecimal <> Dr("CantidadC").ToString.ToDecimal Then
- GvInv.Columns(3).Visible = True
+#Region " GVINV "
+ Private Sub CreaDTInv(TmDT As DataTable)
+ TmDT.Columns.Add("CveAlmacen", GetType(Integer))
+ TmDT.Columns.Add("PUExtranjero", GetType(Double))
+ TmDT.Columns.Add("CostoIndirectoExtranjero", GetType(Double))
+ TmDT.Columns.Add("Consec", GetType(Integer))
+ TmDT.Columns.Add("CantidadSurtidaPantalla", GetType(Double))
+ TmDT.Columns.Add("AplicaSeccion", GetType(Boolean))
+ TmDT.Columns.Add("AplicaSerie", GetType(Boolean))
+ TmDT.Columns.Add("AplicaLote", GetType(Boolean))
+ TmDT.Columns.Add("AplicaCaducidad", GetType(Boolean))
+ If Not TmDT.Columns.Contains("CostoIndirecto") Then
+ TmDT.Columns.Add("CostoIndirecto", GetType(Double))
+ End If
+ If Not TmDT.Columns.Contains("Lote") Then
+ TmDT.Columns.Add("Lote", GetType(String))
+ End If
+ If Not TmDT.Columns.Contains("CveSeccion") Then
+ TmDT.Columns.Add("CveSeccion", GetType(Integer))
+ End If
+ If Not TmDT.Columns.Contains("Caducidad") Then
+ TmDT.Columns.Add("Caducidad", GetType(Date))
+ End If
+ If Not TmDT.Columns.Contains("Seleccionado") Then
+ TmDT.Columns.Add("Seleccionado", GetType(Boolean))
+ End If
+ If Not TmDT.Columns.Contains("CantidadSeleccionada") Then
+ TmDT.Columns.Add("CantidadSeleccionada", GetType(Double))
+ End If
+
+
+ GvInv.Columns(2).Visible = False
+ GvInv.Columns(3).Visible = False
+ GvInv.Columns(9).Visible = TmDT.SUM("CostoIndirecto") > 0
+
+ Dim VariableCampo = If(TipoMovimiento.Contiene(1, 3), "CantidadF", "CantidadS")
+
+ Dim Index = 1
+ For Each Dr As DataRow In TmDT.Rows
+ Dr("PUExtranjero") = Dr("PU")
+ Dr("CostoIndirectoExtranjero") = Dr("CostoIndirecto")
+ Dr("Consec") = Index
+ Index += 1
+ Dr("CantidadF") = Dr(VariableCampo)
+
+ If Dr(VariableCampo).ToString.ToDecimal <> Dr("CantidadC").ToString.ToDecimal Then
+ GvInv.Columns(3).Visible = True
+ End If
+ Dr("Caducidad") = Now
+ Next
+
+ DtInv = TmDT '.FiltraParametros("CantidadF > 0")
+ dt = TmDT
+ If DtInv.SUM("CantidadS") > 0 Then
+ GvInv.Columns(2).Visible = True
+ End If
+
+ End Sub
+ Private Sub CargaGVInv()
+ If UsuarioActual.CveEmpresa = 119 Then
+ DtInv = DtInv.FiltraParametros("", "PS")
+ End If
+
+ For Each item As DataRow In DtInv.Rows
+ Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, item("CvePS").ToString.ToEntero).FiltroPrimero("")
+ If Dr IsNot Nothing Then
+ item("AplicaSeccion") = CBool(Dr("AplicaSeccion"))
+ If CBool(Dr("AplicaSeccion")) Then GvInv.Columns(10).Visible = True
+ item("AplicaSerie") = CBool(Dr("AplicaSerie"))
+ item("AplicaLote") = CBool(Dr("AplicaLote"))
+ If CBool(Dr("AplicaLote")) Then GvInv.Columns(11).Visible = True
+ item("AplicaCaducidad") = CBool(Dr("AplicaCaducidad"))
+ If CBool(Dr("AplicaCaducidad")) Then GvInv.Columns(12).Visible = True
+ If CBool(Dr("AplicaSeccion")) Or CBool(Dr("AplicaLote")) Or CBool(Dr("AplicaCaducidad")) Or CBool(Dr("AplicaSerie")) Then
+ GvInv.Columns(15).Visible = True
+ End If
End If
- Next
-
- DtInv = TmDT '.FiltraParametros("CantidadF > 0")
- dt = TmDT
- If DtInv.SUM("CantidadS") > 0 Then
- GvInv.Columns(2).Visible = True
- End If
-
- End Sub
- Private Sub CargaGVInv()
- If UsuarioActual.CveEmpresa = 119 Then
- DtInv = DtInv.FiltraParametros("", "PS")
- End If
- GvInv.DataSource = DtInv
- GvInv.DataBind()
- UPInv.Update()
- End Sub
- Protected Sub GVINV_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvInv.RowDataBound
-
+ Next
+
+ GvInv.DataSource = DtInv
+ GvInv.DataBind()
+ UPInv.Update()
+ End Sub
+ Protected Sub GVINV_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvInv.RowDataBound
+
If e.Row.RowType = DataControlRowType.DataRow Then
- If e.Row.DBCampo("CveMetodoInventario").ToString.Contiene("5", "6") Then
+ 'If e.Row.DBCampo("CveMetodoInventario").ToString.Contiene("5", "6") Then
- If e.Row.DBCampo("CveMetodoInventario").ToString = "5" Then
- e.Row.FCButton("BtnSerieLote").Visible = True
- e.Row.FCButton("BtnSerieLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec"))
+ If CBool(e.Row.DBCampo("AplicaSerie")) Then
- e.Row.FCTextBox("TbCantidadF").Enabled = False
- e.Row.FCCheckBox("cbInv").Enabled = False
- Dim Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count
- e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString
- ElseIf e.Row.DBCampo("CveMetodoInventario").ToString = "6" Then
- e.Row.FCButton("BtnLote").Visible = True
- e.Row.FCButton("BtnLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec"))
+ 'If e.Row.DBCampo("CveMetodoInventario").ToString = "5" Then
+ e.Row.FCButton("BtnSerieLote").Visible = True
+ e.Row.FCButton("BtnSerieLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec"))
- e.Row.FCTextBox("TbCantidadF").Enabled = False
- e.Row.FCCheckBox("cbInv").Enabled = False
- Dim Contador = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count
- e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString
- End If
-
- Else
- e.Row.FCButton("BtnSerieLote").Visible = False
- e.Row.FCButton("BtnLote").Visible = False
-
- e.Row.FCTextBox("TbCantidadF").Enabled = True
- e.Row.FCTextBox("TbCantidadF").Attributes.Add("onblur", String.Format("ValidarCantidad(this,{0})", e.Row.DBCampo("CantidadF")))
- e.Row.FCCheckBox("cbInv").Attributes.Add("onclick", String.Format("Check(this, {0}, {1});", e.Row.FCTextBox("TbCantidadF").ClientID, e.Row.DBCampo("CantidadF")))
-
- If e.Row.DBCampo("EntregaDirecta").ToString = "1" And TipoMovimiento = 1 Then
- e.Row.FCCheckBox("cbInv").Checked = True
- e.Row.FCCheckBox("cbInv").Enabled = False
- e.Row.FCTextBox("TbCantidadF").Text = e.Row.DBCampo("CantidadF").FormatoNumero
- e.Row.FCTextBox("TbCantidadF").Enabled = False
- End If
- End If
-
-
- 'FUNCIONALIDAD PISTOLA DE CODIGOS
- If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" And Not UsuarioActual.TienePermisoProceso(174) Then
e.Row.FCTextBox("TbCantidadF").Enabled = False
+ e.Row.FCCheckBox("cbInv").Enabled = False
+ Dim Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count
+ e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString
+ 'ElseIf e.Row.DBCampo("CveMetodoInventario").ToString = "6" Then
+ ' e.Row.FCButton("BtnLote").Visible = True
+ ' e.Row.FCButton("BtnLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec"))
+
+ ' e.Row.FCTextBox("TbCantidadF").Enabled = False
+ ' e.Row.FCCheckBox("cbInv").Enabled = False
+ ' Dim Contador = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count
+ ' e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString
+ 'End If
+
+ Else
+ e.Row.FCButton("BtnSerieLote").Visible = False
+ e.Row.FCButton("BtnLote").Visible = False
+
+ e.Row.FCTextBox("TbCantidadF").Enabled = True
+ e.Row.FCTextBox("TbCantidadF").Attributes.Add("onblur", String.Format("ValidarCantidad(this,{0})", e.Row.DBCampo("CantidadF")))
+ e.Row.FCCheckBox("cbInv").Attributes.Add("onclick", String.Format("Check(this, {0}, {1});", e.Row.FCTextBox("TbCantidadF").ClientID, e.Row.DBCampo("CantidadF")))
+
+ If e.Row.DBCampo("EntregaDirecta").ToString = "1" And TipoMovimiento = 1 Then
+ e.Row.FCCheckBox("cbInv").Checked = True
+ e.Row.FCCheckBox("cbInv").Enabled = False
+ e.Row.FCTextBox("TbCantidadF").Text = e.Row.DBCampo("CantidadF").FormatoNumero
+ e.Row.FCTextBox("TbCantidadF").Enabled = False
+ End If
End If
- If e.Row.DBCampo("CantidadF").ToDecimal = 0 Then
- e.Row.FCTextBox("TbCantidadF").Visible = False
- e.Row.Cells(3).Text = "0"
- e.Row.FCCheckBox("cbInv").Visible = False
+ If CBool(e.Row.DBCampo("AplicaSeccion")) Then
+ e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = True
+ Else
+ e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = False
+ End If
+
+ If CBool(e.Row.DBCampo("AplicaCaducidad")) Then
+ e.Row.FCTextBox("TxtCaducidad").Visible = True
+ e.Row.FCLinkButton("LnkCaducidad").Visible = True
+ e.Row.FCTextBox("TxtCaducidad").Text = Now.ToShortDateString
+ Else
+ e.Row.FCTextBox("TxtCaducidad").Visible = False
+ e.Row.FCLinkButton("LnkCaducidad").Visible = False
+ End If
+
+ If CBool(e.Row.DBCampo("AplicaLote")) Then
+ e.Row.FCTextBox("TxtLote").Visible = True
+ Else
+ e.Row.FCTextBox("TxtLote").Visible = False
+ End If
+
+ e.Row.FCButton("BtnDividir").Attributes.Add("onclick", String.Format("Dividir('{0}');", e.Row.FCTextBox("TxtDividir").ClientID))
+ e.Row.FCButton("BtnDividir").CommandArgument = e.Row.RowIndex.ToString
+ e.Row.FCTextBox("TxtDividir").Attributes.Add("onkeyup", String.Format("LimitaCantidad({0},this,'{1}');", e.Row.DBCampo("CantidadF"), e.Row.FCButton("BtnDividir").ClientID))
+
+
+ 'FUNCIONALIDAD PISTOLA DE CODIGOS
+ If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" And Not UsuarioActual.TienePermisoProceso(174) Then
+ e.Row.FCTextBox("TbCantidadF").Enabled = False
+ End If
+
+ If e.Row.DBCampo("CantidadF").ToDecimal = 0 Then
+ e.Row.FCTextBox("TbCantidadF").Visible = False
+ e.Row.Cells(3).Text = "0"
+ e.Row.FCCheckBox("cbInv").Visible = False
End If
'TotalGV += e.Row.DBCampo("PU").ToString.ToDecimal * e.Row.DBCampo("CantidadF").ToString.ToDecimal
- If UsuarioActual.Empresa.Funcionalidad(147) = "1" Then
- e.Row.FCDropDownList("DdlSeccionAlmacen").DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa)
- e.Row.FCDropDownList("DdlSeccionAlmacen").DataBind()
- e.Row.FCDropDownList("DdlSeccionAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1"))
- End If
-
- e.Row.FCLabel("LbTotal").Text = ((e.Row.DBCampo("PU").ToDecimal + e.Row.DBCampo("CostoIndirecto").ToDecimal) * e.Row.DBCampo("CantidadF").ToDecimal).FormatoNumero
-
- TotalGV += (e.Row.DBCampo("PU").ToDecimal + e.Row.DBCampo("CostoIndirecto").ToDecimal) * e.Row.DBCampo("CantidadF").ToDecimal
-
- End If
-
- If e.Row.RowType = DataControlRowType.Footer Then
- Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
-
- e.Row.FCLabel("LbTotal").Visible = TienePermisoImportes
-
- If TienePermisoImportes Then
- e.Row.FCLabel("LbTotal").Text = TotalGV.FormatoNumero
- TotalGV = 0.0D
- e.Row.Font.Bold = True
- e.Row.Cells(6).Text = "Total"
- e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right
- End If
-
- End If
+ 'If UsuarioActual.Empresa.Funcionalidad(147) = "1" Then
+ e.Row.FCDropDownList("DdlSeccionAlmacen").DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa)
+ e.Row.FCDropDownList("DdlSeccionAlmacen").DataBind()
+ e.Row.FCDropDownList("DdlSeccionAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1"))
+ 'End If
+
+ e.Row.FCLabel("LbTotal").Text = ((e.Row.DBCampo("PU").ToDecimal + e.Row.DBCampo("CostoIndirecto").ToDecimal) * e.Row.DBCampo("CantidadF").ToDecimal).FormatoNumero
+
+ TotalGV += (e.Row.DBCampo("PU").ToDecimal + e.Row.DBCampo("CostoIndirecto").ToDecimal) * e.Row.DBCampo("CantidadF").ToDecimal
+
+ End If
+
+ If e.Row.RowType = DataControlRowType.Footer Then
+ Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
+
+ e.Row.FCLabel("LbTotal").Visible = TienePermisoImportes
+
+ If TienePermisoImportes Then
+ e.Row.FCLabel("LbTotal").Text = TotalGV.FormatoNumero
+ TotalGV = 0.0D
+ e.Row.Font.Bold = True
+ e.Row.Cells(6).Text = "Total"
+ e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right
+ End If
+
+ End If
End Sub
#End Region
@@ -1327,234 +1407,234 @@ Partial Class Inventarios_RecepcionAlmacen
End Sub
#End Region
-#Region " AGREGA POR SERIE/LOTE "
- Protected Sub BtnSerieLote_Click(sender As Object, e As EventArgs)
-
- Dim Argumentos = CType(sender, Button).CommandArgument.Split("°"c)
-
- LbProducto.Text = Argumentos(3)
- LbCantidad.Text = Argumentos(4).FormatoNumero
- TxtFechaCaducidad.Text = Now.ToShortDateString()
-
- CvePSSerieLote = Argumentos(0).ToEntero
- CveUMSerieLote = Argumentos(1).ToEntero
- PUSerieLote = Argumentos(2).ToDecimal
- CveConsecSerieLote = Argumentos(5).ToEntero
-
- CargaSerie(1)
-
- End Sub
- Private Sub CreaDtDetalle()
- If DtDatosDetalle Is Nothing Then
- DtDatosDetalle = New DataTable
- DtDatosDetalle.Columns.Add("Consec", GetType(Integer))
- DtDatosDetalle.Columns.Add("ConsecId", GetType(Integer))
- DtDatosDetalle.Columns.Add("CvePS", GetType(Integer))
- DtDatosDetalle.Columns.Add("CveUM", GetType(Integer))
- DtDatosDetalle.Columns.Add("PU", GetType(Decimal))
- DtDatosDetalle.Columns.Add("Serie", GetType(String))
- DtDatosDetalle.Columns.Add("FechaCaducidad", GetType(String))
- End If
- End Sub
-
- Private Sub CargaSerie(Tipo As Integer, Optional CerrarCompletado As Boolean = False)
- 'RegistraScript("document.getElementById(""TxtSerieLote"").focus();")
- RegistraScript("$('#DivSerie').modal();", "ModalLote")
-
- Dim AplicaCaducidad = False
- If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0) IsNot Nothing Then
- AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False)
- End If
-
- If AplicaCaducidad Then
- GvSerie.Columns(1).Visible = True
- TdCaducidad1.Visible = True
- TdCaducidad2.Visible = True
- Else
- GvSerie.Columns(1).Visible = False
- TdCaducidad1.Visible = False
- TdCaducidad2.Visible = False
- End If
-
- GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerieLote), "Consec DESC")
- GvSerie.DataBind()
-
- 'VALIDA QUE SIGA AGREGANDO
- If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerieLote)).Rows.Count < LbCantidad.Text.ToEntero Then
- BtnAgregarPS.Enabled = False
- If CerrarCompletado Then
- RegistraScript("$('#DivSerie').modal('hide');")
- End If
- Else
- BtnAgregarPS.Enabled = True
- End If
-
- 'SI TIENE ENTRADA POR SERIE LOTE, BLOQUEAMOS CHECK Y TXTCANTIDAD
- Dim Contador = 0
- For Each Gvr As GridViewRow In GvInv.Rows
- If Gvr.DataKey("CvePS").ToEntero = CvePSSerieLote Then
- Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr.DataKey("Consec"))).Rows.Count
- Gvr.FCCheckBox("cbInv").Enabled = False
- Gvr.FCTextBox("TbCantidadF").Enabled = False
- If DtDatosDetalle IsNot Nothing AndAlso Contador > 0 Then
- Gvr.FCCheckBox("cbInv").Checked = True
- Gvr.FCTextBox("TbCantidadF").Text = Contador.ToString
- ElseIf Gvr.DataKey("CantidadF").ToString.ToDecimal <> 0 Then
- Gvr.FCCheckBox("cbInv").Checked = False
- Gvr.FCTextBox("TbCantidadF").Text = "0"
- End If
- End If
-
- Dim Dr = DtInv.Select($"Consec = {Gvr.DataKey("Consec")}")(0)
- Dr("CantidadSurtidaPantalla") = Gvr.FCTextBox("TbCantidadF").Text.ToDouble
- DtInv.AcceptChanges()
- Next
-
-
- UPInv.Update()
- UpSerie.Update()
- TxtSerieLote.Text = ""
- TxtSerieLote.Focus()
-
- If Tipo = 1 Then
- RegistraScript(String.Format("$('#{0}').on('shown.bs.modal', function () {{$('#{0}').focus(); $('#{0}').trigger(jQuery.Event('keypress', {{which: 13}})); }});$('#DivSerie').modal('show'); ", TxtSerieLote.ClientID))
- End If
-
- End Sub
- Protected Sub BtnAgregarPS_Click(sender As Object, e As EventArgs)
- AgregaSerieLote(TxtSerieLote.Text.Replace(" ", String.Empty), 1)
- End Sub
- Private Sub AgregaSerieLote(SerieLote As String, Tipo As Integer)
- 'SerieLote = SerieLote.Trim.Replace(" ", " ")
-
- If SerieLote.Trim = "" Then
- Alert("El campo Serie es obligatorio. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
-
- Dim SeriesArreglo = SerieLote.Trim.Split(";"c)
-
- 'VALIDACION DE SERIES DUPLICADAS
- Dim MensajeAlert As New StringBuilder
- Dim DtDuplicado As New DataTable
- Dim DtSeriesNuevas As New DataTable
- DtSeriesNuevas.Columns.Add("Serie", GetType(String))
-
- 'PARA VALIDAR SI LA SERIE ES IGUAL AL CODIGO O CODIGOBARRAS
- Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltroPrimero("", "PS")
-
- For Each Serie In SeriesArreglo
- DtDuplicado = DtDatosDetalle.FiltraParametros($"ConsecId = {CveConsecSerieLote} AND Serie = '{Serie}'")
- If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then
- MensajeAlert.Append($" El numero de Serie ""{Serie}"" proporcionado ya se encuentra ingresado.")
- Continue For
- End If
-
- DtDuplicado = DtSeriesNuevas.FiltraParametros($"Serie = '{Serie}'")
- If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then
- MensajeAlert.Append($" El numero de Serie ""{Serie}"" proporcionado se encuentra duplicado.")
- Continue For
- End If
-
- 'PARA VALIDAR SI LA SERIE ES IGUAL AL CODIGO O CODIGOBARRAS
- If Serie.ToUpper = dr("Codigo").ToString.ToUpper Or Serie.ToUpper = dr("CodigoBarras").ToString.ToUpper Then
- MensajeAlert.Append($" El numero de Serie {Serie} coincide con el codigo o codigo de barras del producto. Por favor rectifique y vuelva a intentar.")
- Continue For
- End If
-
- Dim Row = DtSeriesNuevas.NewRow
- Row("Serie") = Serie
- DtSeriesNuevas.Rows.Add(Row)
- Next
-
- If MensajeAlert.ToString <> "" Then
- Alert(MensajeAlert.ToString, TipoMensaje.MsgAdvertencia)
- RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
- Exit Sub
- End If
-
-
- Dim MensajeSinExistencias As New StringBuilder
- Dim ObjInventarios As New ClsInventarios
- Dim Index = 0
-
- For Each Serie In SeriesArreglo
- Dim Row = DtDatosDetalle.NewRow
-
- Index = Index + 1
- If Index > LbCantidad.Text.ToEntero Then
- Exit For
- End If
-
- 'VALIDA QUE SIGA AGREGANDO
- If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerieLote)).Rows.Count < LbCantidad.Text.ToEntero Then
- Exit For
- End If
-
- 'VERIFICA EXISTENCIAS
- If TipoMovimiento > 1 Then
- Dim Existencia = ObjInventarios.GetExistenciasPS(CvePSSerieLote, CveUMSerieLote, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Serie)
- If Existencia < 1 Then
- MensajeSinExistencias.Append($"Serie: {Serie}. ")
- Continue For
- End If
-
- If TipoMovimiento = 2 Then
- If DtExistencias.SUM("Existencia", $"SerieLote = {Serie}") = 0 Then
- MensajeSinExistencias.Append($"Serie: {Serie}. ")
- Continue For
- End If
- End If
- End If
-
- Dim AplicaCaducidad = False
- If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0) IsNot Nothing Then
- AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False)
- End If
-
- Row("ConsecId") = CveConsecSerieLote
- Row("Consec") = DtDatosDetalle.Rows.Count + 1
- Row("CvePS") = CvePSSerieLote
- Row("CveUM") = CveUMSerieLote
- Row("PU") = PUSerieLote
- Row("Serie") = Serie
- Row("FechaCaducidad") = If(AplicaCaducidad, TxtFechaCaducidad.Text, MinFecha.ToShortDateString)
-
- DtDatosDetalle.Rows.Add(Row)
- Next
- ObjInventarios.Dispose()
-
- If Tipo = 1 Then
- TxtSerieLote.Text = ""
- TxtFechaCaducidad.Text = Now.ToShortDateString
- End If
-
- CargaSerie(Tipo, True)
-
- If MensajeAlert.ToString <> "" Then
- RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
- Else
- If MensajeSinExistencias.ToString <> "" Then
- Alert($"Las siguientes Series no cuentan con la existencia suficiente por lo cual se omitieron.
{MensajeSinExistencias.ToString}", TipoMensaje.MsgAdvertencia)
- End If
- RegistraScript("playsonidito('beep-07.wav')")
- End If
-
- End Sub
-
- Protected Sub GvSerie_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvSerie.RowDeleting
- Dim keySerieLote As String = e.Keys("Serie").ToString
- Try
- For Each dr As DataRow In DtDatosDetalle.Rows
- If dr("Serie").ToString = keySerieLote Then
- dr.Delete()
- End If
- Next
- Catch ex As Exception
-
- End Try
-
- DtDatosDetalle.AcceptChanges()
+#Region " AGREGA POR SERIE/LOTE "
+ Protected Sub BtnSerieLote_Click(sender As Object, e As EventArgs)
+
+ Dim Argumentos = CType(sender, Button).CommandArgument.Split("°"c)
+
+ LbProducto.Text = Argumentos(3)
+ LbCantidad.Text = Argumentos(4).FormatoNumero
+ TxtFechaCaducidad.Text = Now.ToShortDateString()
+
+ CvePSSerieLote = Argumentos(0).ToEntero
+ CveUMSerieLote = Argumentos(1).ToEntero
+ PUSerieLote = Argumentos(2).ToDecimal
+ CveConsecSerieLote = Argumentos(5).ToEntero
+
+ CargaSerie(1)
+
+ End Sub
+ Private Sub CreaDtDetalle()
+ If DtDatosDetalle Is Nothing Then
+ DtDatosDetalle = New DataTable
+ DtDatosDetalle.Columns.Add("Consec", GetType(Integer))
+ DtDatosDetalle.Columns.Add("ConsecId", GetType(Integer))
+ DtDatosDetalle.Columns.Add("CvePS", GetType(Integer))
+ DtDatosDetalle.Columns.Add("CveUM", GetType(Integer))
+ DtDatosDetalle.Columns.Add("PU", GetType(Decimal))
+ DtDatosDetalle.Columns.Add("Serie", GetType(String))
+ DtDatosDetalle.Columns.Add("FechaCaducidad", GetType(String))
+ End If
+ End Sub
+
+ Private Sub CargaSerie(Tipo As Integer, Optional CerrarCompletado As Boolean = False)
+ 'RegistraScript("document.getElementById(""TxtSerieLote"").focus();")
+ RegistraScript("$('#DivSerie').modal();", "ModalLote")
+
+ 'Dim AplicaCaducidad = False
+ 'If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0) IsNot Nothing Then
+ ' AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False)
+ 'End If
+
+ 'If AplicaCaducidad Then
+ ' GvSerie.Columns(1).Visible = True
+ ' TdCaducidad1.Visible = True
+ ' TdCaducidad2.Visible = True
+ 'Else
+ ' GvSerie.Columns(1).Visible = False
+ ' TdCaducidad1.Visible = False
+ ' TdCaducidad2.Visible = False
+ 'End If
+
+ GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerieLote), "Consec DESC")
+ GvSerie.DataBind()
+
+ 'VALIDA QUE SIGA AGREGANDO
+ If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerieLote)).Rows.Count < LbCantidad.Text.ToEntero Then
+ BtnAgregarPS.Enabled = False
+ If CerrarCompletado Then
+ RegistraScript("$('#DivSerie').modal('hide');")
+ End If
+ Else
+ BtnAgregarPS.Enabled = True
+ End If
+
+ 'SI TIENE ENTRADA POR SERIE LOTE, BLOQUEAMOS CHECK Y TXTCANTIDAD
+ Dim Contador = 0
+ For Each Gvr As GridViewRow In GvInv.Rows
+ If Gvr.DataKey("CvePS").ToEntero = CvePSSerieLote Then
+ Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr.DataKey("Consec"))).Rows.Count
+ Gvr.FCCheckBox("cbInv").Enabled = False
+ Gvr.FCTextBox("TbCantidadF").Enabled = False
+ If DtDatosDetalle IsNot Nothing AndAlso Contador > 0 Then
+ Gvr.FCCheckBox("cbInv").Checked = True
+ Gvr.FCTextBox("TbCantidadF").Text = Contador.ToString
+ ElseIf Gvr.DataKey("CantidadF").ToString.ToDecimal <> 0 Then
+ Gvr.FCCheckBox("cbInv").Checked = False
+ Gvr.FCTextBox("TbCantidadF").Text = "0"
+ End If
+ End If
+
+ Dim Dr = DtInv.Select($"Consec = {Gvr.DataKey("Consec")}")(0)
+ Dr("CantidadSurtidaPantalla") = Gvr.FCTextBox("TbCantidadF").Text.ToDouble
+ DtInv.AcceptChanges()
+ Next
+
+
+ UPInv.Update()
+ UpSerie.Update()
+ TxtSerieLote.Text = ""
+ TxtSerieLote.Focus()
+
+ If Tipo = 1 Then
+ RegistraScript(String.Format("$('#{0}').on('shown.bs.modal', function () {{$('#{0}').focus(); $('#{0}').trigger(jQuery.Event('keypress', {{which: 13}})); }});$('#DivSerie').modal('show'); ", TxtSerieLote.ClientID))
+ End If
+
+ End Sub
+ Protected Sub BtnAgregarPS_Click(sender As Object, e As EventArgs)
+ AgregaSerieLote(TxtSerieLote.Text.Replace(" ", String.Empty), 1)
+ End Sub
+ Private Sub AgregaSerieLote(SerieLote As String, Tipo As Integer)
+ 'SerieLote = SerieLote.Trim.Replace(" ", " ")
+
+ If SerieLote.Trim = "" Then
+ Alert("El campo Serie es obligatorio. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ Dim SeriesArreglo = SerieLote.Trim.Split(";"c)
+
+ 'VALIDACION DE SERIES DUPLICADAS
+ Dim MensajeAlert As New StringBuilder
+ Dim DtDuplicado As New DataTable
+ Dim DtSeriesNuevas As New DataTable
+ DtSeriesNuevas.Columns.Add("Serie", GetType(String))
+
+ 'PARA VALIDAR SI LA SERIE ES IGUAL AL CODIGO O CODIGOBARRAS
+ Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltroPrimero("", "PS")
+
+ For Each Serie In SeriesArreglo
+ DtDuplicado = DtDatosDetalle.FiltraParametros($"ConsecId = {CveConsecSerieLote} AND Serie = '{Serie}'")
+ If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then
+ MensajeAlert.Append($" El numero de Serie ""{Serie}"" proporcionado ya se encuentra ingresado.")
+ Continue For
+ End If
+
+ DtDuplicado = DtSeriesNuevas.FiltraParametros($"Serie = '{Serie}'")
+ If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then
+ MensajeAlert.Append($" El numero de Serie ""{Serie}"" proporcionado se encuentra duplicado.")
+ Continue For
+ End If
+
+ 'PARA VALIDAR SI LA SERIE ES IGUAL AL CODIGO O CODIGOBARRAS
+ If Serie.ToUpper = dr("Codigo").ToString.ToUpper Or Serie.ToUpper = dr("CodigoBarras").ToString.ToUpper Then
+ MensajeAlert.Append($" El numero de Serie {Serie} coincide con el codigo o codigo de barras del producto. Por favor rectifique y vuelva a intentar.")
+ Continue For
+ End If
+
+ Dim Row = DtSeriesNuevas.NewRow
+ Row("Serie") = Serie
+ DtSeriesNuevas.Rows.Add(Row)
+ Next
+
+ If MensajeAlert.ToString <> "" Then
+ Alert(MensajeAlert.ToString, TipoMensaje.MsgAdvertencia)
+ RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
+ Exit Sub
+ End If
+
+
+ Dim MensajeSinExistencias As New StringBuilder
+ Dim ObjInventarios As New ClsInventarios
+ Dim Index = 0
+
+ For Each Serie In SeriesArreglo
+ Dim Row = DtDatosDetalle.NewRow
+
+ Index = Index + 1
+ If Index > LbCantidad.Text.ToEntero Then
+ Exit For
+ End If
+
+ 'VALIDA QUE SIGA AGREGANDO
+ If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerieLote)).Rows.Count < LbCantidad.Text.ToEntero Then
+ Exit For
+ End If
+
+ 'VERIFICA EXISTENCIAS
+ If TipoMovimiento > 1 Then
+ Dim Existencia = ObjInventarios.GetExistenciasPS(CvePSSerieLote, CveUMSerieLote, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Serie)
+ If Existencia < 1 Then
+ MensajeSinExistencias.Append($"Serie: {Serie}. ")
+ Continue For
+ End If
+
+ If TipoMovimiento = 2 Then
+ If DtExistencias.SUM("Existencia", $"SerieLote = {Serie}") = 0 Then
+ MensajeSinExistencias.Append($"Serie: {Serie}. ")
+ Continue For
+ End If
+ End If
+ End If
+
+ 'Dim AplicaCaducidad = False
+ 'If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0) IsNot Nothing Then
+ ' AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False)
+ 'End If
+
+ Row("ConsecId") = CveConsecSerieLote
+ Row("Consec") = DtDatosDetalle.Rows.Count + 1
+ Row("CvePS") = CvePSSerieLote
+ Row("CveUM") = CveUMSerieLote
+ Row("PU") = PUSerieLote
+ Row("Serie") = Serie
+ Row("FechaCaducidad") = MinFecha.ToShortDateString
+
+ DtDatosDetalle.Rows.Add(Row)
+ Next
+ ObjInventarios.Dispose()
+
+ If Tipo = 1 Then
+ TxtSerieLote.Text = ""
+ TxtFechaCaducidad.Text = Now.ToShortDateString
+ End If
+
+ CargaSerie(Tipo, True)
+
+ If MensajeAlert.ToString <> "" Then
+ RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
+ Else
+ If MensajeSinExistencias.ToString <> "" Then
+ Alert($"Las siguientes Series no cuentan con la existencia suficiente por lo cual se omitieron.
{MensajeSinExistencias.ToString}", TipoMensaje.MsgAdvertencia)
+ End If
+ RegistraScript("playsonidito('beep-07.wav')")
+ End If
+
+ End Sub
+
+ Protected Sub GvSerie_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvSerie.RowDeleting
+ Dim keySerieLote As String = e.Keys("Serie").ToString
+ Try
+ For Each dr As DataRow In DtDatosDetalle.Rows
+ If dr("Serie").ToString = keySerieLote Then
+ dr.Delete()
+ End If
+ Next
+ Catch ex As Exception
+
+ End Try
+
+ DtDatosDetalle.AcceptChanges()
CargaSerie(1)
End Sub
@@ -2092,7 +2172,7 @@ Partial Class Inventarios_RecepcionAlmacen
PU = Math.Round((TotalCompraOC * If(TipoCambio > 1, TipoCambio, 1)), 2).ToDecimal - (SumaTotal - (PU))
End If
End If
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), SerieLote:=Dr("Serie").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), SerieLote:=Dr("Serie").ToString, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), Lote:=If(CBool(gvr.DataKey("AplicaLote")), gvr.FCTextBox("TxtLote").Text, ""), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then
ErrorMovInv = True
Exit For
End If
@@ -2107,7 +2187,7 @@ Partial Class Inventarios_RecepcionAlmacen
PU = (Math.Round((TotalCompraOC * If(TipoCambio > 1, TipoCambio, 1)), 2).ToDecimal - (SumaTotal - (Dr("Cantidad").ToString.ToDecimal * (PU)))) / Dr("Cantidad").ToString.ToDecimal
End If
End If
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then
ErrorMovInv = True
Exit For
End If
@@ -2122,7 +2202,7 @@ Partial Class Inventarios_RecepcionAlmacen
PU = (Math.Round((TotalCompraOC * If(TipoCambio > 1, TipoCambio, 1)), 2).ToDecimal - (SumaTotal - tTotal)) / gvr.FCTextBox("TbCantidadF").Text.ToDecimal
End If
End If
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, gvr.FCTextBox("TbCantidadF").Text.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, gvr.FCTextBox("TbCantidadF").Text.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), Lote:=If(CBool(gvr.DataKey("AplicaLote")), gvr.FCTextBox("TxtLote").Text, ""), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then
ErrorMovInv = True
Exit For
End If
@@ -2793,306 +2873,306 @@ Partial Class Inventarios_RecepcionAlmacen
If CveMovimientoVirtual > 0 Then
link = String.Format("{1}", CveMovimientoVirtual, FolioVirtual)
Msg.AppendFormat(" Movimiento de Entrada al Almacen Virtual: Folio: {0}", link)
- Msg.AppendFormat(" Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoVirtual)))
-
- End If
-
- 'CONTABILIDAD
- Msg.Append(MensajeContabilidad)
-
- Alert(Msg.ToString, TipoMensaje.MsgInformacion)
-
- If ObjInventario.RecepcionAlmacenGet(CveCompraSurtir, -1, UsuarioActual.CveEmpresa) Then
- CreaDTInv(ObjInventario.DtResultados)
- CargaGVInv()
- BtnGuardar.Visible = True
- End If
- Limpia()
-
- Else
- ObjInventario.RollBack()
- If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack()
- If ObjContaContPAQ IsNot Nothing Then ObjContaContPAQ.RollBack()
- RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
- Alert($"Ocurrió un error al guardar el movimiento de almacén. Por favor vuelva a intentar.
{MensajeError}", TipoMensaje.MsgError)
- End If
-
- ObjInventario.Dispose()
- If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose()
- If ObjContaContPAQ IsNot Nothing Then ObjContaContPAQ.Dispose()
- End Sub
- Private Sub GuardaImportacionFlete()
- Dim CveMovimiento As Integer
- Dim InvFolio As String = ""
- Dim FechaMovto As Date = TxtFecha.Text.ToDate
- Dim ErrorMovInv As Boolean
- Dim MensajeError = ""
-
- Dim ObjInventario As New ClsInventarios
- Dim ObjBitacora As New ClsOIEventos(ObjInventario.IniciaTransacSQL())
- Dim ObjCompras As New ClsCompras(ObjInventario.IniciaTransacSQL())
- Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
- Dim ObjOC As New ClsOC(ObjInventario.IniciaTransacSQL())
- Dim ObjContaAC As ClsContPAQi = Nothing
-
- 'ENTRADA ALMACÉN
- CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 2, 1, FechaMovto, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveImportacionCompra, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, TipoCambio:=-1, Remision:=TxtRemision.Text, Modulo:="RA/G")
- If CveMovimiento > 0 Then
- InvFolio = ObjInventario.Folio.ToString
- Dim DtDetalle As New DataTable
- Dim DtDetalleLote As New DataTable
- Dim PU As Decimal = 0
- Dim CostoIndirecto As Decimal = 0
- Dim PUExtranjero As Decimal = 0
- For Each gvr As GridViewRow In GvInv.Rows
- If gvr.FCCheckBox("cbInv").Checked AndAlso gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then
-
- PU = DtInv.Rows(gvr.RowIndex)("PU").ToString.ToDecimal
- CostoIndirecto = DtInv.Rows(gvr.RowIndex)("CostoIndirecto").ToString.ToDecimal
- PUExtranjero = DtInv.Rows(gvr.RowIndex)("PUExtranjero").ToString.ToDecimal
-
- 'SI FUE POR SERIE LOTE
- DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero))
- DtDetalleLote = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero))
- If DtDetalle.Rows.Count > 0 Then
- For Each Dr As DataRow In DtDetalle.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), SerieLote:=Dr("Serie").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto) Then
- ErrorMovInv = True
- Exit For
- End If
- Next
- ElseIf DtDetalleLote.Rows.Count > 0 Then
- For Each Dr As DataRow In DtDetalleLote.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto) Then
- ErrorMovInv = True
- Exit For
- End If
- Next
- Else
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, gvr.FCTextBox("TbCantidadF").Text.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto) Then
- ErrorMovInv = True
- Exit For
- End If
- End If
-
- End If
- Next
- Else
- ErrorMovInv = True
- End If
-
- 'AGREGA BITACORA TEMPORAL
- If DtBitacora IsNot Nothing AndAlso DtBitacora.Rows.Count > 0 Then
- ErrorMovInv = GuardaBitacoraTemporal(ObjBitacora, CveMovimiento)
- End If
- Dim CvePrePoliza As Integer = 0
- Dim UsaComplementariaCostoIndirecto As Boolean = False
- If UsuarioActual.CveEmpresa = 119 Then UsaComplementariaCostoIndirecto = False
- Dim PorcentajeCompraImportacion As Decimal = 0 ' si hay mas de una factura de importación saber lo que se está recibiendo
-
- 'SE REGISTRAN LAS PREPOLIZAS
- If Not ErrorMovInv Then
- CvePrePoliza = ObjConta.AddPrePolizas("Inventario/RecepcionAlmacen CostoInd", 74, 0, 0, 1, FechaMovto, TxtObservaciones.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
- Dim DtTempCompras As DataTable = Nothing
- PorcentajeCompraImportacion = 1
- If CveFleteSurtir > 0 Then
- If ObjInventario.GetFleteDetalle(CveFleteSurtir) Then
- DtTempCompras = ObjInventario.DtResultados
- ' faltaría agregar la factura de producto,
- If ObjCompras.GetCompras(CveFleteCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then
- Dim drc As DataRow = DtTempCompras.NewRow
- Dim drr As DataRow = ObjCompras.DtResultados.FiltroPrimero("")
- If drr IsNot Nothing Then
- drc("CveCompra") = CveFleteCompra
- drc("SubTotal") = drr("SubTotal")
- drc("TipoCambio") = drr("TipoCambio")
- drc("CveProveedor") = drr("CveProveedor")
- DtTempCompras.Rows.Add(drc)
- End If
-
- End If
-
- Else
- ErrorMovInv = True
- End If
- Else
-
- If CveImportacionSurtir > 0 Then
-
- If ObjCompras.GetImportacionesDetalle(CveImportacionSurtir, -1) Then
- DtTempCompras = ObjCompras.DtResultados
- Dim CveCompraImportacion As Integer = -1
- If (DdlFactura.SelectedValue.ToEntero > 0) Then CveCompraImportacion = DdlFactura.SelectedValue.ToEntero
-
- If ObjCompras.GetImportacionCompras(CveImportacionSurtir, CveCompraImportacion) Then
- For Each drt As DataRow In ObjCompras.DtResultados.Rows
- PorcentajeCompraImportacion = If(CveCompraImportacion > 0, drt("PorcentajeCompra").ToString.ToDecimal, 1)
- Dim drc As DataRow = DtTempCompras.NewRow
- drc("CveCompra") = drt("CveCompra")
- drc("SubTotal") = drt("SubTotal")
- drc("TipoCambio") = drt("TipoCambio")
- drc("CveProveedor") = drt("CveProveedor")
- DtTempCompras.Rows.Add(drc)
- Next
-
- End If
-
-
-
- Else
- ErrorMovInv = True
- End If
- End If
- End If
- If CvePrePoliza > 0 Then
- Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
- Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
- ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa)
- Dim TotalCosto As Decimal = ObjInventario.DtResultados.SUMD("Total").RoundSQL()
- Dim IdCtaContableCostoInd As Integer = 0
-
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto, InvFolio, 68, InvFolio, FechaMovto, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
- 'se recorren las facturas a descontar el recepción
- If DtTempCompras IsNot Nothing AndAlso DtTempCompras.Rows.Count > 0 Then
-
- For Each dr As DataRow In DtTempCompras.Rows
- Dim CveComp As Integer = dr("CveCompra").ToString.ToEntero
- 'el porcentaje solo aplica a las facturas de costo indirecto
- Dim SubTotalPartida As Decimal = dr("SubTotal").ToString.ToDecimal * If(dr("TipoCompra").ToString = "CI", PorcentajeCompraImportacion, 1)
- Dim ImporteAbono As Decimal = (SubTotalPartida * dr("TipoCambio").ToString.ToDecimal).RoundSQL
- Dim ImporteAbonoME As Decimal = 0
- Dim CveConceptoCostoIndirecto As Integer = If(CveImportacionSurtir > 0, 240, 237)
-
- If ObjConta.GetRetCuenta(CveConceptoCostoIndirecto, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContableCostoInd = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
- End If
-
- If UsaComplementariaCostoIndirecto Then
- CveConceptoCostoIndirecto = If(CveImportacionSurtir > 0, 241, 238)
- ImporteAbono = SubTotalPartida
- ImporteAbonoME = (SubTotalPartida * dr("TipoCambio").ToString.ToDecimal) - SubTotalPartida
- End If
-
-
-
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteAbono, InvFolio, CveConceptoCostoIndirecto, InvFolio, FechaMovto, IdCtaContableCostoInd, -1, CveCompra:=CveComp, CveProveedor:=dr("CveProveedor").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ImporteAbono) Then
- ' si tiene valor es que hay complementaria
- If ImporteAbonoME > 0 Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteAbono, InvFolio, If(CveImportacionSurtir > 0, 242, 239), InvFolio, FechaMovto, IdCtaContableCostoInd, -1, CveCompra:=CveComp, CveProveedor:=dr("CveProveedor").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ImporteAbono) Then
- ErrorMovInv = True
- End If
- End If
- Else
- ErrorMovInv = True
- End If
- Next
-
- End If
- End If
-
-
- Else
- ErrorMovInv = True
- End If
- End If
-
- If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, -1) Then
- If ObjConta.ValorPolizaDescuadre > 0 Then
- GuardaLogAD($"Inventarios/RecepcionAlmacen-PPCompOC | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
- ErrorMovInv = True
- End If
- End If
-
- If Not ErrorMovInv AndAlso UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
- ObjContaAC = New ClsContPAQi(UsuarioActual.Empresa)
- ObjContaAC.IniciaTransacSQL()
- If ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaAC) Then
- MensajeError = $" Movimiento contabilizado en el folio: {ObjConta.ContaFolio} "
- Else
- ErrorMovInv = True
- MensajeError = "Error al contabilizar los conceptos contables"
- End If
- End If
-
-
- 'FINAL
- If Not ErrorMovInv Then
- ObjInventario.Commit() ' aplica los movimientos insertados
- If ObjContaAC IsNot Nothing Then ObjContaAC.Commit()
- RegistraScript("playsonidito('beep-07.wav')")
-
- Dim Msg As New StringBuilder
- Dim link As String = String.Format("{1}", CveMovimiento, InvFolio)
- Msg.AppendFormat("Movimiento Registrado: Folio: {0}", link)
- Msg.AppendFormat(" Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento)))
-
- Alert(Msg.ToString, TipoMensaje.MsgInformacion)
-
- Limpia()
- Else
- ObjInventario.RollBack()
- If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack()
- RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
- GuardaLog(MensajeError)
- Alert("Error al guardar el movimiento de almacen. Por favor vuelva a intentar.", TipoMensaje.MsgError)
- End If
-
- ObjInventario.Dispose()
- If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose()
- End Sub
- Private Sub Limpia()
- CveCompraSurtir = -1
- CvePrePolizaCompra = -1
- CveOCSurtir = -1
- CveImportacionSurtir = -1
- CveImportacionProveedor = -1
- CveImportacionCompra = -1
- BuscaEntregaDirecta = -1
- DivAdvertencia.Visible = False
- EntregaDirecta = False
- DtInv = Nothing
- CargaGVInv()
- TxtObservaciones.Text = ""
- TxtOC.Text = ""
- TxtFecha.Text = Now.ToShortDateString
- DdlAlmacen.SelectedValueExist(-1)
- TxtRemision.Text = ""
-
- 'ddlProveedor.SelectedValueExist(-1)
- ddlProveedor.SelectedValue = "-1"
- DdlFolio.Items.Clear()
- DdlFolio.Items.Insert(0, New ListItem("Seleccione", "-1"))
- DdlFolioOC.Items.Clear()
- DdlFolioOC.Items.Insert(0, New ListItem("Seleccione", "-1"))
- DdlFolioImportacion.Items.Clear()
- DdlFolioImportacion.Items.Insert(0, New ListItem("Seleccione", "-1"))
- CargaFoliosRecepcion()
-
- DtBitacora.Clear()
- DivBitacora.Visible = False
- CargaEventoBitacoraTemp()
-
- DdlMonedaTC.SelectedValueExist("1")
- TipoCambio = 0
- 'TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString
- DivTipoCambio.Visible = False
-
- DivAdvertencia.Visible = False
-
- UpTipoCambio.Update()
- UPInv.Update()
- UpGenerales.Update()
- UpFiltros.Update()
-
- HLFolio.Text = ""
- HLFolio.NavigateUrl = "#"
- LbProveedor.Text = ""
- LbDescripcionCompra.Text = ""
- UpDatosCompra.Update()
- CargaPendientes()
-
- End Sub
- Private Function GuardaPrePoliza() As Boolean
+ Msg.AppendFormat(" Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoVirtual)))
+
+ End If
+
+ 'CONTABILIDAD
+ Msg.Append(MensajeContabilidad)
+
+ Alert(Msg.ToString, TipoMensaje.MsgInformacion)
+
+ If ObjInventario.RecepcionAlmacenGet(CveCompraSurtir, -1, UsuarioActual.CveEmpresa) Then
+ CreaDTInv(ObjInventario.DtResultados)
+ CargaGVInv()
+ BtnGuardar.Visible = True
+ End If
+ Limpia()
+
+ Else
+ ObjInventario.RollBack()
+ If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack()
+ If ObjContaContPAQ IsNot Nothing Then ObjContaContPAQ.RollBack()
+ RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
+ Alert($"Ocurrió un error al guardar el movimiento de almacén. Por favor vuelva a intentar.
{MensajeError}", TipoMensaje.MsgError)
+ End If
+
+ ObjInventario.Dispose()
+ If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose()
+ If ObjContaContPAQ IsNot Nothing Then ObjContaContPAQ.Dispose()
+ End Sub
+ Private Sub GuardaImportacionFlete()
+ Dim CveMovimiento As Integer
+ Dim InvFolio As String = ""
+ Dim FechaMovto As Date = TxtFecha.Text.ToDate
+ Dim ErrorMovInv As Boolean
+ Dim MensajeError = ""
+
+ Dim ObjInventario As New ClsInventarios
+ Dim ObjBitacora As New ClsOIEventos(ObjInventario.IniciaTransacSQL())
+ Dim ObjCompras As New ClsCompras(ObjInventario.IniciaTransacSQL())
+ Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
+ Dim ObjOC As New ClsOC(ObjInventario.IniciaTransacSQL())
+ Dim ObjContaAC As ClsContPAQi = Nothing
+
+ 'ENTRADA ALMACÉN
+ CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 2, 1, FechaMovto, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveImportacionCompra, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, TipoCambio:=-1, Remision:=TxtRemision.Text, Modulo:="RA/G")
+ If CveMovimiento > 0 Then
+ InvFolio = ObjInventario.Folio.ToString
+ Dim DtDetalle As New DataTable
+ Dim DtDetalleLote As New DataTable
+ Dim PU As Decimal = 0
+ Dim CostoIndirecto As Decimal = 0
+ Dim PUExtranjero As Decimal = 0
+ For Each gvr As GridViewRow In GvInv.Rows
+ If gvr.FCCheckBox("cbInv").Checked AndAlso gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then
+
+ PU = DtInv.Rows(gvr.RowIndex)("PU").ToString.ToDecimal
+ CostoIndirecto = DtInv.Rows(gvr.RowIndex)("CostoIndirecto").ToString.ToDecimal
+ PUExtranjero = DtInv.Rows(gvr.RowIndex)("PUExtranjero").ToString.ToDecimal
+
+ 'SI FUE POR SERIE LOTE
+ DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero))
+ DtDetalleLote = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero))
+ If DtDetalle.Rows.Count > 0 Then
+ For Each Dr As DataRow In DtDetalle.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), SerieLote:=Dr("Serie").ToString, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), Lote:=If(CBool(gvr.DataKey("AplicaLote")), gvr.FCTextBox("TxtLote").Text, ""), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ Next
+ ElseIf DtDetalleLote.Rows.Count > 0 Then
+ For Each Dr As DataRow In DtDetalleLote.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ Next
+ Else
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, gvr.FCTextBox("TbCantidadF").Text.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), Lote:=If(CBool(gvr.DataKey("AplicaLote")), gvr.FCTextBox("TxtLote").Text, ""), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ End If
+
+ End If
+ Next
+ Else
+ ErrorMovInv = True
+ End If
+
+ 'AGREGA BITACORA TEMPORAL
+ If DtBitacora IsNot Nothing AndAlso DtBitacora.Rows.Count > 0 Then
+ ErrorMovInv = GuardaBitacoraTemporal(ObjBitacora, CveMovimiento)
+ End If
+ Dim CvePrePoliza As Integer = 0
+ Dim UsaComplementariaCostoIndirecto As Boolean = False
+ If UsuarioActual.CveEmpresa = 119 Then UsaComplementariaCostoIndirecto = False
+ Dim PorcentajeCompraImportacion As Decimal = 0 ' si hay mas de una factura de importación saber lo que se está recibiendo
+
+ 'SE REGISTRAN LAS PREPOLIZAS
+ If Not ErrorMovInv Then
+ CvePrePoliza = ObjConta.AddPrePolizas("Inventario/RecepcionAlmacen CostoInd", 74, 0, 0, 1, FechaMovto, TxtObservaciones.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
+ Dim DtTempCompras As DataTable = Nothing
+ PorcentajeCompraImportacion = 1
+ If CveFleteSurtir > 0 Then
+ If ObjInventario.GetFleteDetalle(CveFleteSurtir) Then
+ DtTempCompras = ObjInventario.DtResultados
+ ' faltaría agregar la factura de producto,
+ If ObjCompras.GetCompras(CveFleteCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then
+ Dim drc As DataRow = DtTempCompras.NewRow
+ Dim drr As DataRow = ObjCompras.DtResultados.FiltroPrimero("")
+ If drr IsNot Nothing Then
+ drc("CveCompra") = CveFleteCompra
+ drc("SubTotal") = drr("SubTotal")
+ drc("TipoCambio") = drr("TipoCambio")
+ drc("CveProveedor") = drr("CveProveedor")
+ DtTempCompras.Rows.Add(drc)
+ End If
+
+ End If
+
+ Else
+ ErrorMovInv = True
+ End If
+ Else
+
+ If CveImportacionSurtir > 0 Then
+
+ If ObjCompras.GetImportacionesDetalle(CveImportacionSurtir, -1) Then
+ DtTempCompras = ObjCompras.DtResultados
+ Dim CveCompraImportacion As Integer = -1
+ If (DdlFactura.SelectedValue.ToEntero > 0) Then CveCompraImportacion = DdlFactura.SelectedValue.ToEntero
+
+ If ObjCompras.GetImportacionCompras(CveImportacionSurtir, CveCompraImportacion) Then
+ For Each drt As DataRow In ObjCompras.DtResultados.Rows
+ PorcentajeCompraImportacion = If(CveCompraImportacion > 0, drt("PorcentajeCompra").ToString.ToDecimal, 1)
+ Dim drc As DataRow = DtTempCompras.NewRow
+ drc("CveCompra") = drt("CveCompra")
+ drc("SubTotal") = drt("SubTotal")
+ drc("TipoCambio") = drt("TipoCambio")
+ drc("CveProveedor") = drt("CveProveedor")
+ DtTempCompras.Rows.Add(drc)
+ Next
+
+ End If
+
+
+
+ Else
+ ErrorMovInv = True
+ End If
+ End If
+ End If
+ If CvePrePoliza > 0 Then
+ Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
+ Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
+ ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa)
+ Dim TotalCosto As Decimal = ObjInventario.DtResultados.SUMD("Total").RoundSQL()
+ Dim IdCtaContableCostoInd As Integer = 0
+
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto, InvFolio, 68, InvFolio, FechaMovto, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
+ 'se recorren las facturas a descontar el recepción
+ If DtTempCompras IsNot Nothing AndAlso DtTempCompras.Rows.Count > 0 Then
+
+ For Each dr As DataRow In DtTempCompras.Rows
+ Dim CveComp As Integer = dr("CveCompra").ToString.ToEntero
+ 'el porcentaje solo aplica a las facturas de costo indirecto
+ Dim SubTotalPartida As Decimal = dr("SubTotal").ToString.ToDecimal * If(dr("TipoCompra").ToString = "CI", PorcentajeCompraImportacion, 1)
+ Dim ImporteAbono As Decimal = (SubTotalPartida * dr("TipoCambio").ToString.ToDecimal).RoundSQL
+ Dim ImporteAbonoME As Decimal = 0
+ Dim CveConceptoCostoIndirecto As Integer = If(CveImportacionSurtir > 0, 240, 237)
+
+ If ObjConta.GetRetCuenta(CveConceptoCostoIndirecto, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContableCostoInd = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
+ End If
+
+ If UsaComplementariaCostoIndirecto Then
+ CveConceptoCostoIndirecto = If(CveImportacionSurtir > 0, 241, 238)
+ ImporteAbono = SubTotalPartida
+ ImporteAbonoME = (SubTotalPartida * dr("TipoCambio").ToString.ToDecimal) - SubTotalPartida
+ End If
+
+
+
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteAbono, InvFolio, CveConceptoCostoIndirecto, InvFolio, FechaMovto, IdCtaContableCostoInd, -1, CveCompra:=CveComp, CveProveedor:=dr("CveProveedor").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ImporteAbono) Then
+ ' si tiene valor es que hay complementaria
+ If ImporteAbonoME > 0 Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteAbono, InvFolio, If(CveImportacionSurtir > 0, 242, 239), InvFolio, FechaMovto, IdCtaContableCostoInd, -1, CveCompra:=CveComp, CveProveedor:=dr("CveProveedor").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ImporteAbono) Then
+ ErrorMovInv = True
+ End If
+ End If
+ Else
+ ErrorMovInv = True
+ End If
+ Next
+
+ End If
+ End If
+
+
+ Else
+ ErrorMovInv = True
+ End If
+ End If
+
+ If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, -1) Then
+ If ObjConta.ValorPolizaDescuadre > 0 Then
+ GuardaLogAD($"Inventarios/RecepcionAlmacen-PPCompOC | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
+ ErrorMovInv = True
+ End If
+ End If
+
+ If Not ErrorMovInv AndAlso UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
+ ObjContaAC = New ClsContPAQi(UsuarioActual.Empresa)
+ ObjContaAC.IniciaTransacSQL()
+ If ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaAC) Then
+ MensajeError = $" Movimiento contabilizado en el folio: {ObjConta.ContaFolio} "
+ Else
+ ErrorMovInv = True
+ MensajeError = "Error al contabilizar los conceptos contables"
+ End If
+ End If
+
+
+ 'FINAL
+ If Not ErrorMovInv Then
+ ObjInventario.Commit() ' aplica los movimientos insertados
+ If ObjContaAC IsNot Nothing Then ObjContaAC.Commit()
+ RegistraScript("playsonidito('beep-07.wav')")
+
+ Dim Msg As New StringBuilder
+ Dim link As String = String.Format("{1}", CveMovimiento, InvFolio)
+ Msg.AppendFormat("Movimiento Registrado: Folio: {0}", link)
+ Msg.AppendFormat(" Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento)))
+
+ Alert(Msg.ToString, TipoMensaje.MsgInformacion)
+
+ Limpia()
+ Else
+ ObjInventario.RollBack()
+ If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack()
+ RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
+ GuardaLog(MensajeError)
+ Alert("Error al guardar el movimiento de almacen. Por favor vuelva a intentar.", TipoMensaje.MsgError)
+ End If
+
+ ObjInventario.Dispose()
+ If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose()
+ End Sub
+ Private Sub Limpia()
+ CveCompraSurtir = -1
+ CvePrePolizaCompra = -1
+ CveOCSurtir = -1
+ CveImportacionSurtir = -1
+ CveImportacionProveedor = -1
+ CveImportacionCompra = -1
+ BuscaEntregaDirecta = -1
+ DivAdvertencia.Visible = False
+ EntregaDirecta = False
+ DtInv = Nothing
+ CargaGVInv()
+ TxtObservaciones.Text = ""
+ TxtOC.Text = ""
+ TxtFecha.Text = Now.ToShortDateString
+ DdlAlmacen.SelectedValueExist(-1)
+ TxtRemision.Text = ""
+
+ 'ddlProveedor.SelectedValueExist(-1)
+ ddlProveedor.SelectedValue = "-1"
+ DdlFolio.Items.Clear()
+ DdlFolio.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlFolioOC.Items.Clear()
+ DdlFolioOC.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlFolioImportacion.Items.Clear()
+ DdlFolioImportacion.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ CargaFoliosRecepcion()
+
+ DtBitacora.Clear()
+ DivBitacora.Visible = False
+ CargaEventoBitacoraTemp()
+
+ DdlMonedaTC.SelectedValueExist("1")
+ TipoCambio = 0
+ 'TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString
+ DivTipoCambio.Visible = False
+
+ DivAdvertencia.Visible = False
+
+ UpTipoCambio.Update()
+ UPInv.Update()
+ UpGenerales.Update()
+ UpFiltros.Update()
+
+ HLFolio.Text = ""
+ HLFolio.NavigateUrl = "#"
+ LbProveedor.Text = ""
+ LbDescripcionCompra.Text = ""
+ UpDatosCompra.Update()
+ CargaPendientes()
+
+ End Sub
+ Private Function GuardaPrePoliza() As Boolean
Return True
End Function
#End Region
@@ -3733,6 +3813,94 @@ Partial Class Inventarios_RecepcionAlmacen
CargaSeccionAlmacen()
End Sub
+#End Region
+
+#Region "DIVIDIR"
+
+ Protected Sub Dividir(sender As Object, e As EventArgs)
+ Dim index2 As Integer = 0
+
+ For Each Row As DataRow In DtInv.Rows
+ Row("Seleccionado") = GvInv.Rows(index2).FCCheckBox("cbInv").Checked
+ If GvInv.Rows(index2).FCTextBox("TbCantidadF").Text <> "" Then
+ Row("CantidadSeleccionada") = GvInv.Rows(index2).FCTextBox("TbCantidadF").Text
+ End If
+ If GvInv.Rows(index2).FCTextBox("TxtLote").Text <> "" Then
+ Row("Lote") = GvInv.Rows(index2).FCTextBox("TxtLote").Text
+ End If
+ If GvInv.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue <> "-1" Then
+ Row("CveSeccion") = GvInv.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero
+ End If
+ If GvInv.Rows(index2).FCTextBox("TxtCaducidad").Text <> "" Then
+ Row("Caducidad") = GvInv.Rows(index2).FCTextBox("TxtCaducidad").Text.ToDate
+ End If
+ index2 += 1
+ Next
+ DtInv.AcceptChanges()
+
+ Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, Button)).NamingContainer, GridViewRow)
+ Dim Index As Integer = gvRow.RowIndex
+ Dim Cantidad As String = HdnCantidadMovimiento.Value
+ Dim dr1 As DataRow = DtInv.Rows(Index)
+ Dim dr As DataRow = DtInv.NewRow
+ dr.ItemArray = dr1.ItemArray
+ dr1("CantidadC") = (dr1("CantidadC").ToString.ToDouble - Cantidad.ToDouble)
+ Dim CantidadFOriginal As Double = dr1("CantidadF").ToString.ToDouble
+ dr1("CantidadF") = (dr1("CantidadF").ToString.ToDouble - Cantidad.ToDouble)
+ Dim CantidadSOriginal As Double = dr1("CantidadS").ToString.ToDouble
+ dr1("CantidadS") = (CantidadSOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ Dim CantidadSeleccionadaOriginal As Double = dr1("CantidadSeleccionada").ToString.ToDouble
+ dr1("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > dr1("CantidadF").ToString.ToDouble, dr1("CantidadF").ToString.ToDouble, CantidadSeleccionadaOriginal)
+ CantidadSeleccionadaOriginal = CantidadSeleccionadaOriginal - dr1("CantidadF").ToString.ToDouble
+
+ Dim CostoIndirectoOriginal As Double = dr1("CostoIndirecto").ToString.ToDouble
+ dr1("CostoIndirecto") = (CostoIndirectoOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ Dim CostoIndirectoExtranjeroOriginal As Double = dr1("CostoIndirectoExtranjero").ToString.ToDouble
+ dr1("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal
+
+ DtInv.AcceptChanges()
+
+ dr("CantidadC") = Cantidad.ToDouble
+ dr("CantidadF") = Cantidad.ToDouble
+ dr("CantidadS") = (CantidadSOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ dr("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > 0, CantidadSeleccionadaOriginal, 0)
+ dr("Seleccionado") = If(CantidadSeleccionadaOriginal > 0, True, False)
+ dr("CostoIndirecto") = (CostoIndirectoOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ dr("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ DtInv.Rows.InsertAt(dr, Index)
+ DtInv.AcceptChanges()
+
+ index2 = 1
+ For Each Row As DataRow In DtInv.Rows
+ Row("Consec") = index2
+ index2 += 1
+ Next
+ DtInv.AcceptChanges()
+
+ CargaGVInv()
+
+ index2 = 0
+ For Each Row As DataRow In DtInv.Rows
+ GvInv.Rows(index2).FCCheckBox("cbInv").Checked = CBool(Row("Seleccionado"))
+ If Row("CantidadSeleccionada").ToString <> "" Then
+ GvInv.Rows(index2).FCTextBox("TbCantidadF").Text = Row("CantidadSeleccionada").ToString
+ End If
+ If Row("Lote").ToString <> "" Then
+ GvInv.Rows(index2).FCTextBox("TxtLote").Text = Row("Lote").ToString
+ End If
+ If Row("CveSeccion").ToString <> "" Then
+ GvInv.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue = Row("CveSeccion").ToString
+ End If
+ If Row("Caducidad").ToString <> "" Then
+ GvInv.Rows(index2).FCTextBox("TxtCaducidad").Text = Row("Caducidad").ToString.ToDate.ToShortDateString
+ End If
+ index2 += 1
+ Next
+
+ End Sub
+
+
#End Region
+
End Class
diff --git a/Inventarios/RecepcionEntrega.aspx b/Inventarios/RecepcionEntrega.aspx
index a426c9852..91f95119b 100644
--- a/Inventarios/RecepcionEntrega.aspx
+++ b/Inventarios/RecepcionEntrega.aspx
@@ -416,6 +416,14 @@
+
@@ -931,6 +1003,29 @@
$('#TxtCantidadEspecialDiv').focus()
}
+ function Dividir(t) {
+ $get("HdnCantidadMovimiento").value = $get(t).value;
+ }
+
+ function LimitaCantidad(C, textbox, button) {
+
+ // var contenedor = $(textbox).parent().find("#" + buttonIdDiv);
+
+ if (ToDouble(textbox.value) >= C) {
+ textbox.value = "";
+ }
+
+ if (parseFloat(textbox.value) > 0) {
+ $get(button).style.display = "";
+ //$(contenedor).show();
+ }
+ else {
+ $get(button).style.display = "none";
+ //$(contenedor).hide();
+
+ }
+ }
+
diff --git a/Inventarios/RecepcionEntrega.aspx.vb b/Inventarios/RecepcionEntrega.aspx.vb
index 50ee62e69..18d66033f 100644
--- a/Inventarios/RecepcionEntrega.aspx.vb
+++ b/Inventarios/RecepcionEntrega.aspx.vb
@@ -34,6 +34,14 @@ Partial Class Inventarios_RecepcionEntrega
ViewState("DtDatosDetalle") = value
End Set
End Property
+ Private Property DtDatosSugerencias As DataTable
+ Get
+ Return CType(ViewState("DtDatosSugerencias"), DataTable)
+ End Get
+ Set(value As DataTable)
+ ViewState("DtDatosSugerencias") = value
+ End Set
+ End Property
Private Property DtDatosDetalleLote As DataTable
Get
Return CType(ViewState("DtDatosDetalleLote"), DataTable)
@@ -287,6 +295,9 @@ Partial Class Inventarios_RecepcionEntrega
CveVendedor = -1
CveCliente = -1
CveSubProyecto = -1
+
+ DtDatosSugerencias = New DataTable
+
Dim StrAlmacenes As String = "CveTipoAlmacen IN (1,2)"
If (UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1") Then
@@ -621,6 +632,30 @@ Partial Class Inventarios_RecepcionEntrega
DdlAlmacen.SelectedValueExist(CveAlmacenTraspasoOrigen)
End If
+ DtDatos.Columns.Add("AplicaSeccion", GetType(Boolean))
+ DtDatos.Columns.Add("AplicaSerie", GetType(Boolean))
+ DtDatos.Columns.Add("AplicaLote", GetType(Boolean))
+ DtDatos.Columns.Add("AplicaCaducidad", GetType(Boolean))
+ If Not DtDatos.Columns.Contains("Lote") Then
+ DtDatos.Columns.Add("Lote", GetType(String))
+ End If
+ If Not DtDatos.Columns.Contains("CveSeccion") Then
+ DtDatos.Columns.Add("CveSeccion", GetType(Integer))
+ End If
+ If Not DtDatos.Columns.Contains("Caducidad") Then
+ DtDatos.Columns.Add("Caducidad", GetType(Date))
+ End If
+ If Not DtDatos.Columns.Contains("Seleccionado") Then
+ DtDatos.Columns.Add("Seleccionado", GetType(Boolean))
+ End If
+ If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then
+ DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double))
+ End If
+
+ For Each Dr As DataRow In DtDatos.Rows
+ Dr("Caducidad") = Now
+ Next
+
'TxtFecha.Text = If(EsDevolucionVenta = 1, Now.ToShortDateString, DtDatos.Rows(0)("Fecha").ToString)
End If
@@ -775,6 +810,23 @@ Partial Class Inventarios_RecepcionEntrega
Private Sub CargaGvDatos()
If DtDatos IsNot Nothing Then
+
+ For Each item As DataRow In DtDatos.Rows
+ Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, item("CvePS").ToString.ToEntero).FiltroPrimero("")
+ If Dr IsNot Nothing Then
+ item("AplicaSeccion") = CBool(Dr("AplicaSeccion"))
+ If CBool(Dr("AplicaSeccion")) Then GvDatos.Columns(9).Visible = True
+ item("AplicaSerie") = CBool(Dr("AplicaSerie"))
+ item("AplicaLote") = CBool(Dr("AplicaLote"))
+ If CBool(Dr("AplicaLote")) Then GvDatos.Columns(10).Visible = True
+ item("AplicaCaducidad") = CBool(Dr("AplicaCaducidad"))
+ If CBool(Dr("AplicaCaducidad")) Then GvDatos.Columns(11).Visible = True
+ If CBool(Dr("AplicaSeccion")) Or CBool(Dr("AplicaLote")) Or CBool(Dr("AplicaCaducidad")) Or CBool(Dr("AplicaSerie")) Then
+ GvDatos.Columns(12).Visible = True
+ End If
+ End If
+ Next
+
GvDatos.DataSource = DtDatos
End If
@@ -802,7 +854,7 @@ Partial Class Inventarios_RecepcionEntrega
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
- If e.Row.DBCampo("Inv_CveMetodoInventario").Contiene("5", "6") Then
+ If CBool(e.Row.DBCampo("AplicaSerie")) Then
e.Row.FCButton("BtnSerieLote").Visible = True
e.Row.FCButton("BtnSerieLote").Text = If(e.Row.DBCampo("Inv_CveMetodoInventario").ToString = "5", "SerieLote", "Lote-Batch")
e.Row.FCButton("BtnSerieLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec"), e.Row.DBCampo("Inv_CveMetodoInventario"))
@@ -829,6 +881,32 @@ Partial Class Inventarios_RecepcionEntrega
End If
+ If CBool(e.Row.DBCampo("AplicaSeccion")) Then
+ e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = True
+ Else
+ e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = False
+ End If
+
+ If CBool(e.Row.DBCampo("AplicaCaducidad")) Then
+ e.Row.FCTextBox("TxtCaducidad").Visible = True
+ e.Row.FCLinkButton("LnkCaducidad").Visible = True
+ e.Row.FCTextBox("TxtCaducidad").Text = Now.ToShortDateString
+ Else
+ e.Row.FCTextBox("TxtCaducidad").Visible = False
+ e.Row.FCLinkButton("LnkCaducidad").Visible = False
+ End If
+
+ If CBool(e.Row.DBCampo("AplicaLote")) Then
+ e.Row.FCTextBox("TxtLote").Visible = True
+ Else
+ e.Row.FCTextBox("TxtLote").Visible = False
+ End If
+
+ e.Row.FCButton("BtnDividir").Attributes.Add("onclick", String.Format("Dividir('{0}');", e.Row.FCTextBox("TxtDividir").ClientID))
+ e.Row.FCButton("BtnDividir").CommandArgument = e.Row.RowIndex.ToString
+ e.Row.FCTextBox("TxtDividir").Attributes.Add("onkeyup", String.Format("LimitaCantidad({0},this,'{1}');", e.Row.DBCampo("CantidadF"), e.Row.FCButton("BtnDividir").ClientID))
+
+
'FUNCIONALIDAD PISTOLA DE CODIGOS
If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" Then
'NO BLOQUEA PARA ROL AD
@@ -1562,6 +1640,9 @@ Partial Class Inventarios_RecepcionEntrega
For Each gvr As GridViewRow In GvDatos.Rows
If gvr.FCCheckBox("cbInv").Checked AndAlso gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then
DtDatos.Rows(Index)("CantidadGV") = gvr.FCTextBox("TbCantidadF").Text.ToDecimal
+ DtDatos.Rows(Index)("CveSeccion") = gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero
+ DtDatos.Rows(Index)("Caducidad") = gvr.FCTextBox("TxtCaducidad").Text.ToDate
+ DtDatos.Rows(Index)("Lote") = gvr.FCTextBox("TxtLote").Text
End If
Index += 1
Next
@@ -1610,10 +1691,10 @@ Partial Class Inventarios_RecepcionEntrega
StrXML.Append("")
For Each Dr As DataRow In DtDatos.Rows
If Dr("CantidadGV").ToString.ToDecimal > 0 Then
- If Dr("Inv_CveMetodoInventario").ToString = "5" Then
+ If CBool(Dr("AplicaSeccion")) Then
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
For Each Dr1 As DataRow In DtDetalle.Rows
- StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), 1, Dr1("SerieLote"))
+ StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), 1, Dr1("SerieLote"), If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1), If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha))
Next
ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" Then
DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
@@ -1621,7 +1702,7 @@ Partial Class Inventarios_RecepcionEntrega
StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), DtDatosDetalleLote.SUM("Cantidad", $"Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'"), Dr1("Lote"))
Next
Else
- StrXML.AppendFormat("", Dr("CvePS"), Dr("CveUM"), Dr("CantidadGV"), "-1")
+ StrXML.AppendFormat("", Dr("CvePS"), Dr("CveUM"), Dr("CantidadGV"), "-1", If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1), If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha))
End If
End If
Next
@@ -1668,11 +1749,11 @@ Partial Class Inventarios_RecepcionEntrega
For Each Dr As DataRow In DtDatos.Rows
If Dr("CantidadGV").ToString.ToDecimal > 0 Then
- If Dr("Inv_CveMetodoInventario").ToString = "5" Then
+ If CBool(Dr("AplicaSeccion")) Then
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
For Each Dr1 As DataRow In DtDetalle.Rows
- If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Dr1("SerieLote").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then
+ If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Dr1("SerieLote").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
For Each Dr2 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows
'BUSCA SI EXISTE YA UN TRASPASO DEL ALMACEN DE APARTADO
@@ -1701,7 +1782,7 @@ Partial Class Inventarios_RecepcionEntrega
CantidadPendiente = 1
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
Exit For
@@ -1720,7 +1801,7 @@ Partial Class Inventarios_RecepcionEntrega
DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
For Each Dr1 As DataRow In DtDetalle.Rows
- If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then
+ If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
CantidadSaldo = Dr("CantidadGV").ToString.ToDecimal
@@ -1751,7 +1832,7 @@ Partial Class Inventarios_RecepcionEntrega
CantidadPendiente = If(Dr1("Cantidad").ToString.ToDecimal > CantidadSaldo, CantidadSaldo, Dr1("Cantidad").ToString.ToDecimal)
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
Exit For
@@ -1769,7 +1850,7 @@ Partial Class Inventarios_RecepcionEntrega
Else
- If ObjInventario.GetExistenciasProducto(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then
+ If ObjInventario.GetExistenciasProducto(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
CantidadSaldo = Dr("CantidadGV").ToString.ToDecimal
@@ -1801,7 +1882,7 @@ Partial Class Inventarios_RecepcionEntrega
CantidadPendiente = If(Dr1("ExistenciaFinal").ToString.ToDecimal > CantidadSaldo, CantidadSaldo, Dr1("ExistenciaFinal").ToString.ToDecimal)
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
Exit For
@@ -1844,7 +1925,7 @@ Partial Class Inventarios_RecepcionEntrega
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, SerieLote:=Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
Exit For
@@ -1942,7 +2023,7 @@ Partial Class Inventarios_RecepcionEntrega
End If
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, SerieLote:=Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
Exit For
@@ -1972,7 +2053,7 @@ Partial Class Inventarios_RecepcionEntrega
PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal
End If
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
Exit For
@@ -1984,7 +2065,7 @@ Partial Class Inventarios_RecepcionEntrega
PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal
End If
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr1("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr1("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
Exit For
@@ -1995,7 +2076,7 @@ Partial Class Inventarios_RecepcionEntrega
PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero}").ToString.ToDecimal
End If
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadPendiente, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadPendiente, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
Exit For
@@ -2806,7 +2887,92 @@ Partial Class Inventarios_RecepcionEntrega
#End Region
+#Region "DIVIDIR"
+ Protected Sub Dividir(sender As Object, e As EventArgs)
+ Dim index2 As Integer = 0
+
+ For Each Row As DataRow In DtDatos.Rows
+ Row("Seleccionado") = GvDatos.Rows(index2).FCCheckBox("cbInv").Checked
+ If GvDatos.Rows(index2).FCTextBox("TbCantidadF").Text <> "" Then
+ Row("CantidadSeleccionada") = GvDatos.Rows(index2).FCTextBox("TbCantidadF").Text
+ End If
+ If GvDatos.Rows(index2).FCTextBox("TxtLote").Text <> "" Then
+ Row("Lote") = GvDatos.Rows(index2).FCTextBox("TxtLote").Text
+ End If
+ If GvDatos.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue <> "-1" Then
+ Row("CveSeccion") = GvDatos.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero
+ End If
+ If GvDatos.Rows(index2).FCTextBox("TxtCaducidad").Text <> "" Then
+ Row("Caducidad") = GvDatos.Rows(index2).FCTextBox("TxtCaducidad").Text.ToDate
+ End If
+ index2 += 1
+ Next
+ DtDatos.AcceptChanges()
+
+ Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, Button)).NamingContainer, GridViewRow)
+ Dim Index As Integer = gvRow.RowIndex
+ Dim Cantidad As String = HdnCantidadMovimiento.Value
+ Dim dr1 As DataRow = DtDatos.Rows(Index)
+ Dim dr As DataRow = DtDatos.NewRow
+ dr.ItemArray = dr1.ItemArray
+ dr1("CantidadC") = (dr1("CantidadC").ToString.ToDouble - Cantidad.ToDouble)
+ Dim CantidadFOriginal As Double = dr1("CantidadF").ToString.ToDouble
+ dr1("CantidadF") = (dr1("CantidadF").ToString.ToDouble - Cantidad.ToDouble)
+ Dim CantidadSOriginal As Double = dr1("CantidadS").ToString.ToDouble
+ dr1("CantidadS") = (CantidadSOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ Dim CantidadSeleccionadaOriginal As Double = dr1("CantidadSeleccionada").ToString.ToDouble
+ dr1("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > dr1("CantidadF").ToString.ToDouble, dr1("CantidadF").ToString.ToDouble, CantidadSeleccionadaOriginal)
+ CantidadSeleccionadaOriginal = CantidadSeleccionadaOriginal - dr1("CantidadF").ToString.ToDouble
+
+ 'Dim CostoIndirectoOriginal As Double = dr1("CostoIndirecto").ToString.ToDouble
+ 'dr1("CostoIndirecto") = (CostoIndirectoOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ 'Dim CostoIndirectoExtranjeroOriginal As Double = dr1("CostoIndirectoExtranjero").ToString.ToDouble
+ 'dr1("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal
+
+ DtDatos.AcceptChanges()
+
+ dr("CantidadC") = Cantidad.ToDouble
+ dr("CantidadF") = Cantidad.ToDouble
+ dr("CantidadS") = (CantidadSOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ dr("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > 0, CantidadSeleccionadaOriginal, 0)
+ dr("Seleccionado") = If(CantidadSeleccionadaOriginal > 0, True, False)
+ 'dr("CostoIndirecto") = (CostoIndirectoOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ 'dr("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal
+ DtDatos.Rows.InsertAt(dr, Index)
+ DtDatos.AcceptChanges()
+
+ index2 = 1
+ For Each Row As DataRow In DtDatos.Rows
+ Row("Consec") = index2
+ index2 += 1
+ Next
+ DtDatos.AcceptChanges()
+
+ CargaGvDatos()
+
+ index2 = 0
+ For Each Row As DataRow In DtDatos.Rows
+ GvDatos.Rows(index2).FCCheckBox("cbInv").Checked = CBool(Row("Seleccionado"))
+ If Row("CantidadSeleccionada").ToString <> "" Then
+ GvDatos.Rows(index2).FCTextBox("TbCantidadF").Text = Row("CantidadSeleccionada").ToString
+ End If
+ If Row("Lote").ToString <> "" Then
+ GvDatos.Rows(index2).FCTextBox("TxtLote").Text = Row("Lote").ToString
+ End If
+ If Row("CveSeccion").ToString <> "" Then
+ GvDatos.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue = Row("CveSeccion").ToString
+ End If
+ If Row("Caducidad").ToString <> "" Then
+ GvDatos.Rows(index2).FCTextBox("TxtCaducidad").Text = Row("Caducidad").ToString.ToDate.ToShortDateString
+ End If
+ index2 += 1
+ Next
+
+ End Sub
+
+
+#End Region
#Region " GUIAS - SABE QUE ES PORQUE NO VEO QUE SE UTILIZE EN ALGUNA PARTE - EN MIRAS DE ELIMINAR - IPP 24 AGOSTO 2017 "
Private Sub BtnNumeroGuia_Click(sender As Object, e As EventArgs) Handles BtnNumeroGuia.Click
@@ -2844,6 +3010,86 @@ Partial Class Inventarios_RecepcionEntrega
End Sub
#End Region
+#Region "SUGERENCIAS"
+
+ Protected Sub BtnVerSugerencias_Click(sender As Object, e As EventArgs)
+ If Not CveVentaSurtir > 0 Then
+ Alert("Tiene que seleccionar la venta a surtir", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ If Not DdlAlmacen.SelectedValue.ToEntero > 0 Then
+ Alert("Tiene que seleccionar el almacen", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ Dim ObjInv As New ClsInventarios
+ If ObjInv.GetSugerenciasSalidaAlmacen(CveVentaSurtir, DdlAlmacen.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
+ GvSugerencias.DataSource = ObjInv.DtResultados
+
+
+ DtDatosSugerencias = ObjInv.DtResultados
+
+ DtDatos.Columns.Add("Consec", GetType(Integer))
+ DtDatos.Columns.Add("CantidadGV", GetType(Double))
+ DtDatos.Columns.Add("CantidadTraspaso", GetType(Double))
+ DtDatos.Columns.Add("AplicaSeccion", GetType(Boolean))
+ DtDatos.Columns.Add("AplicaSerie", GetType(Boolean))
+ DtDatos.Columns.Add("AplicaLote", GetType(Boolean))
+ DtDatos.Columns.Add("AplicaCaducidad", GetType(Boolean))
+ If Not DtDatos.Columns.Contains("Lote") Then
+ DtDatos.Columns.Add("Lote", GetType(String))
+ End If
+ If Not DtDatos.Columns.Contains("CveSeccion") Then
+ DtDatos.Columns.Add("CveSeccion", GetType(Integer))
+ End If
+ If Not DtDatos.Columns.Contains("Caducidad") Then
+ DtDatos.Columns.Add("Caducidad", GetType(Date))
+ End If
+ If Not DtDatos.Columns.Contains("Seleccionado") Then
+ DtDatos.Columns.Add("Seleccionado", GetType(Boolean))
+ End If
+ If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then
+ DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double))
+ End If
+
+ Dim Index = 1
+ For Each Dr As DataRow In DtDatosSugerencias.Rows
+ Dr("Consec") = Index
+ Dr("Caducidad") = Now
+ Index += 1
+ Next
+
+ DtDatosSugerencias.AcceptChanges()
+
+
+ End If
+ ObjInv.Dispose()
+ GvSugerencias.DataBind()
+
+ UpVerSugerencias.Update()
+
+ RegistraScript("$('#ModalVerSugerencias').modal()")
+ End Sub
+ Protected Sub BtnAplicarSugerencias_Click(sender As Object, e As EventArgs)
+
+ DtDatos = Nothing
+ DtDatos = New DataTable
+ DtDatos = DtDatosSugerencias
+
+ DtDatosDetalle = Nothing
+ CreaDtDetalle()
+
+ DtDatosDetalleLote = Nothing
+ CreaDtDetalleLote()
+
+ CargaGvDatos()
+
+ RegistraScript("$('#ModalVerSugerencias').modal('hide')")
+ End Sub
+
+
+#End Region