From b0286482068cc76f137a00904ecb93c97c69852b Mon Sep 17 00:00:00 2001 From: Raul Pimienta Date: Tue, 7 Apr 2020 13:48:20 -0700 Subject: [PATCH 1/4] Nueva funcionalidad de existencias en inventario --- App_Code/ClsInventarios.vb | 25 ++- Inventarios/RecepcionAlmacen.aspx | 63 +++++- Inventarios/RecepcionAlmacen.aspx.vb | 274 +++++++++++++++++++++----- Inventarios/RecepcionEntrega.aspx | 95 +++++++++ Inventarios/RecepcionEntrega.aspx.vb | 278 +++++++++++++++++++++++++-- 5 files changed, 657 insertions(+), 78 deletions(-) diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 4cacc834a..1e43dbd34 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/Inventarios/RecepcionAlmacen.aspx b/Inventarios/RecepcionAlmacen.aspx index 0c9fa6b71..8d742140e 100644 --- a/Inventarios/RecepcionAlmacen.aspx +++ b/Inventarios/RecepcionAlmacen.aspx @@ -167,7 +167,7 @@ Almacén:
- +
@@ -418,7 +418,7 @@ + DataKeyNames="EntregaDirecta,Consec,CodigoBarras,CvePS,CveUM,PU,CantidadC,CantidadF,UM,PS,CveCompraDetalle,CveOrdenCompraDetalle,PUExtranjero,AplicaSerieLote,CveClasificacion,Codigo,CveVentaDetalle,CostoIndirecto,CveTamaño,Lote" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None"> @@ -445,11 +445,30 @@ - + + + + + + + + +
+ + + + + + + + +
+
+
@@ -463,6 +482,13 @@ + + + + + +
@@ -568,7 +594,7 @@ - + @@ -685,13 +711,13 @@ - +
- + @@ -705,8 +731,8 @@
- @@ -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 161b1714c..74dcd9aed 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -476,7 +476,22 @@ Partial Class Inventarios_RecepcionAlmacen DdlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen) UpGenerales.Update() + End Sub + + 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 End Sub + Private Sub ConfiguraTipoRecepcion() DdlTipo.Items.Insert(0, New ListItem("Compra", "1")) @@ -1095,9 +1110,29 @@ Partial Class Inventarios_RecepcionAlmacen 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 @@ -1116,6 +1151,7 @@ Partial Class Inventarios_RecepcionAlmacen 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") @@ -1129,34 +1165,53 @@ Partial Class Inventarios_RecepcionAlmacen 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 + 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 = "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 = 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 - + If e.Row.RowType = DataControlRowType.DataRow Then + + 'If e.Row.DBCampo("CveMetodoInventario").ToString.Contiene("5", "6") Then + + If CBool(e.Row.DBCampo("AplicaSerie")) 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")) + + 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 @@ -1171,8 +1226,33 @@ Partial Class Inventarios_RecepcionAlmacen e.Row.FCTextBox("TbCantidadF").Text = e.Row.DBCampo("CantidadF").FormatoNumero e.Row.FCTextBox("TbCantidadF").Enabled = False End If + 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 <> "" And Not UsuarioActual.TienePermisoProceso(174) Then @@ -1183,15 +1263,15 @@ Partial Class Inventarios_RecepcionAlmacen 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) + 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 + 'End If e.Row.FCLabel("LbTotal").Text = ((e.Row.DBCampo("PU").ToDecimal + e.Row.DBCampo("CostoIndirecto").ToDecimal) * e.Row.DBCampo("CantidadF").ToDecimal).FormatoNumero @@ -1361,20 +1441,20 @@ Partial Class Inventarios_RecepcionAlmacen '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 + '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 + '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() @@ -1507,10 +1587,10 @@ Partial Class Inventarios_RecepcionAlmacen 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 + '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 @@ -1518,7 +1598,7 @@ Partial Class Inventarios_RecepcionAlmacen Row("CveUM") = CveUMSerieLote Row("PU") = PUSerieLote Row("Serie") = Serie - Row("FechaCaducidad") = If(AplicaCaducidad, TxtFechaCaducidad.Text, MinFecha.ToShortDateString) + Row("FechaCaducidad") = MinFecha.ToShortDateString DtDatosDetalle.Rows.Add(Row) Next @@ -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 @@ -2856,20 +2936,20 @@ Partial Class Inventarios_RecepcionAlmacen 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 + 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, 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 + 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, 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 + 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 @@ -3735,4 +3815,92 @@ Partial Class Inventarios_RecepcionAlmacen #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 @@
+
+
+
+ +
+
+
+ <%--GV DATOS--%> @@ -484,11 +492,46 @@ + + + + + + + + + + + + + + + +
+ + + + + + + + +
+
+
+ + + + + +
+ @@ -879,6 +922,35 @@ + + @@ -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 afcd7d2e8..b63700ad8 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.ToDouble, 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.ToDouble, 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.ToDouble, 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.ToDouble, 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 From 34da102d92a4830a8fd9fb458fe2d46c9c26605f Mon Sep 17 00:00:00 2001 From: Raul Pimienta Date: Tue, 7 Apr 2020 15:01:48 -0700 Subject: [PATCH 2/4] . --- Inventarios/RecepcionEntrega.aspx.vb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Inventarios/RecepcionEntrega.aspx.vb b/Inventarios/RecepcionEntrega.aspx.vb index b63700ad8..18d66033f 100644 --- a/Inventarios/RecepcionEntrega.aspx.vb +++ b/Inventarios/RecepcionEntrega.aspx.vb @@ -1925,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.ToDouble, 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 + 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 @@ -1959,7 +1959,7 @@ Partial Class Inventarios_RecepcionEntrega Dim CvePS = RowGarantia("CvePS").ToString().ToEntero() Dim CveTamaño As Integer = RowGarantia("CveTamaño").ToString().ToEntero() Dim CveUM As Integer = RowGarantia("CveUnidadMedida").ToString().ToEntero() - Dim PU As Double = RowGarantia("Importe").ToString().ToDouble() ' / RowGarantia("Cantidad").ToString().ToDouble() + Dim PU As Decimal = RowGarantia("Importe").ToString().ToDecimal() ' / RowGarantia("Cantidad").ToString().ToDouble() If Not ObjInventario.AddMovimientoDetalle(CveMovimientoGarantia, RowGarantia("Cantidad").ToString().ToDouble(), CveUM, CvePS, PU, -1) Then ErrorMovInv = True @@ -2023,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.ToDouble, 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 + 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 @@ -2114,7 +2114,7 @@ Partial Class Inventarios_RecepcionEntrega Else If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, EsInterno:=EsInterno, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero()) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, EsInterno:=EsInterno, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero()) Then ErrorMovInv = True TextoError = "Ocurrió un error al guardar los movimientos de entrada" Exit For @@ -2379,7 +2379,7 @@ Partial Class Inventarios_RecepcionEntrega For Each RowUsado As DataRow In DtPSVirtual.Rows Dim CvePS = RowUsado("CvePS").ToString().ToEntero() Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble() - Dim PU As Double = RowUsado("PU").ToString().ToDouble() + Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal() Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero() If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then From 0d27c67db110569c6b508cb482d61834cba3216a Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Tue, 7 Apr 2020 15:33:54 -0700 Subject: [PATCH 3/4] Pago electronico por grupos, actualizar estatus al generar layout, bloque en proveeedores aboar cuando no hat --- App_Code/ClsGenerales.vb | 28 + Bancos/PagoElectronicoGrupos.aspx | 4 +- Bancos/PagoElectronicoGrupos.aspx.vb | 1593 +++++++++++++------------- 3 files changed, 834 insertions(+), 791 deletions(-) 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/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("") - 'For i = 0 To Detalle.Length - 1 - ' Respuesta.AppendFormat("{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("", i, dr("Proveedor"), dr("Banco"), dr("TipoCuenta"), dr("Cuenta"), dr("estatus"), Style) - i += 1 - Next - - Respuesta.Append("
#ProveedorBancoTipo CuentaCuentaEstatus
{0}
{0}{1}{2}{3}{4}{5}
-------------------------------------------------------------------------------------
") - - 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("
  • Descargar Reporte
  • ", NombreArchivo) - - Alert(Respuesta.ToString, TipoMensaje.MsgInformacion) - Else - ObjIE.RollBack() - Respuesta.Append("

    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("
  • Descargar Reporte
  • ", 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("") + ' 'For i = 0 To Detalle.Length - 1 + ' ' Respuesta.AppendFormat("{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("", i, dr("Proveedor"), dr("Banco"), dr("TipoCuenta"), dr("Cuenta"), dr("estatus"), Style) + ' i += 1 + ' Next + + ' Respuesta.Append("
    #ProveedorBancoTipo CuentaCuentaEstatus
    {0}
    {0}{1}{2}{3}{4}{5}
    -------------------------------------------------------------------------------------
    ") + + ' 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("
  • Descargar Reporte
  • ", NombreArchivo) + + ' Alert(Respuesta.ToString, TipoMensaje.MsgInformacion) + ' Else + ' ObjIE.RollBack() + ' Respuesta.Append("

    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("
  • Descargar Reporte
  • ", 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("") - RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(77, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(327, 10).ToDouble.ToEntero.ToString) - RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(87, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(100, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(337, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(350, 2).ToDouble.ToEntero.ToString) - RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(177, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(302, 10).ToDouble.ToEntero.ToString) - RespuestaTrailer += String.Format("
    ConceptoPesos (MXP)Dolares (USD)
    Total registros rechazados:{0}{1}
    Total Importe rechazado: $:{0}.{1}{2}.{3}
    Total registros aceptados:{0}{1}
    Total Importe aceptado $:{0}.{1}{2}.{3}
    ", 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("") - For i = 0 To Detalle.Length - 1 - Respuesta.AppendFormat("{1}", i + 1, Detalle(i).Trim) - Next - Respuesta.Append("
    #ProveedorImporte($)MonedaEstatus
    {0}
    ----------------------------------------------------------------------------------------------------------------------
    ") - 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("") + ' RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(77, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(327, 10).ToDouble.ToEntero.ToString) + ' RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(87, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(100, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(337, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(350, 2).ToDouble.ToEntero.ToString) + ' RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(177, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(302, 10).ToDouble.ToEntero.ToString) + ' RespuestaTrailer += String.Format("
    ConceptoPesos (MXP)Dolares (USD)
    Total registros rechazados:{0}{1}
    Total Importe rechazado: $:{0}.{1}{2}.{3}
    Total registros aceptados:{0}{1}
    Total Importe aceptado $:{0}.{1}{2}.{3}
    ", 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("") + ' For i = 0 To Detalle.Length - 1 + ' Respuesta.AppendFormat("{1}", i + 1, Detalle(i).Trim) + ' Next + ' Respuesta.Append("
    #ProveedorImporte($)MonedaEstatus
    {0}
    ----------------------------------------------------------------------------------------------------------------------
    ") + ' 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("") - - 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("", 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("", 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("", 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("", 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("", 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("
    PersonalCuentaError
    {0}{1}CLABE ES OBLIGATORIA
    {0}{1}NUMERO DE CUENTA CON FORMATO INCORRECTO
    {0}{1}CLABE CON FORMATO INCORRECTO
    {0}{1}CIE CON FORMATO INCORRECTO
    {0}{1}CUENTA BANCOMER SIN CUENTA O CIE
    ") - - - If TotalDetalles > 0 Then - FormarTextoAltaFyE(TotalDetalles) - CreaArchivo(2) - - Dim Descargas As New StringBuilder() - Descargas.AppendFormat("
  • TXT
  • ", NombreArchivo) - 'Descargas.AppendFormat("
  • Reporte
  • ", NombreArchivo) - Descargas.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) - - - Dim TextoErrorProveedores = "" - If FyEError.Length > 160 Then TextoErrorProveedores = String.Format("


    Proveedores con Error:

    ------------------------------------------------------------------
    {0}

    ", 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("") + + ' 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("", 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("", 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("", 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("", 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("", 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("
    PersonalCuentaError
    {0}{1}CLABE ES OBLIGATORIA
    {0}{1}NUMERO DE CUENTA CON FORMATO INCORRECTO
    {0}{1}CLABE CON FORMATO INCORRECTO
    {0}{1}CIE CON FORMATO INCORRECTO
    {0}{1}CUENTA BANCOMER SIN CUENTA O CIE
    ") + + + ' If TotalDetalles > 0 Then + ' FormarTextoAltaFyE(TotalDetalles) + ' CreaArchivo(2) + + ' Dim Descargas As New StringBuilder() + ' Descargas.AppendFormat("
  • TXT
  • ", NombreArchivo) + ' 'Descargas.AppendFormat("
  • Reporte
  • ", NombreArchivo) + ' Descargas.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) + + + ' Dim TextoErrorProveedores = "" + ' If FyEError.Length > 160 Then TextoErrorProveedores = String.Format("


    Proveedores con Error:

    ------------------------------------------------------------------
    {0}

    ", 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 + 'End Sub + #End Region From fa7ebc31fc2bf00a95dbb2800b41c1f185c48fb0 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 7 Apr 2020 18:21:19 -0700 Subject: [PATCH 4/4] Total de usados y productos en traslados --- Compras/PopUpVerFactura.aspx.vb | 44 +- Empresas/140/Formatos/Traslado.rdlc | 1717 +++++++++++++++++++++++++++ 2 files changed, 1751 insertions(+), 10 deletions(-) create mode 100644 Empresas/140/Formatos/Traslado.rdlc diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 2609cc2f7..8cf504255 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1207,6 +1207,9 @@ Partial Class PopUpVerFactura CveMovimientoRelacionado = ObjInventarios.DtResultados.Rows(0)("CveMtoRel").ToString().ToEntero() End If + Dim CantidadProductos As Decimal = 0 + Dim CantidadUsados As Decimal = 0 + If CveConcepto = 3 Or CveConcepto = 18 Or CveConcepto = 30 Or CveConcepto = 34 Or CveConcepto = 35 Or CveConcepto = 16 Or CveConcepto = 7 Then 'SALIDA Y DEVOLUCION DEL CLIENTE If ObjInventarios.GetMovimientosDetalleImpresion(CveMovimiento, UsuarioActual.CveEmpresa) Then DtMovimientos = ObjInventarios.DtResultados @@ -1221,7 +1224,7 @@ Partial Class PopUpVerFactura Else If ObjInventarios.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then DtMovimientos = ObjInventarios.DtResultados.Copy() - + CantidadProductos = DtMovimientos.SUM("Cantidad").ToDecimal() If UsuarioActual.CveEmpresa = 140 AndAlso CveMovimientoRelacionado > 0 Then If ObjInventarios.GetMovimientos(CveMovimientoRelacionado, -1, -1, UsuarioActual.CveEmpresa) Then Dim CveAlmacenRelacionado As Integer = ObjInventarios.CveAlmacen @@ -1231,6 +1234,7 @@ Partial Class PopUpVerFactura If CveTipoAlmacenRelacionado = 24 Then If ObjInventarios.GetMovimientosDetalle(CveMovimientoRelacionado, UsuarioActual.CveEmpresa) Then Dim DtUsados As DataTable = ObjInventarios.DtResultados.Copy() + CantidadUsados = DtUsados.SUM("Cantidad").ToDecimal() Dim IndexInicialUsados As Integer = DtMovimientos.Rows.Count + 1 For Each Dr As DataRow In DtUsados.Rows @@ -1268,7 +1272,8 @@ Partial Class PopUpVerFactura Remision, Proveedor, CalleOrigen, NoExtOrigen, ColoniaOrigen, LocalidadOrigen, MunicipioOrigen, EstadoOrigen, PaisOrigen, CPOrigen, CalleDestino, NoExtDestino, ColoniaDestino, LocalidadDestino, MunicipioDestino, EstadoDestino, PaisDestino, CPDestino, FechaMovimiento, NombreCapturo, PuestoRecibio, - PuestoEnrego, RazonSocial, ResponsableCarga, ResponsableRecibio, NombreCliente) + PuestoEnrego, RazonSocial, ResponsableCarga, ResponsableRecibio, NombreCliente, + CantidadProductos:=CantidadProductos, CantidadUsados:=CantidadUsados) End Sub Private Sub PUanacExtr(CveMoneda As Integer) 'preciounitario a moneda nacional o extranjera @@ -1285,7 +1290,7 @@ Partial Class PopUpVerFactura Remision As String, Proveedor As String, CalleOrigen As String, NoExtOrigen As String, ColoniaOrigen As String, LocalidadOrigen As String, MunicipioOrigen As String, EstadoOrigen As String, PaisOrigen As String, CPOrigen As String, CalleDestino As String, NoExtDestino As String, ColoniaDestino As String, LocalidadDestino As String, MunicipioDestino As String, EstadoDestino As String, PaisDestino As String, CPDestino As String, FechaMovimiento As Date, NombreCapturo As String, PuestoRecibio As String, PuestoEntrego As String, - RazonSocial As String, ResponsableCarga As String, ResponsableRecibio As String, NombreCliente As String) + RazonSocial As String, ResponsableCarga As String, ResponsableRecibio As String, NombreCliente As String, Optional CantidadProductos As Decimal = 0, Optional CantidadUsados As Decimal = 0) Select Case CveConcepto @@ -1937,6 +1942,7 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("Accion", "RECIBE")) 'Antes Trasladó params.Add(New ReportParameter("Observaciones", Observaciones)) + Dim DTCliente As New DataTable Dim SBDireccionO As New StringBuilder() Dim SBDireccionD As New StringBuilder() @@ -2025,13 +2031,31 @@ Partial Class PopUpVerFactura Dim Archivo As New System.IO.FileInfo(String.Format(RutaFormato, UsuarioActual.Empresa.Ruta)) - If Archivo.Exists Then - params.Add(New ReportParameter("Observaciones", Observaciones)) 'TxtObservaciones.Text - params.Add(New ReportParameter("CveAlmacen", DtMovimientos(0)("CveTipoAlmacen").ToString)) - params.Add(New ReportParameter("CveTipoAlmacenDestino", DtMovimientos(0)("CveTipoAlmacenDestino").ToString)) - params.Add(New ReportParameter("CveVentaDetalle", DtMovimientos(0)("CveVentaDetalle").ToString)) - params.Add(New ReportParameter("FacturadoA", DtMovimientos(0)("Nombre").ToString)) - params.Add(New ReportParameter("Factura", DtMovimientos(0)("SerieFolio").ToString)) + If Archivo.Exists Then + If UsuarioActual.CveEmpresa = 140 Then + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + params.Add(New ReportParameter("Origen", Almacen)) + params.Add(New ReportParameter("Destino", AlmacenDestino)) + params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("CantidadProductos", CantidadProductos.ToString())) + params.Add(New ReportParameter("CantidadUsados", CantidadUsados.ToString())) + Else + params.Add(New ReportParameter("Observaciones", Observaciones)) 'TxtObservaciones.Text + params.Add(New ReportParameter("CveAlmacen", DtMovimientos(0)("CveTipoAlmacen").ToString)) + params.Add(New ReportParameter("CveTipoAlmacenDestino", DtMovimientos(0)("CveTipoAlmacenDestino").ToString)) + params.Add(New ReportParameter("CveVentaDetalle", DtMovimientos(0)("CveVentaDetalle").ToString)) + params.Add(New ReportParameter("FacturadoA", DtMovimientos(0)("Nombre").ToString)) + params.Add(New ReportParameter("Factura", DtMovimientos(0)("SerieFolio").ToString)) + End If If UsuarioActual.CveEmpresa = 72 Or UsuarioActual.CveEmpresa = 119 Then params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) diff --git a/Empresas/140/Formatos/Traslado.rdlc b/Empresas/140/Formatos/Traslado.rdlc new file mode 100644 index 000000000..8ed80cf00 --- /dev/null +++ b/Empresas/140/Formatos/Traslado.rdlc @@ -0,0 +1,1717 @@ + + + + + + + + + 1.94437cm + + + 3.27787cm + + + 2.19837cm + + + 9.27592cm + + + 1.41521cm + + + 1.45633cm + + + + + 0.43067cm + + + + + true + true + + + + + Cant. + + + + + + + Black + + 1pt + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Código + + + + + + + Black + + 1pt + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Unidad Medida + + + + + + + Black + + 1pt + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Black + + 1pt + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Costo + + + + + + + Black + + 1pt + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Valor + + + + + + + Black + + 1pt + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.30367cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + + + + + =Fields!Codigo.Value + + + + + + + Codigo + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + + + + + =Fields!UnidadMedida.Value + + + + + + + UnidadMedida + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + true + + + + + =Fields!PS.Value + + + + + + + PS + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + true + true + + + + + =Fields!Total.Value + + + + + + + Total + + + Bottom + 2pt + 2pt + =IIf(rownumber(nothing) = 1, "2pt", "0pt") + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + + + + DsInventarios + 0.07056cm + 0.00711cm + 0.73434cm + 19.56807cm + + + + + + true + true + + + + + Total Productos : + + + + =Parameters!CantidadProductos.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Total Usados: + + + + =Parameters!CantidadUsados.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 0.72418in + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox4 + 4.48094cm + 17.3888cm + 0.6cm + 1.76305cm + 1 + + + 2pt + 2pt + + + + true + true + + + + + Fecha: + + + + + + + Textbox5 + 4.48092cm + 16.27404cm + 0.6cm + 1.11476cm + 2 + + + 2pt + 2pt + + + + true + true + + + + + =Parameters!Folio.Value + + + + + + 2pt + 2pt + + + + true + true + + + + + FOLIO: + + + + Textbox5 + 0.03803cm + 17.07518cm + 0.6cm + 1.18203cm + 4 + + + Bottom + 2pt + 2pt + + + + true + true + + + + + =iif(Parameters!CveConcepto.Value = 8, "AVISO", "RECEPCIÓN") & " DE TRASLADO" + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!SubProyecto.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Origen 2: + + + + =Parameters!Origen.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Destino: + + + + =Parameters!Destino.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + External + =Parameters!LogoPath.Value + FitProportional + 0.03803cm + 0.1121cm + 2.53711cm + 4.08574cm + 9 + + + + + + + + + + + 6.45758cm + true + true + + + true + true + + + + + =Parameters!NombreEntrego.Value + + + + Textbox21 + 1.87056cm + 2.54cm + 0.63472cm + 5.79375cm + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!NombreAccion.Value + + + + Textbox21 + 1.87056cm + 11.25481cm + 0.63528cm + 5.78664cm + 1 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ___________________________ + + + + + + Firma + + + + Textbox21 + 3.82353cm + 2.54795cm + 1.2cm + 5.78664cm + 2 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ___________________________ + + + + + + Nombre y Firma + + + + Textbox21 + 3.82354cm + 11.26191cm + 1.2cm + 5.78664cm + 3 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + OBSERVACIONES: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 1.37639cm + 0.00626cm + 0cm + 19.57518cm + 6 + + + + + + 0.17639cm + 0cm + 19.57518cm + 7 + + + + + + true + true + + + + + ENTREGA + + + + + + + Textbox22 + 1.41167cm + 2.54795cm + 0.6cm + 5.78664cm + 8 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Accion.Value + + + + + + + Textbox22 + 1.37639cm + 11.26191cm + 0.6cm + 5.78664cm + 9 + + =iif(Parameters!CveConcepto.Value = 9,true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =IIF(Parameters!NombreAccion.Value=-1,"",Parameters!NombreAccion.Value) + + + + Textbox21 + 1.87cm + 6.89031cm + 0.63528cm + 5.78664cm + 10 + + =iif(Parameters!CveConcepto.Value = 8, True, False) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ___________________________ + + + + + + Nombre y Firma + + + + Textbox21 + 3.82298cm + 6.89741cm + 1.2cm + 5.78664cm + 11 + + =iif(Parameters!CveConcepto.Value = 8, True, False) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Accion.Value + + + + + + + Textbox22 + 1.37583cm + 6.89741cm + 0.6cm + 5.78664cm + 12 + + =iif(Parameters!CveConcepto.Value = 8, True, False) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Usuario: + + + + =Parameters!UsuarioImprimio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresión: + + + + =Parameters!FechaImpresion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ="Página " & Globals.PageNumber & " de " & Globals.TotalPages + + + + + + + Textbox35 + 5.90548cm + 17.07518cm + 0.41981cm + 2.5cm + 15 + + + 2pt + 2pt + 2pt + 2pt + + + + 5.70264cm + 0.00313cm + 0cm + 19.57518cm + 16 + + + + + + + + + + 25cm + 21.59cm + 1cm + 0cm + 1cm + 1cm + 0.13cm +