Files
SIG/OC/CotizacionEnvio.aspx.vb
2023-08-24 11:24:02 -07:00

424 lines
21 KiB
VB.net

Imports System.Data
Imports Extensiones
Partial Class OC_CotizacionEnvio
Inherits ClsPaginas
#Region "Propiedades"
Private Property CveOrdenCompra As Integer
Get
CveOrdenCompra = ViewState("CveOrdenCompra").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveOrdenCompra") = value
End Set
End Property
Private Property DtEnvio As DataTable
Get
DtEnvio = DirectCast(ViewState("DtEnvio"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtEnvio") = value
End Set
End Property
Private Property DtColectivas As DataTable
Get
DtColectivas = DirectCast(ViewState("DtColectivas"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtColectivas") = value
End Set
End Property
#End Region
#Region "C A R G A D A T O S"
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
'CType(Me.Master, Site).EsPopup = True
RegistraScript("$get('tdContenido').style.height='500px'")
If Request("CveOrdenCompra") IsNot Nothing AndAlso IsNumeric(Request("CveOrdenCompra")) AndAlso Request("CveOrdenCompra").ToEntero > 0 Then
ViewState("CveOrdenCompra") = Request("CveOrdenCompra")
CargaDatos()
Else
Alert("Error en CveOC", TipoMensaje.MsgError)
End If
End If
End Sub
Protected Sub CargaDatos()
CargaProveedoresClasificaciones()
CargaProveedores()
CargaColectivas()
CreaDTEnvio()
End Sub
Private Sub CreaDTEnvio()
DtEnvio = New DataTable
DtEnvio.Columns.Add("Tipo", GetType(String))
DtEnvio.Columns.Add("CveProveedorClasificacion", GetType(Integer))
DtEnvio.Columns.Add("ProveedorClasificacion", GetType(String))
DtEnvio.Columns.Add("CveProveedor", GetType(Integer))
DtEnvio.Columns.Add("RazonSocial", GetType(String))
DtEnvio.Columns.Add("RFC", GetType(String))
DtEnvio.Columns.Add("ContactoMail", GetType(String))
End Sub
Protected Sub CargaProveedoresClasificaciones()
CboProveedorClasificacion.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa)
CboProveedorClasificacion.DataBind()
CboProveedorClasificacion.Items.Insert(0, New ListItem("Clasificacion de Proveedor", "-1"))
End Sub
Protected Sub CboProveedorClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboProveedorClasificacion.SelectedIndexChanged
CargaProveedores()
End Sub
Protected Sub CargaProveedores()
CboProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedorClasificacion = {0} OR {0} = -1", CboProveedorClasificacion.SelectedValue))
CboProveedor.DataBind()
CboProveedor.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Protected Sub CargaColectivas()
Dim objColectiva As New ClsGenerales
If objColectiva.GetColectivas(-1, "-1", "-1", "1", UsuarioActual.CveEmpresa) Then
DtColectivas = objColectiva.DtResultados
ddlColectiva.DataSource = DtColectivas
ddlColectiva.DataBind()
ddlColectiva.Items.Insert(0, New ListItem("Seleccione la Colectiva", "-1"))
ddlColectiva.Items.Insert(1, New ListItem("AGREGAR NUEVO", "0"))
End If
objColectiva.Dispose()
End Sub
#End Region
Protected Sub ddlColectiva_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlColectiva.SelectedIndexChanged
If ddlColectiva.SelectedValue = "0" Then
txtColectiva.Enabled = True
Else
txtColectiva.Enabled = False
txtContactoMailColectiva.Text = If(Not IsDBNull(DtColectivas.FiltraParametros(String.Format("CveColectiva = {0}", ddlColectiva.SelectedValue))(0)("Correo")), DtColectivas.FiltraParametros(String.Format("CveColectiva = {0}", ddlColectiva.SelectedValue))(0)("Correo").ToString, "")
txtRFCColectiva.Text = If(Not IsDBNull(DtColectivas.FiltraParametros(String.Format("CveColectiva = {0}", ddlColectiva.SelectedValue))(0)("Correo")), DtColectivas.FiltraParametros(String.Format("CveColectiva = {0}", ddlColectiva.SelectedValue))(0)("RFC").ToString, "")
End If
End Sub
Protected Sub CboProveedor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboProveedor.SelectedIndexChanged
txtContactoMail.Text = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedValue)).Rows(0)("ContactoMail").ToString
txtRFC.Text = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedValue)).Rows(0)("RFC").ToString
End Sub
Protected Sub ImgAddDetalle_Click(sender As Object, e As ImageClickEventArgs) Handles ImgAddDetalle.Click
If CboProveedor.SelectedValue.ToEntero <= 0 Then
Alert("Seleccione proveedor", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DtEnvio IsNot Nothing Then
If DtEnvio.FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedItem.Value)).Rows.Count = 0 Then
Dim Clasif As String = ""
If CboProveedorClasificacion.SelectedItem.Value.ToEntero > 0 Then
Clasif = CboProveedorClasificacion.SelectedItem.Text
Else
Dim drt As DataRow
drt = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedValue)).Rows(0)
If drt IsNot Nothing Then
Dim dtt As DataTable = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedorClasificacion = {0}", drt("CveProveedorClasificacion").ToString()))
If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then
Clasif = dtt.Rows(0)("ProveedorClasificacion").ToString()
End If
End If
End If
Dim dr As DataRow = DtEnvio.NewRow
dr("Tipo") = "PROVEEDOR"
dr("ProveedorClasificacion") = Clasif
dr("CveProveedorClasificacion") = CboProveedorClasificacion.SelectedItem.Value
dr("RazonSocial") = CboProveedor.SelectedItem.Text
dr("CveProveedor") = CboProveedor.SelectedItem.Value
dr("RFC") = txtRFC.Text
dr("ContactoMail") = txtContactoMail.Text
DtEnvio.Rows.Add(dr)
GvProveedores.DataSource = DtEnvio.FiltraParametros("", "Tipo, ProveedorClasificacion")
GvProveedores.DataBind()
End If
End If
End Sub
Protected Sub ImgAddDetalleColectiva_Click(sender As Object, e As ImageClickEventArgs) Handles ImgAddDetalleColectiva.Click
If DtEnvio IsNot Nothing Then
' If DtEnvio.FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedItem.Value)).Rows.Count = 0 Then
Dim dr As DataRow = DtEnvio.NewRow
dr("Tipo") = "COLECTIVA"
dr("ProveedorClasificacion") = "-1"
dr("CveProveedorClasificacion") = -1
dr("RazonSocial") = If(ddlColectiva.SelectedValue.ToEntero = 0, txtColectiva.Text, ddlColectiva.SelectedItem.Text)
dr("CveProveedor") = ddlColectiva.SelectedItem.Value
dr("RFC") = txtRFCColectiva.Text
dr("ContactoMail") = txtContactoMailColectiva.Text
DtEnvio.Rows.Add(dr)
GvProveedores.DataSource = DtEnvio.FiltraParametros("", "Tipo, ProveedorClasificacion")
GvProveedores.DataBind()
'End If
ddlColectiva.SelectedIndex = 0
txtColectiva.Text = ""
txtContactoMailColectiva.Text = ""
End If
End Sub
Protected Sub GvProveedores_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvProveedores.RowDeleting
Dim DbRow As DataRow = Nothing
DbRow = DtEnvio.Rows(e.RowIndex)
DtEnvio.Rows.Remove(DbRow)
GvProveedores.DataSource = DtEnvio
GvProveedores.DataBind()
End Sub
Protected Sub btnEnviar_Click(sender As Object, e As EventArgs) Handles btnEnviar.Click
If DtEnvio IsNot Nothing AndAlso DtEnvio.Rows.Count = 0 Then
Alert("Agregue invitaciones a la solicitud", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim OrdenCotizacion As New List(Of Integer)
Dim Correo As New List(Of String)()
' Dim RFC As New List(Of String)()
Dim TieneError As Boolean = False
Dim objCotizacion As New ClsOC
Dim objColectiva As New ClsGenerales(objCotizacion.IniciaTransacSQL())
Try
Dim CveProveedor As Integer = -1
Dim CveColectiva As Integer = -1
Dim i As Integer = 0
For Each Row As GridViewRow In GvProveedores.Rows
CveProveedor = If(GvProveedores.Rows(Row.RowIndex).DataKey("Tipo") = "PROVEEDOR", GvProveedores.Rows(Row.RowIndex).DataKey("CveProveedor").ToEntero, -1)
CveColectiva = If(GvProveedores.Rows(Row.RowIndex).DataKey("Tipo") = "COLECTIVA", GvProveedores.Rows(Row.RowIndex).DataKey("CveProveedor").ToEntero, -1)
' RFC.Add(GvProveedores.Rows(Row.RowIndex).DataKey("RFC"))
Correo.Add(GvProveedores.Rows(Row.RowIndex).DataKey("ContactoMail"))
'Ingresar la colectiva si es que no existe
If CveColectiva = 0 Then
If objColectiva.AddColectivas(GvProveedores.Rows(Row.RowIndex).DataKey("RazonSocial").ToString, "", GvProveedores.Rows(Row.RowIndex).DataKey("RFC").ToString, "", "", GvProveedores.Rows(Row.RowIndex).DataKey("ContactoMail").ToString, -1, "", "1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
CveColectiva = objColectiva.CveColectiva
Else
TieneError = True
Exit For
End If
End If
If TieneError = False Then
If objCotizacion.AddCotizacion(CveOrdenCompra, CveProveedor, CveColectiva, "-1", "-1", "", 1, 0, 0) Then
'Cargar los detalles de la cotizacion
If objCotizacion.GetOrdenesDetalle(CveOrdenCompra) Then
'Agrega CveCotizacion a la lista
OrdenCotizacion.Add(objCotizacion.CveCotizacion)
For Each RowCD As DataRow In objCotizacion.DtResultados.Rows
If Not objCotizacion.AddCotizacionDetalle(objCotizacion.CveCotizacion, RowCD("CvePS").ToString.ToEntero, -1, RowCD("Cantidad").ToString.ToDecimal, RowCD("CveUnidadMedida").ToString.ToEntero, 0, "-1", "", RowCD("CveOrdenCompraDetalle").ToString.ToEntero) Then TieneError = True : Exit For
Next
'If TieneError = False Then
' Dim Body As String = GeneraCorreo(objCotizacion.CveCotizacion, objCotizacion)
' 'ViewState("Para") = Correo
' 'ViewState("Asunto") = "SIG - Solicitud de Cotizacion"
' 'ViewState("Body") = Body
' 'Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo)
' 'Hilo.Start()
'End If
Else
TieneError = True
Exit For
End If
Else
TieneError = True
Exit For
End If
End If
Next
Catch ex As Exception
OnError("Ocurrió error al mandar MAIL", ex)
objCotizacion.RollBack()
Finally
If TieneError = False Then
objCotizacion.Commit()
Alert("Correo de Solicitud Enviado.", TipoMensaje.MsgInformacion)
Else
objCotizacion.RollBack()
End If
If TieneError = False Then
Dim Body As String
For i = 0 To Correo.Count - 1
'Dim Body As String = GeneraCorreo(objCotizacion.CveCotizacion, objCotizacion)
Body = GeneraCorreo(OrdenCotizacion(i), objCotizacion)
ViewState("Para") = Correo(i)
ViewState("Asunto") = "SIG - Solicitud de Cotizacion"
ViewState("Body") = Body
Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo)
Hilo.Start()
Next
End If
objCotizacion.Dispose()
End Try
RegistraScript("Ir();")
End Sub
#Region " C O R R E O "
Private Sub MandaCorreo()
Dim Mail As New ClsSisMail()
' Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, ViewState("Para").ToString, ViewState("Asunto").ToString, ViewState("Body").ToString)
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, ViewState("Para").ToString, ViewState("Asunto").ToString, ViewState("Body").ToString)
End Sub
Private Function GeneraCorreo(CveCotizacion As Integer, objOC As ClsOC) As String
objOC.GetOC(CveOrdenCompra, UsuarioActual.CveEmpresa)
Dim strBody As New StringBuilder
strBody.Append("<html xmlns=""http://www.w3.org/1999/xhtml""> ")
strBody.Append("<head> ")
strBody.Append(" <style type=""text/css""> ")
strBody.Append(" body ")
strBody.Append(" { ")
strBody.Append(" margin:0px; ")
strBody.Append(" padding:0px 0px 0px 0px; ")
strBody.Append(" font-family: Verdana, Arial, Helvetica, sans-serif; ")
strBody.Append(" font-size: 10px; ")
strBody.Append(" background-color:#F0F0F0; ")
strBody.Append(" } ")
strBody.Append(" a.Texto ")
strBody.Append(" { ")
strBody.Append(" font-size:11px; ")
strBody.Append(" background-color:#F7F6F3; ")
strBody.Append(" text-decoration:none; ")
strBody.Append(" font-weight:bold; ")
strBody.Append(" } ")
strBody.Append(" .Texto ")
strBody.Append(" { ")
strBody.Append(" background-color:#F7F6F3; color:Black; font-family:Verdana; font-size:10px; text-align:center; vertical-align:middle; height:20px;")
strBody.Append(" } ")
strBody.Append(" .TextoAlterno ")
strBody.Append(" { ")
strBody.Append(" background-color:White; color:Black; font-family:Verdana; font-size:10px; text-align:center; ")
strBody.Append(" vertical-align:middle; height:20px;")
strBody.Append(" } ")
strBody.Append(" .BarraIdentidad ")
strBody.Append(" { ")
strBody.Append(" color:#FFFFFF; ")
strBody.Append(" background:#F0F0F0; ")
strBody.Append(" font-weight:bold; ")
strBody.Append(" font-size:19px; ")
strBody.Append(" font-style:oblique; ")
strBody.Append(" } ")
strBody.Append(" .Titulos ")
strBody.Append(" { ")
strBody.Append(" background-color: Gray;")
strBody.Append(" color:White; ")
strBody.Append(" font-family:Verdana; font-size:12px; text-align:center; ")
strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ")
strBody.Append(" text-decoration:none; ")
strBody.Append(" } ")
strBody.Append(" .Contenido2 ")
strBody.Append(" { ")
strBody.Append(" background-color: White;")
strBody.Append(" font-family:Verdana; font-size:12px; text-align:center; ")
strBody.Append(" vertical-align:middle; font-weight:bold; height:30px; ")
strBody.Append(" text-decoration:none; ")
strBody.Append(" } ")
strBody.Append(" .Verde {color: #00CC00;} ")
strBody.Append(" .Negro {color: #000000;} ")
strBody.Append(" .Rojo {color: #FF0000;} ")
strBody.Append(" </style> ")
strBody.Append("</head> ")
strBody.Append("<body> ")
strBody.Append("<div class='Titulos'>Por medio del Presente Correo Electronico, solicito a usted tenga a bien emitir cotización</div><br>")
strBody.Append("<div class='Contenido2' style='display: table!important'>")
strBody.AppendFormat(" <div id=""C_divOC"" style=""width: 660px""> <fieldset> <legend><b>Datos {0}</b></legend> ", "Cotización")
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td style=""width: 130px""> Empresa:</td><td colspan=""3""><b>{0}</b></td> ", objOC.Empresa)
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Fecha Entrega:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", objOC.FechaEstimadaEntrega)
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td>Lugar Entrega:</td><td><b>{0}</b></td><td>&nbsp;</td><td><b>&nbsp;</b></td> ", objOC.LugarEntrega)
strBody.Append(" </tr> ")
'strBody.Append(" <tr style=""height: 20px""> ")
'strBody.AppendFormat(" <td>Descripción:</td><td colspan='3'><b>{0}</b></td> ", objOC.Descripcion)
'strBody.Append(" </tr> ")
'strBody.Append(" <tr style=""height: 20px""> ")
'strBody.AppendFormat(" <td>Justificación</td><td colspan=""3""><textarea name=""ctlTJ"" rows=""5"" cols=""20"" readonly=""readonly""id=""ctlTJ"" style=""width: 300px;"">{0}</textarea></td> ", OC.Justificacion)
'strBody.Append(" </tr> ")
strBody.Append(" </table> ")
strBody.Append(" </fieldset> ")
strBody.Append(" </div> ")
'Cargo el detalle
strBody.Append(" <div style='width: 650px'> ")
strBody.Append(" <fieldset> ")
strBody.Append(" <legend>Productos a Cotizar</legend> ")
strBody.Append(" <table width=""650px""> <tr style='background-color:gray;color:White;font-family:Verdana;font-size:10px;text-align:center;vertical-align:middle;font-weight:bold;height:20px;text-decoration:none;'><th scope='col' style='width: 50px'>Cantidad</th><th scope='col' style='width: 50px'>Unidad</th><th scope='col' style='width: 225px'>Descripción</th><th scope='col' style='width: 225'>Observación</th>")
'strBody.Append(" <th scope='col' style='width: 100px'>Clasificación</th><th scope='col' style='width: 85px'>Maq</th></tr>")
strBody.Append(" </tr>")
'verifico los permisos según el estatus
Dim dtConceptos As DataTable = Nothing
If objOC.GetOrdenesDetalle(CveOrdenCompra) Then
dtConceptos = objOC.DtResultados
End If
For Each dr As DataRow In dtConceptos.Rows
strBody.AppendFormat("<tr class='Texto'><td style='width:50px;'>{0}</td><td style='width:50px;'>{1}</td><td align='left' style='width:225px;'>{2}</td><td align='left' style='width:225px;'>{3}</td></tr>", dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS"), dr("Obs")) ', dr("Clasificacion"), dr("Codigo"))
Next
strBody.Append(" </table> ")
strBody.Append(" </fieldset> ")
strBody.Append(" </div> ")
'strBody.AppendFormat("<div>Capture la cotizacion <a href='http://sig.adsistemas.mx/OC/CotizacionEnLinea.aspx?CveOrdenCompra={0}&CveProveedor={1}&Validacion={2}'>AQUI</a></div>", CveOrdenCompra, CveProveedor, Encripta(String.Format("{0}|||{1}", CveOrdenCompra, CveProveedor)))
strBody.AppendFormat("<div>Capture la cotizacion <a href='http://sig.adsistemas.mx/OC/CotizacionEnLinea.aspx?P={0}'>AQUI</a></div>", ModExtensiones.Encripta(String.Format("CveCotizacion={0}", CveCotizacion)))
strBody.Append("</div>")
strBody.Append("</body></html>")
Return strBody.ToString
End Function
#End Region
End Class