Files
SIG/Ventas/RepPedidosSTF.aspx.vb

166 lines
7.3 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports DocumentFormat.OpenXml.Office.CustomUI
Imports Extensiones
Partial Class Ventas_RepPedidosSTF
Inherits ClsPaginas
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaCombos()
End If
End Sub
Private Sub CargaCombos()
txtFechaI.Text = NowADS.FirstDayOfMonth.ToShortDateString
txtFechaF.Text = NowADS.LastDayOfMonth.ToShortDateString
CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto)
'Vendedor
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltraParametros("VendedorTipo in (1,4)") 'vendedores y vendedores de piso
DdlVendedor.DataBind()
DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1"))
DdlVendedor.Items.Insert(1, New ListItem("Sin Vendedor", "-2"))
If UsuarioActual.CveVendedor > 0 Then
DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor)
DdlVendedor.Enabled = False
End If
End Sub
Protected Sub CargaDatos()
Dim Opcion As Integer = 1
Dim FechaInicio As Date = MinFecha
Dim FechaFin As Date = MaxFecha
If TabG.ActiveTabIndex = 1 Then ' entregados
Opcion = 2
FechaInicio = txtFechaI.Text.ToDate
FechaFin = txtFechaF.Text.ToDate
Dim ObjVentas As New ClsVentas
If ObjVentas.GetRepPedidosSTF(DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Opcion, FechaInicio, FechaFin) Then
GvE.DataSource = ObjVentas.DtResultados
End If
ObjVentas.Dispose()
GvE.DataBind()
Else
Dim ObjVentas As New ClsVentas
If ObjVentas.GetRepPedidosSTF(DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Opcion, FechaInicio, FechaFin) Then
GvDatos.DataSource = ObjVentas.DtResultados
End If
ObjVentas.Dispose()
GvDatos.DataBind()
End If
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("CveVendedor") = "" Then e.Row.FCCheckBox("Chk").Visible = False
End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
UPDatos.Update()
End Sub
Protected Sub BtnEntregar_Click(sender As Object, e As EventArgs)
'validar que están seleccionados
Dim TmpDTRemis As New DataTable
TmpDTRemis.Columns.Add("CveVentaDetalle", GetType(Integer))
TmpDTRemis.Columns.Add("CveCliente", GetType(Integer))
TmpDTRemis.Columns.Add("CveSubProyecto", GetType(Integer))
TmpDTRemis.Columns.Add("CvePS", GetType(Integer))
TmpDTRemis.Columns.Add("Cantidad", GetType(Decimal))
TmpDTRemis.Columns.Add("CveUnidadMedida", GetType(Integer))
TmpDTRemis.Columns.Add("PU", GetType(Decimal))
TmpDTRemis.Columns.Add("CveVendedor", GetType(Decimal))
TmpDTRemis.Columns.Add("GastosEnvio", GetType(Decimal))
'agruparo por cliente
For Each gvr As GridViewRow In GvDatos.Rows
If gvr.FCCheckBox("chk").Checked Then
Dim drp As DataRow = TmpDTRemis.NewRow
drp("CvePS") = gvr.DataKey("CvePS").ToEntero
drp("Cantidad") = gvr.DataKey("Cantidad").ToDecimal
drp("PU") = gvr.DataKey("PU").ToDecimal
drp("CveUnidadMedida") = gvr.DataKey("CveUnidadMedida").ToEntero
drp("CveSubProyecto") = gvr.DataKey("CveSubProyecto").ToEntero
drp("CveCliente") = gvr.DataKey("CveCliente").ToEntero
drp("CveVendedor") = gvr.DataKey("CveVendedor").ToEntero
drp("CveVentaDetalle") = gvr.DataKey("CveVentaDetalle").ToEntero
drp("GastosEnvio") = gvr.DataKey("GastosEnvio").ToDecimal
TmpDTRemis.Rows.Add(drp)
End If
Next
If TmpDTRemis IsNot Nothing AndAlso TmpDTRemis.Rows.Count = 0 Then
Alert("No se ha seleccionado ninguna partida, favor de seleccionar", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ObjA As New ClsInventarios
ObjA.IniciaTransacSQL()
Dim TieneError As Boolean = False
Dim StrAlerta As New StringBuilder
For Each drt As DataRow In TmpDTRemis.FiltraParametros("", DistinctColumns:={"CveCliente", "CveSubProyecto", "CveVendedor", "GastosEnvio"}).Rows
Dim ObjFactura As Modelos.Factura = Modelos.Factura.CrearVentaNueva(UsuarioActual, drt("CveSubProyecto").ToString.ToEntero, drt("CveCliente").ToString.ToEntero, 1, "Rem")
ObjFactura.CveVendedor = drt("CveVendedor").ToString.ToEntero
For Each dr As DataRow In TmpDTRemis.FiltraParametros($"CveCliente ={drt("CveCliente")} AND CveVendedor = {drt("CveVendedor")} AND CveSubProyecto = {drt("CveSubProyecto")}").Rows
If ObjFactura IsNot Nothing Then
If Not ObjFactura.AgregarPS(dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDecimal, dr("PU").ToString.ToDecimal, 0, "", CveSubProyecto:=dr("CveSubProyecto").ToString.ToEntero, CveVentaDetallePadre:=dr("CveVentaDetalle").ToString.ToEntero) Then
Alert("Error al agregar producto", TipoMensaje.MsgAdvertencia)
TieneError = True
Exit For
Else
If Not ObjA.UpdateEstatusAlmacen(dr("CveVentaDetalle").ToString.ToEntero, 0) Then
TieneError = True
End If
End If
End If
Next
If drt("GastosEnvio").ToString.ToDecimal > 0 Then
Dim tCvePSEnvio As Integer = usuarioactual.empresa.Funcionalidad(160).toentero
If Not ObjFactura.AgregarPS(tCvePSEnvio, 1, drt("GastosEnvio").ToString.ToDecimal, 0, "", CveSubProyecto:=drt("CveSubProyecto").ToString.ToEntero) Then
TieneError = True
End If
End If
If Not TieneError Then
ObjFactura.CalculaTotales()
Dim Resp As New Modelos.Factura.MMensajeFactura
Resp = ObjFactura.EmitirFactura(False, Transac:=ObjA.IniciaTransacSQL)
If Resp.CveVenta > 0 Then
Dim a As String = "a"
StrAlerta.AppendFormat("<a href = '/Ventas/Ventas.aspx?CveVenta={0}' class='Texto'>{1}</a><br/>", Resp.CveVenta, Resp.SerieFolio)
'Respuesta.CveVenta = Resp.CveVenta
'Respuesta.SerieFolio = Resp.SerieFolio
'Respuesta.dtdetalle = TmpDTMat
Else
TieneError = True
End If
End If
Next
If Not TieneError Then
ObjA.Commit()
Alert("Se registraron las siguientes remisiones: <br/>" & StrAlerta.ToString)
CargaDatos()
Else
ObjA.RollBack()
End If
End Sub
End Class