diff --git a/App_Code/ClsContratos.vb b/App_Code/ClsContratos.vb index 4846346b8..6a8fe4e01 100644 --- a/App_Code/ClsContratos.vb +++ b/App_Code/ClsContratos.vb @@ -420,7 +420,7 @@ Public Class ClsContratos Public Function UpdateContratos(CveContrato As Integer, NumeroContrato As String, DescripcionContrato As String, NumeroLicitacion As String, CveProveedor As Integer, CveCliente As Integer, CveProspecto As Integer, FechaInicial As DateTime, FechaFinal As DateTime, Ubicacion As String, Responsable As String, CveSubProyecto As Integer, PorIVA As Double, PorAnticipo As Double, PorAmortizacionAnticipo As Double, PorGarantia As Double, Archivo As String, Geom As String, CveContratoPadre As Integer, CveUsuario As Integer, CveEmpresa As Integer, EsPresupuestal As Boolean, Minimo As Double, Maximo As Double, Importe As Double, CveMoneda As Integer, ModalidadDetalle As Integer, - Optional CveContratosEstatus As Integer = -1, Optional CveContratoTipo As Integer = -1, Optional TipoCambio As Double = 1.0, Optional CveSucursalCliente As Integer = -1, Optional CveAlmacenOrigen As Integer = -1, Optional CveAlmacenDestino As Integer = -1, Optional PorcentajeComision As Integer = -1, + Optional CveContratosEstatus As Integer = -1, Optional CveContratoTipo As Integer = -1, Optional TipoCambio As Double = -1, Optional CveSucursalCliente As Integer = -1, Optional CveAlmacenOrigen As Integer = -1, Optional CveAlmacenDestino As Integer = -1, Optional PorcentajeComision As Integer = -1, Optional TipoGarantia As Integer = -1, Optional Folio As Integer = -1, Optional FechaVenc As Date = Nothing, Optional EstatusFianza As Integer = -1, Optional CveContratoPlantilla As Integer = -1, Optional CveCuentaEquipo As Integer = -1, Optional CveVendedor As Integer = -1, Optional Observaciones As String = "", Optional CveDireccionEnvio As Integer = -1, Optional AplicaImpuestosLocales As Boolean = False, Optional CorreoNotificacionPedDev As String = "", Optional FacturacionCicilica As Boolean = False, Optional FacturacionCiclicaAutomatico As Boolean = False, Optional DiaMesFacturacion As Integer = 1, Optional CvePeriodo As Integer = -1, Optional ObservacionesGenerales As String = "", Optional CveTipoAF As Integer = Nothing, Optional CveChofer As Integer = Nothing, Optional CveChofer2 As Integer = Nothing, Optional CveAF As Integer = Nothing, Optional CantidadPasajeros As Integer = Nothing, Optional CvePartida As Integer = Nothing, Optional CveDestino As Integer = Nothing, Optional CveMasivo As Integer = Nothing) As Boolean @@ -450,8 +450,8 @@ Public Class ClsContratos .Add("@CveContratoPadre", SqlDbType.Int).Value = CveContratoPadre .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@EsPresupuestal", SqlDbType.Int).Value = EsPresupuestal - .Add("@CveContratoTipo", SqlDbType.SmallInt).Value = CveContratoTipo + .Add("@EsPresupuestal", SqlDbType.Bit).Value = EsPresupuestal + .Add("@CveContratoTipo", SqlDbType.Int).Value = CveContratoTipo .Add("@ImporteMin", SqlDbType.Money).Value = Minimo .Add("@ImporteMax", SqlDbType.Money).Value = Maximo .Add("@Importe", SqlDbType.Money).Value = Importe @@ -471,7 +471,7 @@ Public Class ClsContratos .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor .Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones .Add("@CveDireccionEnvio", SqlDbType.Int).Value = CveDireccionEnvio - .Add("@AplicaImpuestosLocales", SqlDbType.Bit).Value = If(AplicaImpuestosLocales, 1, 0) + .Add("@AplicaImpuestosLocales", SqlDbType.Bit).Value = AplicaImpuestosLocales .Add("@CorreoNotificacionPedDev", SqlDbType.VarChar).Value = CorreoNotificacionPedDev .Add("@FacturacionCicilica", SqlDbType.Bit).Value = FacturacionCicilica .Add("@FacturacionCiclicaAutomatico", SqlDbType.Bit).Value = FacturacionCiclicaAutomatico diff --git a/App_Code/ClsProductosServicios.vb b/App_Code/ClsProductosServicios.vb index 5fcda2cf9..fa3deb688 100644 --- a/App_Code/ClsProductosServicios.vb +++ b/App_Code/ClsProductosServicios.vb @@ -1545,7 +1545,7 @@ Public Class ClsProductosServicios - Public Function AddMarcas(Marca As String, Estatus As Boolean, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Public Function AddMarcas(Marca As String, Estatus As Boolean, CveUsuario As Integer, CveEmpresa As Integer, Optional ActualizarFranquicias As Boolean = False) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Gral_MarcasAdd") @@ -1555,6 +1555,7 @@ Public Class ClsProductosServicios .Add("@Estatus", SqlDbType.Bit).Value = Estatus .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@ActualizarFranquicias", SqlDbType.Bit).Value = ActualizarFranquicias End With Try @@ -1597,7 +1598,7 @@ Public Class ClsProductosServicios - Public Function UpdateMarca(Marca As String, CveMarca As Integer, Estatus As Boolean) As Boolean + Public Function UpdateMarca(Marca As String, CveMarca As Integer, Estatus As Boolean, CveEmpresa As Integer, Optional ActualizarFranquicias As Boolean = False) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Gral_MarcasUpdate") @@ -1605,6 +1606,8 @@ Public Class ClsProductosServicios .Add("@Marca", SqlDbType.VarChar).Value = Marca .Add("@CveMarca", SqlDbType.Int).Value = CveMarca .Add("@Estatus", SqlDbType.Bit).Value = Estatus + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@ActualizarFranquicias", SqlDbType.Bit).Value = ActualizarFranquicias End With Try diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 7ab6aed8c..7fcdf4e14 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -921,7 +921,23 @@ - + + + + + +
+
+ + Atención! + El Proveedor tiene Saldo a favor pendiente por aplicar +
+
+
+
+ + +
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 032328419..3855b52f3 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -714,6 +714,18 @@ Partial Class Compras_Compras ViewState("CveMetodoPago") = value End Set End Property + + Private Property MetodoPagoOC As Integer + Get + If ViewState("MetodoPagoOC") Is Nothing Then + ViewState("MetodoPagoOC") = -1 + End If + Return ViewState("MetodoPagoOC").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("MetodoPagoOC") = value + End Set + End Property Private Property TipoCambio As Decimal Get Return ViewState("TipoCambio").ToString.ToDecimal @@ -1018,6 +1030,20 @@ Partial Class Compras_Compras End Set End Property + Private Property CveIEAnticipo As Integer + Get + If ViewState("CveIEAnticipo") Is Nothing Then + ViewState("CveIEAnticipo") = -1 + End If + Return ViewState("CveIEAnticipo").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveIEAnticipo") = value + End Set + End Property + + + Public Property FechaCompraOriginal As Date Get Return ViewState("FechaCompraOriginal").ToString.ToDate @@ -3967,6 +3993,12 @@ Partial Class Compras_Compras '------------------ INICIA VALIDACIONES ------------------ + If MetodoPagoOC = 0 AndAlso RBLPago.SelectedValue.ToEntero <> 2 Then + Alert("La orden de compra se definió de contado, favor de especificar la compra de contado.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim CveSubProyectoPrincipal As Integer = AsignarSubProyectoPrincipal() If Not CveSubProyectoPrincipal > 0 Then @@ -13656,6 +13688,7 @@ Partial Class Compras_Compras CargaOC() End Sub Private Sub CargaOC() + MetodoPagoOC = -1 Dim EntregaDirecta As Integer = 0 DivOCSolicitudAnticipo.Visible = False DivOCSolicitudAnticipoModal.Visible = False @@ -13694,6 +13727,7 @@ Partial Class Compras_Compras HdnVCveOC.Value += String.Format("{0}{1}", If(HdnVCveOC.Value <> "", ",", ""), OC.DtResultados.Rows(0)("CveOrdenCompra").ToString) HdnCveEstatusOC.Value += String.Format("{0}{1}", If(HdnCveEstatusOC.Value <> "", ",", ""), OC.DtResultados.Rows(0)("CveEstatusSiguiente").ToString) EntregaDirecta += If(OC.DtResultados.Rows(0)("EntregaDirecta").ToString = "True", 1, 0) + MetodoPagoOC = OC.DtResultados.Rows(0)("MetodoPagoOC").ToString.ToEntero End If End If Next @@ -13709,6 +13743,7 @@ Partial Class Compras_Compras HdnVCveOC.Value += String.Format("{0}{1}", If(HdnVCveOC.Value <> "", ",", ""), OC.DtResultados.Rows(0)("CveOrdenCompra").ToString) HdnCveEstatusOC.Value += String.Format("{0}{1}", If(HdnCveEstatusOC.Value <> "", ",", ""), OC.DtResultados.Rows(0)("CveEstatusSiguiente").ToString) EntregaDirecta += If(OC.DtResultados.Rows(0)("EntregaDirecta").ToString = "True", 1, 0) + MetodoPagoOC = OC.DtResultados.Rows(0)("MetodoPagoOC").ToString.ToEntero End If End If Next @@ -13751,7 +13786,9 @@ Partial Class Compras_Compras Protected Sub BtnVOC_Click(sender As Object, e As EventArgs) VinculaOC() End Sub + Private Sub VinculaOC() + CveIEAnticipo = -1 If TxtOC.Text <> "" Then 'VARIABLES @@ -13798,6 +13835,7 @@ Partial Class Compras_Compras If ObjOC.DtResultados.Rows(0)("CveIEAnticipo").ToString.ToEntero > 0 Then FoliosOCAnticipo += $"{ObjOC.DtResultados.Rows(0)("FolioOC").ToString}," FoliosOCAnticipoIE += $"{ObjOC.DtResultados.Rows(0)("FolioIEAnticipo").ToString}," + CveIEAnticipo = ObjOC.DtResultados.Rows(0)("CveIEAnticipo").ToString.ToEntero DivOCSolicitudAnticipo.Visible = True DivOCSolicitudAnticipoModal.Visible = True End If @@ -13889,6 +13927,9 @@ Partial Class Compras_Compras If DivOCSolicitudAnticipo.Visible And FoliosOCAnticipo.Length > 0 Then LtSolicitudAnticipoFoliosOC.Text = $"La(s) siguiente(s) OC: {FoliosOCAnticipo.Substring(0, FoliosOCAnticipo.Length - 1)}. tienen vinculado un anticipo" LtSolicitudAnticipoFoliosIE.Text = $" {FoliosOCAnticipoIE.Substring(0, FoliosOCAnticipoIE.Length - 1)}" + + DVAtencionOCAnticipo.Visible = True + UpDVAtencionOCAnticipo.Update() End If 'PROMOCIONES @@ -14436,8 +14477,29 @@ Partial Class Compras_Compras 'ANTICIPO OC If DivOCSolicitudAnticipo.Visible Then + + If CveIEAnticipo > 0 Then + DVAtencionOCAnticipo.Visible = True + UpDVAtencionOCAnticipo.Update() + End If + + Dim scripsSeccion As String = "" + For Each gvRow As GridViewRow In GVAnticipos.Rows + If gvRow.DataKey("CveIE").ToEntero = CveIEAnticipo Then + Dim Chk As CheckBox = gvRow.FCCheckBox("Chk") + scripsSeccion = scripsSeccion & $"$('#{Chk.ClientID}').click();" + 'RegistraScript($"$('#{Chk.ClientID}').click();", "100") + End If + Next + RegistraScript("MuestraAnticipos();", "MuestaAnticiposOC") + RegistraScript(" + setTimeout(function() { + " & scripsSeccion & " + }, 200) + ") UpAnticipos.Update() + End If CalculaTotales() diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 2e73e1c62..fd3c9db42 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -10,6 +10,7 @@ Imports iText.Barcodes.Dmcode Imports Microsoft.Reporting.WebForms Imports Modelos Imports Stimulsoft.Base.Context +Imports ZXing Partial Class PopUpVerFactura @@ -6039,6 +6040,13 @@ Partial Class PopUpVerFactura ObjVentas.Dispose() If DtPrecios IsNot Nothing Then + + DtPrecios.Columns.Add(New DataColumn("CBBase64", GetType(String))) + + For Each Row As DataRow In DtPrecios.Rows + Row("CBBase64") = Convert.ToBase64String(GeneraCodigoQR(Row("CodigoBarras").ToString(), 40, 150, 0, "CODE_39", True)) + Next + Dim DirectorioArchivo As String = "Empresas/Grales/Formatos/Etiqueta.mrt" If System.IO.File.Exists(UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt") Then DirectorioArchivo = UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt" @@ -6153,4 +6161,94 @@ Partial Class PopUpVerFactura #End Region + + Private Function GeneraCodigoQR(CodigoBarras As String, Alto As Integer, Largo As Integer, Margen As Integer, Formato As String, Optional PureBacode As Boolean = False) As Byte() + + Dim barcodeWriter As New BarcodeWriter + Dim opciones As New ZXing.Common.EncodingOptions + Dim FormatoBar As New BarcodeFormat + 'Dim Respuesta As Byte() + + opciones.Height = Alto + opciones.Width = Largo + opciones.Margin = Margen + opciones.PureBarcode = PureBacode + barcodeWriter.Options = opciones + + Select Case Formato + Case "All_1D" + barcodeWriter.Format = BarcodeFormat.All_1D + Exit Select + Case "AZTEC" + barcodeWriter.Format = BarcodeFormat.AZTEC + Exit Select + Case "CODABAR" + barcodeWriter.Format = BarcodeFormat.CODABAR + Exit Select + Case "CODE_128" + barcodeWriter.Format = BarcodeFormat.CODE_128 + Exit Select + Case "CODE_39" + barcodeWriter.Format = BarcodeFormat.CODE_39 + Exit Select + Case "CODE_93" + barcodeWriter.Format = BarcodeFormat.CODE_93 + Exit Select + Case "DATA_MATRIX" + barcodeWriter.Format = BarcodeFormat.DATA_MATRIX + Exit Select + Case "EAN_13" + barcodeWriter.Format = BarcodeFormat.EAN_13 + Exit Select + Case "EAN_8" + barcodeWriter.Format = BarcodeFormat.EAN_8 + Exit Select + Case "IMB" + barcodeWriter.Format = BarcodeFormat.IMB + Exit Select + Case "ITF" + barcodeWriter.Format = BarcodeFormat.ITF + Exit Select + Case "MAXICODE" + barcodeWriter.Format = BarcodeFormat.MAXICODE + Exit Select + Case "MSI" + barcodeWriter.Format = BarcodeFormat.MSI + Exit Select + Case "PDF_417" + barcodeWriter.Format = BarcodeFormat.PDF_417 + Exit Select + Case "PLESSEY" + barcodeWriter.Format = BarcodeFormat.PLESSEY + Exit Select + Case "QR_CODE" + barcodeWriter.Format = BarcodeFormat.QR_CODE + Exit Select + Case "RSS_14" + barcodeWriter.Format = BarcodeFormat.RSS_14 + Exit Select + Case "RSS_EXPANDED" + barcodeWriter.Format = BarcodeFormat.RSS_EXPANDED + Exit Select + Case "UPC_A" + barcodeWriter.Format = BarcodeFormat.UPC_A + Exit Select + Case "UPC_E" + barcodeWriter.Format = BarcodeFormat.UPC_E + Exit Select + Case "UPC_EAN_EXTENSION" + barcodeWriter.Format = BarcodeFormat.UPC_EAN_EXTENSION + Exit Select + + End Select + + Dim imgCod As Drawing.Bitmap = barcodeWriter.Write(CodigoBarras) + Dim memoriStream As New System.IO.MemoryStream + imgCod.Save(memoriStream, Drawing.Imaging.ImageFormat.Bmp) + + 'Respuesta = Convert.ToBase64String(memoriStream.ToArray()) + + Return memoriStream.ToArray() + + End Function End Class diff --git a/General/CatMarcas.aspx.vb b/General/CatMarcas.aspx.vb index ec1df2c15..4537b919b 100644 --- a/General/CatMarcas.aspx.vb +++ b/General/CatMarcas.aspx.vb @@ -62,23 +62,42 @@ Partial Class General_CatMarcas DivEstatus.Visible = False UpModal.Update() RegistraScript("$('#DModalMarca').modal()") End Sub Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) - Dim ObjPS As New ClsProductosServicios - If Modalidad = "A" Then - If ObjPS.AddMarcas(TxtMarca.Text, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - RegistraScript("$('#DModalMarca').modal('hide')") - Alert("La Marca se agregó correctamente.", TipoMensaje.MsgInformacion) - CargaDatos() - GlobalDTGralMarcas(UsuarioActual.CveEmpresa) = Nothing - End If - ElseIf Modalidad = "U" Then - If ObjPS.UpdateMarca(TxtMarca.Text, CveMarca, ChkEstatus.Checked) Then - RegistraScript("$('#DModalMarca').modal('hide')") - Alert("La Marca se actualizo correctamente.", TipoMensaje.MsgInformacion) - CargaDatos() - GlobalDTGralMarcas(UsuarioActual.CveEmpresa) = Nothing - End If + Dim ActualizarFranquicias As Boolean = False + + If UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + ActualizarFranquicias = True End If + + Dim ObjPS As New ClsProductosServicios + ObjPS.IniciaTransacSQL() + + Dim TieneError As Boolean = False + Try + If Modalidad = "A" Then + If Not ObjPS.AddMarcas(TxtMarca.Text, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, ActualizarFranquicias:=ActualizarFranquicias) Then + TieneError = True + End If + ElseIf Modalidad = "U" Then + If Not ObjPS.UpdateMarca(TxtMarca.Text, CveMarca, ChkEstatus.Checked, UsuarioActual.CveEmpresa, ActualizarFranquicias:=ActualizarFranquicias) Then + TieneError = True + End If + End If + Catch ex As Exception + TieneError = True + End Try + + If TieneError Then + ObjPS.RollBack() + Else + ObjPS.Commit() + End If + ObjPS.Dispose() + + GlobalDTGralMarcas(UsuarioActual.CveEmpresa) = Nothing + CargaDatos() + + RegistraScript("$('#DModalMarca').modal('hide')") End Sub #End Region diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 21187f697..51bc19045 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -2502,7 +2502,8 @@ Partial Class General_SaldosIniciales For Each nuevaEntrada As DataRow In dt.FiltraParametros($"TRIM(Almacen) = '{almacenActual}'").Rows contadorMovimientos += 1 - Dim RowPS As DataRow = ProductosServiciosRef.FiltroPrimero($"Codigo = '{nuevaEntrada("CodigoPS")}' ") + 'Dim RowPS As DataRow = ProductosServiciosRef.FiltroPrimero($"Codigo = '{nuevaEntrada("CodigoPS").ToString.Trim}' ") + Dim RowPS As DataRow = ProductosServiciosRef.FiltroPrimero($"Codigo = '{nuevaEntrada("CodigoPS").ToString.Trim(" "c)}' ") If RowPS IsNot Nothing Then Dim CvePS As Integer = RowPS("CvePS").ToString().ToEntero() diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 9823c5e99..c89c8e8a7 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -4398,7 +4398,7 @@ Partial Class Inventarios_EntradasSalidas If Valido Then Dim CveClasificacion As Integer - Dim CveUM As Double + Dim CveUM As Integer Dim CodigoPS As String = "" Dim PS As String = "" @@ -4415,6 +4415,14 @@ Partial Class Inventarios_EntradasSalidas PS = dr("PS").ToString.ToString End If + Dim CantidadExistencia = GetExistencias(CvePS, CveUM, UsuarioActual.CveEmpresa, DdlAlmacenCambioVigencias.SelectedValue.ToEntero, CveSeccionAlmacen, Serie, Lote, Caducidad.ToDateTime()) + + If Cantidad > CantidadExistencia Then + Dim msg = $"El producto {PS} no tiene existencia. " + If(Serie.Length > 0, $"Serie: {Serie} ", "") + If(Lote.Length > 0, $"Lote: {Lote} ", "") + If(Caducidad.ToDateTime() > MinFecha, $"Caducidad: {Caducidad} ", "") + Alert(msg, TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Dim registro As DataRow = DtMovimientosCambioVigencias.NewRow registro.Item("Cantidad") = Cantidad registro.Item("CveUM") = CveUM diff --git a/OC/OC.aspx b/OC/OC.aspx index eaf90f554..f6003cce7 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -455,7 +455,7 @@ Método de pago: - + @@ -1563,6 +1563,89 @@
+ + + +
+ + + +
+
+
+ + Anticipos +
+
+ +
+
+
+ +
+ +
+
+ + + + + + % + +
+
+
+
+ +
+
+ + + + + + $ + +
+ +
+
+
+
+ +
+ +
+ + + +
+

