--pantalla de facturacion global
This commit is contained in:
227
Ventas/FacturacionGlobal.aspx.vb
Normal file
227
Ventas/FacturacionGlobal.aspx.vb
Normal file
@@ -0,0 +1,227 @@
|
||||
Option Explicit On
|
||||
Option Strict On
|
||||
|
||||
Imports System.Data
|
||||
Imports Extensiones
|
||||
Partial Class Ventas_FacturacionGlobal
|
||||
Inherits ClsPaginas
|
||||
Private Property CveSubProyecto As Integer
|
||||
Get
|
||||
Return If(IsNothing(ViewState("CveSubProyecto")), -1, ViewState("CveSubProyecto").ToString().ToEntero())
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
ViewState("CveSubProyecto") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Property DtRemisiones As DataTable
|
||||
Get
|
||||
Return If(IsNothing(ViewState("DtRemisiones")), Nothing, CType(ViewState("DtRemisiones"), DataTable))
|
||||
End Get
|
||||
Set(value As DataTable)
|
||||
ViewState("DtRemisiones") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
If Not Page.IsPostBack Then
|
||||
CargaCombos()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#Region " C A R G A - D A T O S "
|
||||
|
||||
Public Sub CargaCombos()
|
||||
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa)
|
||||
DdlSubProyecto.DataBind()
|
||||
DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
|
||||
DdlPeriodo.DataSource = GlobalDTGralSATPeriodicidad()
|
||||
DdlPeriodo.DataBind()
|
||||
DdlPeriodo.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
|
||||
DdlMes.DataSource = GlobalDTGralSATMeses().FiltraParametros("ISNULL(CveSATPeriodicidad,0) <> 5")
|
||||
DdlMes.DataBind()
|
||||
DdlMes.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
|
||||
Dim Anio As Integer = Now.Year
|
||||
Dim AnioAnterior As Integer = Now.Year - 1
|
||||
|
||||
DdlAnio.Items.Add(New ListItem(Anio.ToString(), Anio.ToString()))
|
||||
DdlAnio.Items.Add(New ListItem(AnioAnterior.ToString(), AnioAnterior.ToString()))
|
||||
End Sub
|
||||
|
||||
Protected Sub DdlPeriodo_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
If DdlPeriodo.SelectedValue = "5" Then
|
||||
DdlMes.DataSource = GlobalDTGralSATMeses().FiltraParametros("ISNULL(CveSATPeriodicidad,0) = 5")
|
||||
Else
|
||||
DdlMes.DataSource = GlobalDTGralSATMeses().FiltraParametros("ISNULL(CveSATPeriodicidad,0) <> 5")
|
||||
End If
|
||||
DdlMes.DataBind()
|
||||
|
||||
UPFiltros.Update()
|
||||
End Sub
|
||||
|
||||
'Private Function CalculaFechas() As MFiltroPeriodicidad
|
||||
' Dim Retorno As New MFiltroPeriodicidad()
|
||||
' Dim Mes As String = GlobalDTGralSATMeses().FiltroPrimeroValor("Mes", $"CveSATMes = {DdlMes.SelectedValue}")
|
||||
|
||||
' Select Case DdlPeriodo.SelectedValue
|
||||
' Case "1"
|
||||
' Retorno.FechaI = DateTime.Now.AddDays(-1).Day.ToString() + "/" + Mes + "/" + DdlAnio.SelectedValue
|
||||
' Retorno.FechaF = Retorno.FechaI.ToDate().AddDays(1).ToString("dd/MM/yyyy")
|
||||
' Case "2"
|
||||
' Retorno.FechaI = DateTime.Now.AddDays(-7).Day.ToString() + "/" + Mes + "/" + DdlAnio.SelectedValue
|
||||
' Retorno.FechaF = Retorno.FechaI.ToDate().AddDays(7).ToString("dd/MM/yyyy")
|
||||
' Case "3"
|
||||
' If DateTime.Now.Day < 16 Then
|
||||
' Retorno.FechaI = "01/" + Mes + "/" + DdlAnio.SelectedValue
|
||||
' Retorno.FechaF = "15/" + Mes + "/" + DdlAnio.SelectedValue
|
||||
' Else
|
||||
' Dim LastDayOfMonth = DateTime.DaysInMonth(DdlAnio.SelectedValue.ToEntero(), DdlMes.SelectedValue.ToEntero())
|
||||
' Retorno.FechaI = "16/" + Mes + "/" + DdlAnio.SelectedValue
|
||||
' Retorno.FechaF = LastDayOfMonth.ToString() + "/" + Mes + "/" + DdlAnio.SelectedValue
|
||||
' End If
|
||||
' Case "4"
|
||||
' Dim LastDayOfMonth = DateTime.DaysInMonth(DdlAnio.SelectedValue.ToEntero(), DdlMes.SelectedValue.ToEntero())
|
||||
' Retorno.FechaI = "01/" + Mes + "/" + DdlAnio.SelectedValue
|
||||
' Retorno.FechaF = LastDayOfMonth.ToString() + "/" + Mes + "/" + DdlAnio.SelectedValue
|
||||
' Case "5"
|
||||
' Dim LastDayOfMonth = DateTime.DaysInMonth(DdlAnio.SelectedValue.ToEntero(), DdlMes.SelectedValue.ToEntero())
|
||||
' Dim PrimerMes = GlobalDTGralSATMeses().FiltroPrimeroValor("PrimerMes", $"CveSATMes = {DdlMes.SelectedValue}")
|
||||
' Dim SegundoMes = GlobalDTGralSATMeses().FiltroPrimeroValor("SegundoMes", $"CveSATMes = {DdlMes.SelectedValue}")
|
||||
|
||||
' Retorno.FechaI = "01/" + PrimerMes + "/" + DdlAnio.SelectedValue
|
||||
' Retorno.FechaF = LastDayOfMonth.ToString() + "/" + SegundoMes + "/" + DdlAnio.SelectedValue
|
||||
' End Select
|
||||
|
||||
' Return Retorno
|
||||
'End Function
|
||||
|
||||
Public Sub CargaDatos()
|
||||
Me.CveSubProyecto = -1
|
||||
|
||||
Dim CveCliente As Integer = UsuarioActual.Empresa.Funcionalidad(714).ToEntero()
|
||||
Dim FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
|
||||
Dim FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
|
||||
|
||||
Dim ObjVentas As New ClsVentas
|
||||
If ObjVentas.GetRepRemisionesSinFacturar(FechaI, FechaF, "-1", DdlSubProyecto.SelectedValue, CveCliente, -1, "-1", UsuarioActual.CveEmpresa, CveUsuarioConsulta:=UsuarioActual.CveUsuario, ConsultaInventario:=False) Then
|
||||
DtRemisiones = ObjVentas.DtResultados.FiltraParametros("CveVenta > 0 OR Folio IN ('Total Pesos')")
|
||||
Me.CveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero()
|
||||
Else
|
||||
DtRemisiones = Nothing
|
||||
End If
|
||||
ObjVentas.Dispose()
|
||||
|
||||
GvDatos.DataSource = DtRemisiones
|
||||
GvDatos.DataBind()
|
||||
|
||||
UPDatos.Update()
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
|
||||
CargaDatos()
|
||||
End Sub
|
||||
|
||||
Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound
|
||||
If e.Row.RowType = DataControlRowType.DataRow Then
|
||||
If e.Row.DBCampo("CveVenta").ToEntero() > 0 Then
|
||||
e.Row.FCCheckBox("chkDis").Visible = True
|
||||
Else
|
||||
e.Row.CssClass = "Totales"
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
|
||||
Dim CveCliente As Integer = UsuarioActual.Empresa.Funcionalidad(714).ToEntero()
|
||||
Dim CveMoneda As Integer = -1
|
||||
|
||||
Dim SbRemisiones As New StringBuilder()
|
||||
Dim RemisionesLista As New List(Of Integer)
|
||||
|
||||
For Each RowRem As GridViewRow In GvDatos.Rows
|
||||
If RowRem.RowType = DataControlRowType.DataRow Then
|
||||
If RowRem.FCCheckBox("chkDis").Checked Then
|
||||
SbRemisiones.AppendFormat("{0},", RowRem.DataKey("CveVenta"))
|
||||
RemisionesLista.Add(RowRem.DataKey("CveVenta").ToEntero())
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
If RemisionesLista.Count = 0 Then
|
||||
Alert("Debe seleccionar al menos una remisión", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
SbRemisiones.Remove(SbRemisiones.Length - 1, 1)
|
||||
|
||||
Dim DtRemisionesPS As New DataTable()
|
||||
Dim ObjClientes As New ClsClientes
|
||||
If ObjClientes.GetVentasRemisionesTotales(CveCliente, SbRemisiones.ToString(), 1) Then
|
||||
DtRemisionesPS = ObjClientes.DtResultados.Copy()
|
||||
End If
|
||||
ObjClientes.Dispose()
|
||||
|
||||
Dim ObjFactura = Modelos.Factura.CrearVentaNueva(UsuarioActual, Me.CveSubProyecto, CveCliente, CveMoneda, "Ing")
|
||||
ObjFactura.EsFacturaGlobal = True
|
||||
ObjFactura.CveSATPeriodicidad = DdlPeriodo.SelectedValue.ToEntero()
|
||||
ObjFactura.CveSATMes = DdlMes.SelectedValue.ToEntero()
|
||||
ObjFactura.SATAnio = DdlAnio.SelectedValue.ToEntero()
|
||||
ObjFactura.RemisionesLista = RemisionesLista
|
||||
ObjFactura.DtRemisionesPS = DtRemisionesPS
|
||||
ObjFactura.DtRemisiones = DtRemisiones.FiltraParametros($"CveVenta IN ({SbRemisiones.ToString()})")
|
||||
|
||||
For Each Dr As DataRow In DtRemisionesPS.Rows
|
||||
ObjFactura.AgregarPS(Dr("CvePS").ToString().ToEntero(), Dr("Cantidad").ToString().ToDecimal(), Dr("PU").ToString().ToDecimal(), Dr("Descuento").ToString().ToDecimal, Dr("Obs").ToString(), CveUM:=Dr("CveUM").ToString().ToEntero(),
|
||||
CveProyecto:=Dr("CveProyecto").ToString().ToEntero(), CveSubProyecto:=Dr("CveSubProyecto").ToString().ToEntero(), CveVentaDetallePadre:=Dr("CveVentaDetalle").ToString().ToEntero(), CveVentaDetalleRemision:=Dr("CveVentaDetalle").ToString().ToEntero())
|
||||
Next
|
||||
|
||||
ObjFactura.CalculaTotales()
|
||||
ObjFactura.PreparaTimbre()
|
||||
'ObjFactura.DtInventario = ObjFactura.DtDetalle.FiltraParametros("CveTipoPs = 2")
|
||||
|
||||
Dim SbAlert As New StringBuilder()
|
||||
Dim urlFactura As String = ""
|
||||
|
||||
Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing
|
||||
Try
|
||||
Retorno = ObjFactura.EmitirFactura(True)
|
||||
|
||||
If Retorno IsNot Nothing AndAlso Retorno.CveVenta > 0 Then
|
||||
SbAlert.AppendFormat("{0}<br>", Retorno.Mensajes(Retorno.Mensajes.Count - 1))
|
||||
SbAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF Factura</a></li></ul><br/>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1", Retorno.CveVenta)))
|
||||
|
||||
urlFactura = $"/Compras/PopUpVerFactura.aspx?P={Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1", Retorno.CveVenta))}"
|
||||
Else
|
||||
SbAlert.Append("Ocurrió un error al generar la factura")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
SbAlert.Append("Ocurrió un error al generar el documento")
|
||||
GuardaLog(ex.ToString())
|
||||
End Try
|
||||
|
||||
|
||||
If Retorno IsNot Nothing AndAlso Retorno.Mensajes.Count > 0 Then
|
||||
Retorno.Mensajes(Retorno.Mensajes.Count - 1) = SbAlert.ToString()
|
||||
End If
|
||||
|
||||
If Retorno IsNot Nothing AndAlso Retorno.Mensajes IsNot Nothing AndAlso Retorno.Mensajes.Count > 0 Then
|
||||
For Each Mensaje As String In Retorno.Mensajes
|
||||
Alert(Mensaje, If(Retorno.TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), If(Retorno.TieneError, "", "document.location.href=""/Ventas/FacturacionGlobal.aspx"";"), ShowCloseButton:=False)
|
||||
Next
|
||||
Else
|
||||
If SbAlert.Length = 0 Then
|
||||
SbAlert.Append("Ocurrió un error al generar la factura")
|
||||
End If
|
||||
Alert(SbAlert.ToString(), TipoMensaje.MsgError, ShowCloseButton:=False)
|
||||
End If
|
||||
|
||||
|
||||
If ObjFactura IsNot Nothing Then
|
||||
ObjFactura.Dispose()
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user