diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index cafaeaf55..3023bc09f 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -439,8 +439,7 @@ Public Class ClsVentas Optional CorreoNotificacion As String = "", Optional FormaPaqueteria As Integer = 1, Optional FacturarSucursal As Boolean = False, Optional VentaDesglosaIEPS As Boolean = False, Optional ServicioDomicilio As Boolean = False, Optional RFCReceptor As String = "", Optional Adjunto As String = "-1", Optional DevolucionImportePagado As Decimal = 0, Optional EsGarantia As Boolean = False, Optional CveLineaAdicional As Integer = -1, Optional DescripcionVenta As String = "", Optional CveMedico As Integer = -1, Optional CveProcedimiento As Integer = -1, Optional CveTipoVenta As Integer = -1, Optional RequiereOS As Boolean = False, - Optional FechaParaSurtir As DateTime = MinFecha - ) As Boolean + Optional FechaParaSurtir As DateTime = MinFecha, Optional Paciente As String = "-1", Optional Episodio As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_VentasAdd") @@ -547,6 +546,9 @@ Public Class ClsVentas .Add("@RequiereOS", SqlDbType.Int).Value = RequiereOS .Add("@FechaParaSurtir", SqlDbType.DateTime).Value = If(FechaParaSurtir = MinFecha, Fecha, FechaParaSurtir) + .Add("@Paciente", SqlDbType.VarChar).Value = Paciente + .Add("@Episodio", SqlDbType.VarChar).Value = Episodio + .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue End With @@ -576,7 +578,8 @@ Public Class ClsVentas Optional AtencionA As String = "", Optional PedidoContrato As String = "", Optional CveFormaPago33 As Integer = -1, Optional CveMetodoPago33 As Integer = -1, Optional CveCliente As Integer = -1, Optional CveClienteSucursal As Integer = -1, Optional OrdenCompra As String = "-1", Optional RetIVA As Decimal = -1, Optional RetISR As Decimal = -1, Optional Kilometraje As Decimal = 0, Optional CveUsoCFDi As Integer = -1, Optional ServicioDomicilio As Boolean = False, Optional CveVendedor As Integer = -1, - Optional RequiereOS As Boolean = False, Optional CveMedico As Integer = -1, Optional CveProcedimiento As Integer = -1, Optional FechaParaSurtir As DateTime = MinFecha) As Boolean + Optional RequiereOS As Boolean = False, Optional CveMedico As Integer = -1, Optional CveProcedimiento As Integer = -1, Optional FechaParaSurtir As DateTime = MinFecha, + Optional Paciente As String = "-1", Optional Episodio As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_VentasUpdate") @@ -613,6 +616,8 @@ Public Class ClsVentas .Add("@CveMedico", SqlDbType.Int).Value = CveMedico .Add("@CveProcedimiento", SqlDbType.Int).Value = CveProcedimiento .Add("@FechaParaSurtir", SqlDbType.DateTime).Value = FechaParaSurtir + .Add("@Paciente", SqlDbType.VarChar).Value = Paciente + .Add("@Episodio", SqlDbType.VarChar).Value = Episodio End With Try @@ -627,7 +632,7 @@ Public Class ClsVentas Public Function UpdateObservacionesVenta(CveVenta As Integer, CveEmpresa As Integer, CveVendedor As Integer, Observaciones As String, FormaPaqueteria As Integer, CorreoNotificaciones As String, ObservacionesAlm As String, Pedido As String, OrdenCompra As String, FechaPago As String, CveUsoCFDI As Integer, Optional DescripcionVenta As String = "-1", Optional CveMedico As Integer = -1, Optional CveProcedimiento As Integer = -1, - Optional FechaParaSurtir As DateTime = MinFecha) As Boolean + Optional FechaParaSurtir As DateTime = MinFecha, Optional Paciente As String = "-1", Optional Episodio As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_VentasObservacionesUpdate") With SqlAdapter.SelectCommand.Parameters @@ -646,6 +651,8 @@ Public Class ClsVentas .Add("@CveMedico", SqlDbType.Int).Value = CveMedico .Add("@CveProcedimiento", SqlDbType.Int).Value = CveProcedimiento .Add("@FechaParaSurtir", SqlDbType.DateTime).Value = FechaParaSurtir + .Add("@Paciente", SqlDbType.VarChar).Value = Paciente + .Add("@Episodio", SqlDbType.VarChar).Value = Episodio End With Try diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 94b5a8d54..6288d471e 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -603,6 +603,20 @@ + + + Paciente: + + + + + + Episodio: + + + + + diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 5d31eacd1..dbcbea3a7 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -5876,13 +5876,21 @@ Partial Class Ventas CveTipoVenta = If(DbRowVenta("CveTipoVenta").ToString.ToEntero > 0, DbRowVenta("CveTipoVenta").ToString.ToEntero, -1) + TrVentasMedicas3.Visible = True + If DbRowVenta("CveMedico").ToString.ToEntero > 0 AndAlso CveTipoVenta.Contiene(1, 2, 3, 5) Then TrVentasMedicas1.Visible = True + DdlMedico.SelectedValueExist(DbRowVenta("CveMedico").ToString) DdlProcedimiento.SelectedValueExist(DbRowVenta("CveProcedimiento").ToString) + TxtPaciente.Text = DbRowVenta("Paciente").ToString + TxtEpisodio.Text = DbRowVenta("Episodio").ToString DdlMedico.Enabled = False DdlProcedimiento.Enabled = False + TxtPaciente.Enabled = False + TxtEpisodio.Enabled = False + If DbRowVenta("FechaParaSurtir").ToString().ToDate() > DateTime.MinValue Then TrVentasMedicas2.Visible = True @@ -13335,7 +13343,8 @@ Partial Class Ventas Kilometraje:=TxtKilometraje.Text.ToDouble, EsAmortizacion:=EsNCAmortizacion, CveTipoRetencion:=factura.CveTipoRetencion, CorreoNotificacion:=TxtCorreoNotificaciones.Text, FormaPaqueteria:=RblPaqueteria.SelectedValue.ToEntero, FacturarSucursal:=factura.FacturarSucursal, VentaDesglosaIEPS:=factura.VentaDesglosaIEPS, RFCReceptor:=RFCReceptor, Adjunto:=Adjunto, DevolucionImportePagado:=factura.DevolucionImportePagado, EsGarantia:=factura.EsGarantia, ServicioDomicilio:=TrServicioDomicilio.Visible, CveLineaAdicional:=DdlLineaAdicional.SelectedValue.ToEntero(), DescripcionVenta:=DescripcionVenta, - CveMedico:=CveMedico, CveProcedimiento:=CveProcedimiento, CveTipoVenta:=CveTipoVentaGuardar, RequiereOS:=ChkRequiereTecnico.Checked, FechaParaSurtir:=factura.FechaParaSurtir) Then + CveMedico:=CveMedico, CveProcedimiento:=CveProcedimiento, CveTipoVenta:=CveTipoVentaGuardar, RequiereOS:=ChkRequiereTecnico.Checked, FechaParaSurtir:=factura.FechaParaSurtir, + Paciente:=TxtPaciente.Text, Episodio:=TxtEpisodio.Text) Then ErrorList.Add("Ocurrió un error al Generar la Venta.
Revise su factura y cualquier detalle comuníquese a Soporte Técnico") Else If factura.TipoDocto.Contiene("Dev", "Egs") OrElse DtVentasNC IsNot Nothing OrElse CveEstatusRefacturacion > 0 OrElse CveAnticipoPadre > 0 Then @@ -17684,9 +17693,9 @@ Partial Class Ventas End If - If DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False Then + If DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False Or UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then 'VALIDA EXISTENCIA - If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 153, 140}) Then + If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 153, 140, 186}) Then If CveVenta <= 0 OrElse Me.EsCreaApartirDe Then If Existencia - TmpDT.SUM("Cantidad", $"CvePS = {CvePS} AND (EntregaDirecta IS NULL OR EntregaDirecta < 1)") < TxtCantidad.Text.ToDouble Then Alert("No cuenta con la cantidad suficiente en inventario. Cuenta con " + Existencia.FormatoNumero(2) + ".", TipoMensaje.MsgAdvertencia) @@ -21670,6 +21679,8 @@ Partial Class Ventas TrVentasMedicas1.Visible = True DdlMedico.Enabled = True DdlProcedimiento.Enabled = True + TxtPaciente.Enabled = True + TxtEpisodio.Enabled = True End If @@ -21844,7 +21855,8 @@ Partial Class Ventas PedidoContrato:=TxtPedidoContrato.Text, AtencionA:=TxtAtencionA.Text.Trim, CveMetodoPago33:=DdlMetodoPago33.SelectedValue.ToEntero(), CveFormaPago33:=DdlFormaPago33.SelectedValue.ToEntero(), TipoDocto:=DdlTipoComprobante.SelectedValue, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, OrdenCompra:=TxtOrdenCompra.Text, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, Kilometraje:=TxtKilometraje.Text.ToDecimal, CveUsoCFDi:=DdlUsoCFDI.SelectedValue.ToEntero(), - CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), ServicioDomicilio:=TrServicioDomicilio.Visible, CveMedico:=DdlMedico.SelectedValue.ToEntero, CveProcedimiento:=DdlProcedimiento.SelectedValue.ToEntero, FechaParaSurtir:=FechaParaSurtir) Then + CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), ServicioDomicilio:=TrServicioDomicilio.Visible, CveMedico:=DdlMedico.SelectedValue.ToEntero, CveProcedimiento:=DdlProcedimiento.SelectedValue.ToEntero, + FechaParaSurtir:=FechaParaSurtir, Paciente:=TxtPaciente.Text, Episodio:=TxtEpisodio.Text) Then OcurrioError = True End If @@ -33679,6 +33691,8 @@ Partial Class Ventas TrVentasMedicas1.Visible = True DdlMedico.Enabled = True DdlProcedimiento.Enabled = True + TxtPaciente.Enabled = True + TxtEpisodio.Enabled = True End If If UsuarioActual.TienePermisoProceso(289) Then @@ -33735,7 +33749,8 @@ Partial Class Ventas If Not ObjVentas.UpdateObservacionesVenta(Me.CveVenta, UsuarioActual.CveEmpresa, DdlVendedor.SelectedValue.ToEntero(), TxtObsFact.Text, RblPaqueteria.SelectedValue.ToEntero(), TxtCorreoNotificaciones.Text, TxtObsAlmacen.Text, TxtPedidoContrato.Text, TxtOrdenCompra.Text, TxtFechaPago.Text, DdlUsoCFDI.SelectedValue.ToEntero, DescripcionVenta:=TxtDescripcionVenta.Text.Trim, - CveMedico:=DdlMedico.SelectedValue.ToEntero, CveProcedimiento:=DdlProcedimiento.SelectedValue.ToEntero, FechaParaSurtir:=FechaParaSurtir) Then + CveMedico:=DdlMedico.SelectedValue.ToEntero, CveProcedimiento:=DdlProcedimiento.SelectedValue.ToEntero, FechaParaSurtir:=FechaParaSurtir, Paciente:=TxtPaciente.Text, + Episodio:=TxtEpisodio.Text) Then TieneError = True End If @@ -36092,6 +36107,7 @@ Partial Class Ventas TrVentasMedicas1.Visible = True TrVentasMedicas2.Visible = True + TrVentasMedicas3.Visible = True For Each item As ListItem In RBLTipoVenta.Items item.Text = $"  {item.Text}" @@ -36172,7 +36188,7 @@ Partial Class Ventas TdFechaOS1.Visible = ChkRequiereTecnico.Checked - TdFechaOS2.Visible = ChkRequiereTecnico.Checked + UpCliente.Update() End Sub @@ -36339,6 +36355,27 @@ Partial Class Ventas End If End If + + + For Each GvRow As GridViewRow In GvProductosProcedimiento.Rows + Dim Cantidad As Decimal = GvRow.FCTextBox("TxtCantidad").Text.ToDecimal + Dim CveUnidadMedida As Integer = GvRow.DataKey("CveUnidadMedida").ToEntero + Dim Abreviatura As String = GvRow.DataKey("Abreviatura").ToString + Dim PU As Decimal = GvRow.DataKey("Precio").ToDecimal + Dim CveClasificacion As Integer = GvRow.DataKey("CveClasificacion").ToEntero + Dim Clasificacion As String = GvRow.DataKey("Clasificacion").ToString + Dim CvePS As Integer = GvRow.DataKey("CvePS").ToEntero + + If Cantidad > 0 Then + + If Not ValidaAgregarPS(CvePS, CveUnidadMedida, PU, 2) Then + Alert("No hay existencia.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + End If + Next + ChkRequiereTecnico.Checked = ChkRequiereTecnicoModal.Checked TxtFechaOS.Text = TxtFechaModal.Text @@ -36425,6 +36462,7 @@ Partial Class Ventas End If End If Next + If CountPsAgregados > 0 Then CalculaTotalesVenta() End If @@ -36492,7 +36530,8 @@ Partial Class Ventas If ObjOrdenServicio.AddOrdenesServicios(CveCliente, DdlSubProyectoDatos.SelectedValue.ToEntero, UsuarioActual.Nombre, TxtFechaOS.Text.Replace(",", "").ToDateTime, $"Venta: {LblSerie.Text}-{TxtFolio.Text}", UsuarioActual.CveUsuario, EstatusOrdenServicio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVentaOS, -1, -1, CveOSTipo, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero, Direccion:="", Telefono:="", CveModeloAuto:=-1, Año:="", CveMedico:=DdlMedico.SelectedValue.ToEntero, - CveProcedimiento:=DdlProcedimiento.SelectedValue.ToEntero, CveTipoVenta:=RBLTipoVenta.SelectedValue.ToEntero, FechaCita:=TxtFechaOS.Text.Replace(",", "").ToDateTime) Then + CveProcedimiento:=DdlProcedimiento.SelectedValue.ToEntero, CveTipoVenta:=RBLTipoVenta.SelectedValue.ToEntero, FechaCita:=TxtFechaOS.Text.Replace(",", "").ToDateTime, + Paciente:=TxtPaciente.Text, IdentificadorCliente:=TxtEpisodio.Text) Then CveOSVentaMedica = ObjOrdenServicio.CveOS Else errorList.Add("Se presento un error al guardar la orden de servicio.")