+
+ +
+ +
+
+
+ +
+ + + + + + +
+
+
+ + +
@@ -2912,10 +2995,34 @@ $('#<%= TxtSAImPorcentaje.ClientID%>').val(FormatoNumero(importe, 2).replace(/,/g, "")); }); + + <%--$('#<%= TxtSAImPorcentajeContado.ClientID%>').keyup(function () { + console.log($(this).val()); + var importe = (ToDouble($(this).val()) / 100) * ToDouble($get("LblTotal").value.replace(/,/g, '')); + $('#<%= TxtSAImporteContado.ClientID%>').val( FormatoNumero(importe, 2).replace(/,/g, "") ); + }); + $('#<%= TxtSAImporteContado.ClientID%>').keyup(function () { + var importe = (100 * ToDouble($(this).val())) / ToDouble($get("LblTotal").value.replace(/,/g, "")); + $('#<%= TxtSAImPorcentajeContado.ClientID%>').val(FormatoNumero(importe, 2).replace(/,/g, "")); + });--%> + + + $get('HdnWidth').value = $("#DivConceptosContenido").width(); }); + + function SAImPorcentajeContadokeyup() { + var importe = (ToDouble($('#TxtSAImPorcentajeContado').val()) / 100) * ToDouble($get("LblTotal").value.replace(/,/g, '')); + $('#TxtSAImporteContado').val(FormatoNumero(importe, 2).replace(/,/g, "")); + } + + function SAImporteContadokeyup() { + var importe = (100 * ToDouble($('#TxtSAImporteContado').val())) / ToDouble($get("LblTotal").value.replace(/,/g, "")); + $('#TxtSAImPorcentajeContado').val(FormatoNumero(importe, 2).replace(/,/g, "")); + } + function showDivEC(CveCotizacion) { $('#<%=TxtMotivoEliminacion.ClientID%>').val(""); $('#divEliminarCotizacion').modal(); diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index ad8408dbc..38415f4f5 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -2,6 +2,7 @@ Option Strict On Imports System.Data +Imports System.Data.SqlClient Imports System.IO Imports Extensiones Imports GemBox.Spreadsheet @@ -2820,6 +2821,15 @@ Partial Class OC_OC End If + If Not TieneError AndAlso DdlMetodoPago.SelectedValue.ToEntero = 0 AndAlso TipoOC = "OC" Then + + If Not GeneraAnticpoContado(CveOrdenCompra, OC.IniciaTransacSQL()) Then + TieneError = True + End If + + End If + + If Not TieneError Then If Conta IsNot Nothing Then Conta.Commit() OC.Commit() @@ -3207,6 +3217,15 @@ Partial Class OC_OC + + 'If Not TieneError AndAlso DdlMetodoPago.SelectedValue.ToEntero = 0 AndAlso TipoOC = "OC" Then + + ' If Not GeneraAnticpoContado(CveOrdenCompra, OC.IniciaTransacSQL()) Then + ' TieneError = True + ' End If + + 'End If + 'COMMIT If Not TieneError Then 'If MonedaTexto <> DdlMoneda.SelectedItem.Text Then @@ -3258,6 +3277,9 @@ Partial Class OC_OC End If End If + + + 'TERMINA TODO POR SI OCURRIÓ ALGO RARO If TieneError Then If OC IsNot Nothing Then OC.RollBack() @@ -5377,12 +5399,24 @@ Partial Class OC_OC End If End Sub - Private Sub EnviaCorreoSolicitudAnticipo(CveEvento As Integer) + Private Sub EnviaCorreoSolicitudAnticipo(CveEvento As Integer, Optional ImporteAnticipo As Decimal = 0) Dim Param As New List(Of String) + Dim DtPara As DataTable = GlobalDTUsuarios(DdlSAUsuario.SelectedValue.ToString.ToEntero, CveEmpresaActual) + If DdlMetodoPago.SelectedValue.ToEntero = 0 Then + DtPara = GlobalDTUsuarios(DdlSAUsuarioContado.SelectedValue.ToString.ToEntero, CveEmpresaActual) + End If + Param.Add(DtPara.Rows(0)("Correo").ToString()) 'Para Param.Add("Solicitud de anticipo de Orden de Compra") 'Asunto - Param.Add(GeneraCorreoAnticipo(lblFolio.Text, DtPara.Rows(0)("Nombre").ToString(), String.Format("http://sig.adssistemas.mx/OI/EventoDetalle.aspx?CveTipoEvento=1&CveEvento={0}", CveEvento), TxtSAImporte.Text, DdlProveedores.SelectedText)) + + + If ImporteAnticipo = 0 Then + ImporteAnticipo = TxtSAImporte.Text.ToDecimal + End If + + + Param.Add(GeneraCorreoAnticipo(lblFolio.Text, DtPara.Rows(0)("Nombre").ToString(), String.Format("http://sig.adssistemas.mx/OI/EventoDetalle.aspx?CveTipoEvento=1&CveEvento={0}", CveEvento), ImporteAnticipo.ToString, DdlProveedores.SelectedText)) Param.Add(String.Format("{0}PDF\OC-{1}.pdf", UsuarioActual.Empresa.Ruta, CveOrdenCompra)) Dim Hilo As New Threading.Thread(AddressOf MandaCorreoAnticipo) Hilo.Start(Param) @@ -8846,4 +8880,80 @@ Partial Class OC_OC End Sub + + Protected Sub DdlMetodoPago_SelectedIndexChanged(sender As Object, e As EventArgs) + + DVAnticposContado.Visible = False + + If DdlMetodoPago.SelectedValue.ToEntero = 0 Then + DVAnticposContado.Visible = True + DdlSAUsuarioContado.DataSource = GlobalDTUsuarios(-1, CveEmpresaActual).FiltraParametros("CvePlataforma = 1", "Nombre") + DdlSAUsuarioContado.DataBind() + DdlSAUsuarioContado.Items.Insert(0, New ListItem("Seleccione", "-1")) + 'CargaAnticiposSolicitudesContado() + End If + + UpPanelDVAnticiposContado.Update() + End Sub + + + Protected Function GeneraAnticpoContado(CveOrdenCompraContado As Integer, ByRef transaccionSql As SqlTransaction) As Boolean + + Dim respuesta As Boolean = False + + If TxtSAImporteContado.Text.ToDecimal > LblTotal.Text.ToDecimal Then + Alert("El importe solicitado supera el saldo de la orden de compra", TipoMensaje.MsgAdvertencia) + Return False + End If + + Dim Descripcion As New StringBuilder + Descripcion.AppendFormat("Importe anticipo : ${0} ({1}%) - Pagar anticipo - Observacion: {2} ", TxtSAImporteContado.Text.FormatoNumero, TxtSAImPorcentajeContado.Text, CveOrdenCompraContado, TxtSAObservacionesContado.Text) + Descripcion.AppendFormat("Orden de compra : {0} - Ir a la orden de compra - Imprimir OC", Folio, CveOrdenCompraContado, Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompraContado))) + + + Dim Asunto As String = $"{lblFolio.Text} - Solicitud de anticipo " + Dim ObjOC As New ClsOC(transaccionSql) + Dim ObjOI As New ClsOIEventos(ObjOC.IniciaTransacSQL) + Dim TieneError As Boolean = False + + If ObjOI.AddEventoTarea(Asunto, Descripcion.ToString, 1, UsuarioActual.CveUsuario, DdlSAUsuarioContado.SelectedValue.ToString.ToEntero, NowADS(), NowADS().AddMinutes(15), -1, 1, -1, "-1", -1, -1, -1, -1, -1, CveOrdenCompraContado.ToEntero, -1, -1, UsuarioActual.CveUsuario, -1, CveEmpresaActual) Then + If Not ObjOC.AddSolicitudAnticipo(CveOrdenCompraContado, TxtSAImporteContado.Text.ToDecimal, CveEmpresaActual) Then + TieneError = True + End If + Else + TieneError = True + End If + + If Not ObjOI.AddEventoBitacora($"Solicitud de anticipo de orden de compra por ${TxtSAImporteContado.Text.FormatoNumero}", "-1", UsuarioActual.CveUsuario, CveEmpresaActual, CveOC:=CveOrdenCompraContado) Then + TieneError = True + End If + + If Not TieneError Then + EnviaCorreoSolicitudAnticipo(ObjOI.CveEvento, TxtSAImporteContado.Text.ToDecimal) + 'LIMPIA + DdlSAUsuarioContado.SelectedValue = "-1" + TxtSAImporteContado.Text = "" + TxtSAObservacionesContado.Text = "" + TxtSAImPorcentajeContado.Text = "" + Alert("La solicitud de anticipo ha sido enviada correctamente.", TipoMensaje.MsgInformacion) + Else + Alert("Ocurrió un error al hacer la solicitud de anticipo.", TipoMensaje.MsgError) + End If + + + If TieneError Then + respuesta = False + Else + respuesta = True + End If + + Return respuesta + + End Function + + + + + End Class + diff --git a/Transportes/RepContratoDetalle.aspx b/Transportes/RepContratoDetalle.aspx index 895ad85c7..8dd15d431 100644 --- a/Transportes/RepContratoDetalle.aspx +++ b/Transportes/RepContratoDetalle.aspx @@ -114,7 +114,7 @@
- +
@@ -273,16 +273,26 @@
- Descargar - - - +
+
+ + + + Descargar + + + + + + + + + +
+
@@ -303,7 +313,8 @@ + data-sort="true" DataKeyNames="CveViajePasajero, CveViaje, CveDestinoFinal, CveVendedor, Importe, Asiento, Nombre, Visa, Celular, Observacion, Estatus, CveUsuario, FechaIng, Sexo, Partida, Destino, Vendedor, Agencia, TelefonoAgencia" + OnRowDataBound="GvViajesPasajeros_RowDataBound"> @@ -400,7 +411,7 @@
<%-- Datos del Boleto --%>
- +
@@ -851,9 +862,10 @@ diff --git a/Transportes/RepContratoDetalle.aspx.vb b/Transportes/RepContratoDetalle.aspx.vb index 4880c0672..09b1c2067 100644 --- a/Transportes/RepContratoDetalle.aspx.vb +++ b/Transportes/RepContratoDetalle.aspx.vb @@ -16,6 +16,14 @@ Partial Class RepContratoDetalle ViewState("CveContrato") = value End Set End Property + Private Property ArchivoUpdate As String + Get + Return ViewState("ArchivoUpdate").ToString + End Get + Set(value As String) + ViewState("ArchivoUpdate") = value + End Set + End Property Private Property CveContratoTipo As Integer Get Return CType(ViewState("CveContratoTipo"), Integer) @@ -24,6 +32,14 @@ Partial Class RepContratoDetalle ViewState("CveContratoTipo") = value End Set End Property + Private Property CveContratoEstatus As Integer + Get + Return CType(ViewState("CveContratoEstatus"), Integer) + End Get + Set(value As Integer) + ViewState("CveContratoEstatus") = value + End Set + End Property Private Property CveMasivo As Integer Get Return CType(ViewState("CveMasivo"), Integer) @@ -85,6 +101,8 @@ Partial Class RepContratoDetalle CargaDatos() AsientoSeleccionado = "" CveViajePasajero = 0 + Session("FileExtension") = "" + ArchivoUpdate = "" End If End Sub @@ -92,7 +110,7 @@ Partial Class RepContratoDetalle 'Lista Tipo AF DdlTipoAF.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa) DdlTipoAF.DataBind() - DdlTipoAF.Items.Insert(0, New ListItem("-", "")) + DdlTipoAF.Items.Insert(0, New ListItem("-", "0")) End Sub Private Sub CargaDatos() 'Información General @@ -117,11 +135,14 @@ Partial Class RepContratoDetalle TxtDolares.Text = Contrato.Rows(0)("Importe").ToString TxtPesos.Text = Contrato.Rows(0)("ImporteMax").ToString TxtAnticipo.Text = Contrato.Rows(0)("ImporteMin").ToString - If Not String.IsNullOrEmpty(Contrato.Rows(0)("Archivo").ToString) Then - BtnDescargar.Visible = True - LbArchivo.Text = Contrato.Rows(0)("Archivo").ToString - LbArchivo.Visible = True + CveContratoEstatus = Contrato.Rows(0)("CveContratosEstatus").ToString.ToEntero + If Not IsDBNull(ObjContratos.Archivo) AndAlso ObjContratos.Archivo <> "" AndAlso ObjContratos.Archivo <> "-1" AndAlso ObjContratos.Archivo <> $"{ObjContratos.CveContrato}." Then ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "CONTRATOS", ObjContratos.Archivo) + 'A2.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CONTRATO&CveEmpresa={0}&Archivo={1}", ObjContratos.CveEmpresa, ViewState("FUrl").ToString))) + BtnDescargar.Visible = True + Else + BtnDescargar.Visible = False + A1.Visible = True End If 'Boletos Vendidos If Contrato.Rows(0)("CveContratoTipo").ToString() = "35" Then @@ -141,12 +162,13 @@ Partial Class RepContratoDetalle Response.Redirect($"~/Transportes/RepContratos.aspx") End If ObjContratos.Dispose() + UpTabContainer.Update() End Sub #End Region #Region "Información General" - Protected Sub GuardarArchivo(sender As Object, e As EventArgs) + Protected Sub BtnGuardarArchivo_Click1(sender As Object, e As EventArgs) Handles BtnGuardarArchivo.Click Dim FileExtension As String = "-1" Dim Filesgral As List(Of Archivo) = Anexo.getfiles().Archivos Dim Filename As String = "" @@ -162,7 +184,7 @@ Partial Class RepContratoDetalle For Each fileItem As Archivo In Filesgral - FileExtension = IO.Path.GetExtension($"{AppDomain.CurrentDomain.BaseDirectory}Temp\{fileItem.filename}").Replace(".", "") + FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") Session("FileExtension") = FileExtension Dim tempArray() As String tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) @@ -177,15 +199,18 @@ Partial Class RepContratoDetalle 'ImgArchivo.Src = "/imagenes/accept.png" Next - UpTabContainer.Update() + UPAFUL.Update() + RegistraScript("$('#ModalUpload').modal('hide')", "hidemodal1") - Button1.Visible = True + A1.Visible = True If Not FileExtension = "-1" Then BtnDescargar.Visible = True End If - UpdateContrato(sender, e) End Sub - Protected Sub DescargarArchivo(sender As Object, e As EventArgs) + Private Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click + DescargarArchivo() + End Sub + Private Sub DescargarArchivo() Dim File As New FileInfo(ViewState("FUrl").ToString) If File.Exists Then 'set appropriate headers @@ -209,18 +234,25 @@ Partial Class RepContratoDetalle End If 'nothing in the URL as HTTP GET End Sub Protected Sub UpdateContrato(sender As Object, e As EventArgs) + Dim ArchivoUpdate As String = "-1" + + If Session("FileExtension").ToString <> "" Then + ArchivoUpdate = "." & Session("FileExtension").ToString + Else + End If + Dim ObjContratos As New ClsContratos + ObjContratos.IniciaTransacSQL() Try - If ObjContratos.UpdateContratos(CveContrato, LbFolio.Text, TxtDescripcion.Text, "", -1, DdlClientes.SelectedValue.ToEntero, -1, TxtFechaSalida.Text.ToDate, TxtFechaRegreso.Text.ToDate, TxtUbicacion.Text, "", LbCveSubProyecto.Text.ToEntero, -1, -1, -1, -1, LbArchivo.Text, "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, TxtAnticipo.Text.ToDecimal, TxtPesos.Text.ToDecimal, TxtDolares.Text.ToDecimal, -1, -1) Then + 'ObjContratos.AddContratos(LbFolio.Text, TxtDescripcion.Text, "", UsuarioActual.CveProveedor, DdlClientes.SelectedValue.ToEntero, -1, TxtFechaSalida.Text.ToDate, TxtFechaRegreso.Text.ToDate, TxtUbicacion.Text, "", 10, -1, -1, -1, -1, LbArchivo.Text, "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, TxtAnticipo.Text.ToDecimal, TxtPesos.Text.ToDecimal, TxtDolares.Text.ToDecimal, DdlMoneda.SelectedValue.ToEntero, 0, CveContratoTipo:=34, CveContratosEstatus:=50, CveTipoAF:=DdlTipoAF.SelectedValue.ToEntero, CantidadPasajeros:=TxtCantidadPasajeros.Text.ToEntero, Observaciones:=TxtObservaciones.Text) + If ObjContratos.UpdateContratos(CveContrato, LbFolio.Text, TxtDescripcion.Text, "", UsuarioActual.CveProveedor, DdlClientes.SelectedValue.ToEntero, -1, TxtFechaSalida.Text.ToDate, TxtFechaRegreso.Text.ToDate, TxtUbicacion.Text, "", LbCveSubProyecto.Text.ToEntero, -1, -1, -1, -1, ArchivoUpdate, "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, TxtAnticipo.Text.ToDecimal, TxtPesos.Text.ToDecimal, TxtDolares.Text.ToDecimal, -1, 0, CveContratoTipo:=CveContratoTipo, CveTipoAF:=DdlTipoAF.SelectedValue.ToEntero, CveContratosEstatus:=CveContratoEstatus) Then Alert("Contrato actualizado correctamente") End If ObjContratos.Commit() - Catch ex As Exception - Alert($"Ocurrió un ocurrió un error al actualizar su boleto", TipoMensaje.MsgError) + Alert("Ocurrió un ocurrió un error al actualizar su boleto", TipoMensaje.MsgError) ObjContratos.RollBack() Finally - Alert("Contrato actualizado correctamente") ObjContratos.Dispose() CargaDatos() End Try @@ -267,7 +299,7 @@ Partial Class RepContratoDetalle AsientoSeleccionado = buttonID TxtAsiento.Text = buttonID.Substring(1) - UpBoletos.Update() + UpTabContainer.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "ModalEditar")) End Sub Protected Sub UpdateBoleto(sender As Object, e As EventArgs) @@ -292,8 +324,12 @@ Partial Class RepContratoDetalle Finally Alert("Su asiento fue actualizado correctamente") ObjTransportes.Dispose() - CargaDatos() + End Try + RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalEditar")) + UpTabContainer.Update() + UpPasajeros.Update() + CargaDatos() End Sub Protected Sub OnChangeRuta(sender As Object, e As EventArgs) Dim ObjTransportes As New ClsTransportes @@ -330,6 +366,7 @@ Partial Class RepContratoDetalle ViajeActual = dt End Sub Protected Sub ImprimirBoleto(sender As Object, e As EventArgs) + Dim dtResult As New DataTable() Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim Fecha As Date = GvRow.DataKey("FechaIng").ToDate @@ -346,21 +383,22 @@ Partial Class RepContratoDetalle New ReportParameter("Celular", GvRow.DataKey("Celular")), New ReportParameter("Importe", Math.Round(Importe, 1).ToString), New ReportParameter("TipoBoleto", "Tipo Boleto"), - New ReportParameter("Agencia", GvRow.DataKey("Agencia")), - New ReportParameter("TelefonoAgencia", GvRow.DataKey("TelefonoAgencia")), + New ReportParameter("Agencia", "Agencia"), + New ReportParameter("TelefonoAgencia", "TelefonoAgencia"), New ReportParameter("Asiento", GvRow.DataKey("Asiento")) } ImprimirPDFStimul($"{UsuarioActual.Empresa.Ruta}Formatos\Boleto.mrt", dtResult, params, NombreArchivo:="Boleto") - 'Empresas/Grales/Formatos/EntradaSalida.mrt - 'Empresas/188/Formatos/Boleto.mrt - + End Sub + Protected Sub GvViajesPasajeros_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("BtnImprimir")) + End If End Sub Protected Sub EditarBoleto(sender As Object, e As EventArgs) End Sub Protected Sub CambiarBoleto(sender As Object, e As EventArgs) - DdlRuta.ClearSelection() PnEditarViaje.Visible = True PnEditarUsuario.Visible = False Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) @@ -384,14 +422,15 @@ Partial Class RepContratoDetalle If ObjContratos.GetContratosReporte(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, -1, CveEstatus:=-1, CveTipoContrato:=35) Then For Each row As DataRow In ObjContratos.DtResultados.Rows Dim fecha As DateTime = row("FechaInicial").ToString.ToDateTime - ' Asigna los valores de la columna deseada al ListItem + 'Asigna los valores de la columna deseada al ListItem Dim listItem As New ListItem(row("SubProyecto").ToString() + " - " + fecha.ToShortDateString + " - " + fecha.ToShortTimeString, row("CveContrato").ToString()) - ' Agrega el ListItem al DropDownList + 'Agrega el ListItem al DropDownList DdlRuta.Items.Add(listItem) Next End If DdlRuta.SelectedValue = GvRow.DataKey("CveViaje") ObjContratos.Dispose() + UpTabContainer.Update() RegistraScript(String.Format("$('#{0}').modal('show');", "ModalEditar")) End Sub Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) diff --git a/Transportes/RepViajes.aspx.vb b/Transportes/RepViajes.aspx.vb index d7983b520..b99816534 100644 --- a/Transportes/RepViajes.aspx.vb +++ b/Transportes/RepViajes.aspx.vb @@ -1,8 +1,8 @@ Option Explicit On Option Strict On Imports System.Data +Imports Extensiones Imports Extensiones.ModExtensiones - Partial Class ListadoViajes Inherits ClsPaginas @@ -24,6 +24,8 @@ Partial Class ListadoViajes End Set End Property #End Region + +#Region "Carga Página" Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then @@ -38,18 +40,7 @@ Partial Class ListadoViajes DdlRutas.DataBind() Dim ObjRutas As New ClsTransportes() - 'If ObjRutas.GetRutas(-1, -1, -1, "", True, DateTime.Now) Then - ' If ObjRutas.DtResultados.Rows.Count > 0 Then - ' DdlRutas.DataSource = ObjRutas.DtResultados - ' DdlRutas.DataBind() - ' DdlRutas.Items.Insert(0, New ListItem("Seleccione Ruta", "")) - ' End If - 'End If - 'DdlRutas.DataSource = ObjRutas.DtResultados - ' DdlRutas.DataBind() - ' DdlRutas.Items.Insert(0, New ListItem("Seleccione Ruta", "")) - 'Lista Destinos' If ObjRutas.GetDestinos() Then If ObjRutas.DtResultados.Rows.Count > 0 Then @@ -73,17 +64,12 @@ Partial Class ListadoViajes End If ObjContratos.Dispose() GvContratos.DataBind() - 'If ObjContratos.GetContratos(-1, UsuarioActual.CveEmpresa, TipoContrato:=35) Then - ' GvContratos.DataSource = ObjContratos.DtResultados - ' GvContratos.DataBind() - 'End If End Sub - +#End Region Private Sub LBAgregarViaje_Click(sender As Object, e As EventArgs) Handles LBAgregarViaje.Click MostrarModal() End Sub - Public Sub MostrarModal() 'Generar Folio Dim CveSubProyecto As Integer = GlobalDTSubProyectos(-1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", "TipoSucursal = 1").ToEntero @@ -104,10 +90,9 @@ Partial Class ListadoViajes RegistraScript(String.Format("$('#{0}').modal('show');", "ModalAgregar")) End Sub - Protected Sub AddViaje(sender As Object, e As EventArgs) 'Generador de Viajes Masivos - Dim CveSubProyecto As Integer = DdlRutas.SelectedValue.ToEntero 'GlobalDTSubProyectos(-1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", "TipoSucursal = 1").ToEntero + Dim CveSubProyecto As Integer = GlobalDTSubProyectos(-1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", "TipoSucursal = 1").ToEntero If IsMasivo.Checked = True Then If TxtFechaInicial.Text = "" Or TxtFrecuencia.Text = "" Then Alert("Es necesario agregar la fecha inicial y la frecuencia", TipoMensaje.MsgAdvertencia) @@ -136,13 +121,15 @@ Partial Class ListadoViajes End If 'Agregamos contrato ObjContratos.IniciaTransacSQL() - If ObjContratos.AddContratos(LbFolio.Text, "", "", UsuarioActual.CveProveedor, -1, -1, fecha, fecha, "", "", CveSubProyecto, -1, -1, -1, -1, "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, -1, -1, -1, -1, 0, CveContratoTipo:=35, CveContratosEstatus:=50, CvePartida:=DdlPartida.SelectedValue.ToEntero, CveDestino:=DdlDestino.SelectedValue.ToEntero, CveMasivo:=CveMasivo, CveVendedor:=UsuarioActual.CveVendedor) > 0 Then + If ObjContratos.AddContratos(LbFolio.Text, "", "", UsuarioActual.CveProveedor, -1, -1, fecha, fecha, "", "", DdlRutas.SelectedValue.ToEntero, -1, -1, -1, -1, "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, -1, -1, -1, -1, 0, CveContratoTipo:=35, CveContratosEstatus:=50, CvePartida:=DdlPartida.SelectedValue.ToEntero, CveDestino:=DdlDestino.SelectedValue.ToEntero, CveMasivo:=CveMasivo, CveVendedor:=UsuarioActual.CveVendedor) > 0 Then ObjContratos.Commit() End If 'Actualizamos Folio + ObjFolio.IniciaTransacSQL() If ObjFolio.UpdateFolioActual(CveSubProyecto, "Con", True, UsuarioActual.CveEmpresa) Then - ObjFolio.Dispose() + ObjFolio.Commit() End If + ObjFolio.Dispose() Next Alert("Viajes Masivos generados correctamente.") Catch ex As Exception @@ -183,16 +170,17 @@ Partial Class ListadoViajes TxtFechaViaje.Text = "" 'Actualizamos Folio Dim ObjFolios As New ClsGralFolios + ObjFolios.IniciaTransacSQL() If ObjFolios.UpdateFolioActual(CveSubProyecto, "Con", True, UsuarioActual.CveEmpresa) Then - ObjFolios.Dispose() + ObjFolios.Commit() End If + ObjFolios.Dispose() ObjContratos.Dispose() CargaDatos() End Try End If End Sub - Protected Sub ToggleMasivo(sender As Object, e As EventArgs) DivFechaMasivo.Visible = IsMasivo.Checked RegistraScript(String.Format("$('#{0}').modal('show');", "ModalAgregar")) diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index 8294ff03c..1721e2c10 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -2208,7 +2208,7 @@ Partial Class ProductosyServicios #Region "Codigo Barras" 'Codigo barras/QR se retorna como una imagen bmp - Private Function GeneraCodigoQR(CodigoBarras As String, Alto As Integer, Largo As Integer, Margen As Integer, Formato As String) As Byte() + Private Function GeneraCodigoQR(CodigoBarras As String, Alto As Integer, Largo As Integer, Margen As Integer, Formato As String, Optional PureBacode As Boolean = False) As Byte() Dim barcodeWriter As New BarcodeWriter Dim opciones As New ZXing.Common.EncodingOptions @@ -2218,7 +2218,7 @@ Partial Class ProductosyServicios opciones.Height = Alto opciones.Width = Largo opciones.Margin = Margen - + opciones.PureBarcode = PureBacode barcodeWriter.Options = opciones Select Case Formato @@ -3582,6 +3582,13 @@ Partial Class ProductosyServicios ObjVentas.Dispose() If DtPrecios IsNot Nothing Then + + DtPrecios.Columns.Add(New DataColumn("CBBase64", GetType(String))) + + For Each Row As DataRow In DtPrecios.Rows + Row("CBBase64") = Convert.ToBase64String(GeneraCodigoQR(Row("CodigoBarras").ToString(), 40, 150, 0, "CODE_39", True)) + Next + Dim DirectorioArchivo As String = "Empresas/Grales/Formatos/Etiqueta.mrt" If System.IO.File.Exists(UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt") Then DirectorioArchivo = UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt"