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(" ") strBody.Append(" ") strBody.Append(" ") strBody.Append(" ") strBody.Append(" ") strBody.Append("
Por medio del Presente Correo Electronico, solicito a usted tenga a bien emitir cotización

") strBody.Append("
") strBody.AppendFormat("
Datos {0} ", "Cotización") strBody.Append(" ") strBody.Append(" ") strBody.AppendFormat(" ", objOC.Empresa) strBody.Append(" ") strBody.Append(" ") strBody.AppendFormat(" ", objOC.FechaEstimadaEntrega) strBody.Append(" ") strBody.Append(" ") strBody.AppendFormat(" ", objOC.LugarEntrega) strBody.Append(" ") 'strBody.Append(" ") 'strBody.AppendFormat(" ", objOC.Descripcion) 'strBody.Append(" ") 'strBody.Append(" ") 'strBody.AppendFormat(" ", OC.Justificacion) 'strBody.Append(" ") strBody.Append("
Empresa:{0}
Fecha Entrega:{0}  
Lugar Entrega:{0}  
Descripción:{0}
Justificación
") strBody.Append("
") strBody.Append("
") 'Cargo el detalle strBody.Append("
") strBody.Append("
") strBody.Append(" Productos a Cotizar ") strBody.Append(" ") 'strBody.Append(" ") strBody.Append(" ") '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("", dr("Cantidad").ToString.FormatoNumero, dr("Abreviatura"), dr("PS"), dr("Obs")) ', dr("Clasificacion"), dr("Codigo")) Next strBody.Append("
CantidadUnidadDescripciónObservaciónClasificaciónMaq
{0}{1}{2}{3}
") strBody.Append("
") strBody.Append("
") 'strBody.AppendFormat("
Capture la cotizacion AQUI
", CveOrdenCompra, CveProveedor, Encripta(String.Format("{0}|||{1}", CveOrdenCompra, CveProveedor))) strBody.AppendFormat("
Capture la cotizacion AQUI
", ModExtensiones.Encripta(String.Format("CveCotizacion={0}", CveCotizacion))) strBody.Append("
") strBody.Append("") Return strBody.ToString End Function #End Region End Class