Facturacion 110318185708 Phpapp02
Facturacion 110318185708 Phpapp02
Facturacion 110318185708 Phpapp02
ALTER TABLE CAB_DOCUMENTO ADD FOREIGN KEY(IDEMP) REFERENCES EMPLEADOS ALTER TABLE DETALLE_DOCUMENTO ADD FOREIGN KEY (NDOC,TIP_DOC) REFERENCES CAB_DOCUMENTO GO --CREACION DE LA TABLA GENERADOR GO CREATE TABLE GENERADOR( PARAMETRO Varchar(40) Not Null, ULTIMO Int Null ) GO -- INSERCCION DE DATOS EN LA TABLA GENERADOR INSERT INTO GENERADOR values('DOCUMENTO',0) GO CREATE PROCEDURE SP_MANTEDOCUMENTO @NDO VARCHAR (5), @TIP VARCHAR (30), @IDC VARCHAR(5), @IDE VARCHAR (5), @FEC DATETIME , @SUBTOT REAL, @IGV REAL, @TOT REAL, @EST VARCHAR(20) AS BEGIN INSERT INTO CAB_DOCUMENTO VALUES (@NDO, @TIP, @IDC,@IDE, @FEC,@SUBTOT,@IGV,@TOT,@EST) END GO SELECT * FROM CLIENTES SELECT * FROM EMPLEADOS SELECT * FROM CAB_DOCUMENTO SELECT * FROM DETALLE_DOCUMENTO SELECT * FROM GENERADOR
http://sistemasddm.blogspot.com
http://sistemasddm.blogspot.com
CODIGO Facturacion (Form1.vb) Imports System.Data.SqlClient Public Class Facturacion Dim fila As Integer = -1 Dim TIPO As String = "" Dim D As Integer = 0 Dim pre As Double Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.txtFecha.Text = Now End Sub Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click Me.DatosGrid.Rows.Add("") End Sub Private Sub btnQuitar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuitar.Click If fila <> -1 Then Me.DatosGrid.Rows.RemoveAt(fila) fila = -1 Else MsgBox("Debe eliminar una fila") End If End Sub Private Sub btnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGrabar.Click Try 'CONDICIONES EN BOLETA If radBoleta.Checked = True Then TIPO = "BOLETA" End If If radFactura.Checked = True Then TIPO = "FACTURA" End If 'CABECERA cn.Open() Dim cmd As New SqlCommand("SP_MANTEDOCUMENTO", cn) Dim prm As New SqlParameter With cmd .CommandType = CommandType.StoredProcedure prm = .Parameters.Add("@NDO", SqlDbType.VarChar, 5) prm.Value = Me.txtNum.Text prm = .Parameters.Add("@TIP", SqlDbType.VarChar, 30) prm.Value = TIPO http://sistemasddm.blogspot.com
prm = .Parameters.Add("@IDC", SqlDbType.VarChar, 5) prm.Value = Me.txtCodCli.Text prm = .Parameters.Add("@IDE", SqlDbType.VarChar, 5) prm.Value = Me.txtCodEmpl.Text prm = .Parameters.Add("@FEC", SqlDbType.DateTime) prm.Value = Me.txtFecha.Text prm = .Parameters.Add("@SUBTOT", SqlDbType.Real) prm.Value = Me.txtSubTotal.Text prm = .Parameters.Add("@IGV", SqlDbType.Real) prm.Value = Me.txtIgv.Text prm = .Parameters.Add("@TOT", SqlDbType.Real) prm.Value = Me.txtTotal.Text prm = .Parameters.Add("@EST", SqlDbType.VarChar, 20) prm.Value = Me.cbEstado.SelectedItem .ExecuteNonQuery() End With cn.Close() cmd.Dispose() 'DETALLE Dim I As Integer Dim prod, precio, cant, imp, sql2 As String For I = 0 To DatosGrid.Rows.Count - 1 prod = DatosGrid.Rows(I).Cells(0).Value precio = DatosGrid.Rows(I).Cells(1).Value cant = DatosGrid.Rows(I).Cells(2).Value imp = DatosGrid.Rows(I).Cells(3).Value sql2 = "INSERT INTO DETALLE_DOCUMENTO VALUES('" + Me.txtNum.Text + "','" + TIPO + "','" + (I + 1).ToString + "', '" + prod + "' , '" + precio + "' , '" + cant + "')" Dim cmd2 As New SqlCommand(sql2, cn) cn.Open() cmd2.ExecuteNonQuery() cn.Close() cmd2.Dispose() Next MsgBox("Documento Almacenado") 'ACTUALIZAR Dim cmd3 As New SqlCommand("UPDATE GENERADOR SET ULTIMO = ULTIMO + 1 WHERE PARAMETRO = 'DOCUMENTO'", cn) cn.Open() cmd3.ExecuteNonQuery() cn.Close() cmd3.Dispose() pre = 0 Catch ex As Exception MsgBox(ex.Message) cn.Close() End Try End Sub http://sistemasddm.blogspot.com
Private Sub btnBusCliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBusCliente.Click Try Dim NR As Integer = -1 Dim Codigo As String = "" Codigo = InputBox("Ingrese Cliente:") Dim Da1 As New SqlDataAdapter("select * from CLIENTES where IdCLI = '" + Codigo + "'", cn) Da1.Fill(dsEntorno, "Busq1") NR = dsEntorno.Tables("Busq1").Rows.Count If NR > 0 Then Me.txtCodCli.Text = dsEntorno.Tables("Busq1").Rows(0)(0) Me.txtNomCli.Text = dsEntorno.Tables("Busq1").Rows(0)(1) Else MsgBox("Cliente no Existe") End If dsEntorno.Tables("Busq1").Rows.Clear() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub btnBusEmpleado_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBusEmpleado.Click Try Dim NR As Integer = -1 Dim Codigo As String = "" Codigo = InputBox("Ingrese Empleado:") Dim Da1 As New SqlDataAdapter("select * from EMPLEADOS where IDEMP = '" + Codigo + "'", cn) Da1.Fill(dsEntorno, "Busq2") NR = dsEntorno.Tables("Busq2").Rows.Count If NR > 0 Then Me.txtCodEmpl.Text = dsEntorno.Tables("Busq2").Rows(0)(0) Me.txtNomEmp.Text = dsEntorno.Tables("Busq2").Rows(0)(1) Else MsgBox("Empleado no Existe") End If dsEntorno.Tables("Busq2").Rows.Clear() Catch ex As Exception MsgBox(ex.Message) MsgBox(ex.ToString) End Try End Sub Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click Call limpiar() Me.txtNum.Text = Generadores("DOCUMENTO") End Sub Sub limpiar() Me.txtNum.Text = "" Me.txtCodCli.Text = "" Me.txtNomCli.Text = "" Me.txtCodEmpl.Text = "" Me.txtNomEmp.Text = "" http://sistemasddm.blogspot.com
Me.txtSubTotal.Text = "" Me.txtIgv.Text = "" Me.txtTotal.Text = "" Me.cbEstado.Text = "" Me.DatosGrid.Rows.Clear() Me.DatosGrid.DataSource = Nothing D=0 End Sub Private Sub DatosGrid_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DatosGrid.CellClick fila = e.RowIndex End Sub Private Sub DatosGrid_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DatosGrid.CellEnter Try If (DatosGrid.Rows(D).Cells(2).Value > 0) Then Me.DatosGrid.Rows(D).Cells(3).Value = Me.DatosGrid.Rows(D).Cells(2).Value * Me.DatosGrid.Rows(D).Cells(1).Value End If If (radBoleta.Checked = True) Then If (DatosGrid.Rows(D).Cells(3).Value > 0) Then pre = pre + DatosGrid.Rows(D).Cells(3).Value Me.txtSubTotal.Text = pre Me.txtIgv.Text = 0 Me.txtTotal.Text = Me.txtSubTotal.Text D=D+1 End If ElseIf (radFactura.Checked = True) Then If (DatosGrid.Rows(D).Cells(3).Value > 0) Then pre = pre + DatosGrid.Rows(D).Cells(3).Value Me.txtSubTotal.Text = pre Me.txtIgv.Text = (Val(Me.txtSubTotal.Text) * 0.19) Me.txtTotal.Text = (Val(Me.txtSubTotal.Text) + Val(Me.txtIgv.Text)) D=D+1 End If End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub btnImprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click tipoDocu = cbTipoDocu.SelectedItem codDocu = txtCodigoDocu.Text frmImprimir.Show() End Sub End Class
http://sistemasddm.blogspot.com
MODULO DE CONEXION Y AUTOGENERADOR DE CODIGO (Generar.vb) Imports System.Data.SqlClient Module Generar Public cn As New SqlConnection("server=localhost;database=SISTEMA; integrated security = true") Public dsEntorno As New DataSet Public tipoDocu As String Public codDocu As String Public Function Generadores(ByVal TABLA As String) As String Dim RESULT As String = "" Dim DR1 As SqlDataReader Dim ULT As Integer = 0 Dim CMD As New SqlCommand("SELECT ULTIMO FROM GENERADOR WHERE PARAMETRO = '" + TABLA + "'", cn) cn.Open() DR1 = CMD.ExecuteReader While DR1.Read ULT = Val(DR1("ULTIMO") + 1) End While cn.Close() Dim CEROS As Integer CEROS = 5 - Len(Str(ULT)) Select Case CEROS Case 3 : RESULT = Left(TABLA, 1) + "000" + Trim(Str(ULT)) Case 2 : RESULT = Left(TABLA, 1) + "00" + Trim(Str(ULT)) Case 1 : RESULT = Left(TABLA, 1) + "0" + Trim(Str(ULT)) Case 0 : RESULT = Left(TABLA, 1) + "" + Trim(Str(ULT)) End Select Generadores = RESULT End Function End Module
http://sistemasddm.blogspot.com
http://sistemasddm.blogspot.com
CODIGO DE FrmImprimir Imports System.Data.SqlClient Public Class frmImprimir Dim Cn As New SqlConnection("Server=LocalHost;Uid=sa;Password=123;Database=SISTEMA") Dim INFORME1 As Reporte Dim MITABLA As CrystalDecisions.CrystalReports.Engine.Table Dim MILOGIN As CrystalDecisions.Shared.TableLogOnInfo Private Sub frmImprimir_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try INFORME1 = New Reporte For Each Me.MITABLA In INFORME1.Database.Tables MILOGIN = MITABLA.LogOnInfo MILOGIN.ConnectionInfo.Password = "123" MILOGIN.ConnectionInfo.UserID = "sa" MITABLA.ApplyLogOnInfo(MILOGIN) Next Me.CrystalReportViewer1.ReportSource = INFORME1 INFORME1.RecordSelectionFormula = "{CAB_DOCUMENTO.TIP_DOC}='" + tipoDocu + "' And {DETALLE_DOCUMENTO.NDOC}='" + codDocu + "'" Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub End Class
http://sistemasddm.blogspot.com