Пример #1
0
        public void RenderAsControl(Option baseOption, System.Web.UI.WebControls.PlaceHolder ph)
        {
            System.Web.UI.WebControls.DropDownList result = new System.Web.UI.WebControls.DropDownList();
            result.ID = "opt" + baseOption.Bvin.Replace("-", "");
            result.ClientIDMode = System.Web.UI.ClientIDMode.Static;
            result.CssClass = "isoption";

            foreach (OptionItem o in baseOption.Items)
            {
                if (o.IsLabel)
                {
                    result.Items.Add(new System.Web.UI.WebControls.ListItem(o.Name, "systemlabel"));                    
                }
                else
                {
                    result.Items.Add(new System.Web.UI.WebControls.ListItem(o.Name, o.Bvin.Replace("-","")));                    
                }
            }

            ph.Controls.Add(result);
        }
        protected void btnSend_Click(object sender, EventArgs e)
        {
            try
            {
                if (Page.IsValid)
                {
                    string newItemId = "";

                    using (SPSite sps = new SPSite(SPContext.Current.Web.Url))
                        using (SPWeb spw = sps.OpenWeb())
                        {
                            SPListItemCollection itemsAdvertisingRecords = spw.Lists[ADVERTISING_RECORDS].Items;
                            SPListItem           newItem = itemsAdvertisingRecords.Add();

                            List <string> sendMailResponce = new List <string>(2);

                            System.Web.UI.WebControls.DropDownList officeElement =
                                new System.Web.UI.WebControls.DropDownList();
                            string nameBox;
                            string phoneBox;
                            if (SpAdvertisingTemplate == Templates.Plantilla_A)
                            {
                                officeElement = ddlOfficeA;
                                nameBox       = txbNameA.Text;
                                phoneBox      = txbPhoneA.Text;
                            }
                            else
                            {
                                officeElement = ddlOfficeB;
                                nameBox       = txbNameB.Text;
                                phoneBox      = txbPhoneB.Text;
                            }

                            sendMailResponce = this.SendMail(
                                spw, officeElement.SelectedIndex - 1, nameBox, phoneBox);

                            newItem["Title"] = nameBox;
                            newItem["T_x00ed_tulo_x0020_Campa_x00f1_a"] = spw.Lists[ADVERTISING_PARAMETERS].GetItemById(SpAdvertisingId).Title;
                            newItem["Tel_x00e9_fono_x0020_Registro"]    = phoneBox;
                            newItem["Agencia_x0020_Registro"]           = officeElement.SelectedItem.Value + " | " + officeElement.SelectedItem.Text;
                            newItem["Correo_x0020_Enviado"]             = Convert.ToBoolean(sendMailResponce[0]);
                            newItem["Comentarios_x0020_Registro"]       = sendMailResponce[1];

                            newItem.Update();
                            newItemId = newItem.ID.ToString();
                        }

                    Page.Response.Redirect(SpAdvertisingRedirect + "?ad=" + SpAdvertisingId + "&cl=" + newItemId, true);
                }
            }
            catch (Exception ex)
            {
                //pnlFormA.Visible = false;
                //pnlFormB.Visible = false;
                System.Web.UI.LiteralControl deadlineMessage = new System.Web.UI.LiteralControl();
                deadlineMessage.Text =
                    "<link rel='stylesheet' href='/_catalogs/masterpage/bmsc/styles/advertising_a.css'>" +
                    "<div class='advertisingMessage'>" + ex.Message + "</div>";

                this.Controls.Clear();
                this.Controls.Add(deadlineMessage);
            }
        }
Пример #3
0
 /// <summary>
 /// 为目标下拉框加上 "重新编制" 项
 /// </summary>
 /// <param name="DLL">目标下拉框</param>
 public static void ReCompileSelect(System.Web.UI.WebControls.DropDownList DDL)
 {
     DDL.Items.Insert(0, new System.Web.UI.WebControls.ListItem("重新编制", "0"));
     return;
 }
 public TypScaleContinuous()
 {
     scaleVersions = new List <string>();
     ddlContinuous = new System.Web.UI.WebControls.DropDownList();
     checkBox      = new System.Web.UI.WebControls.CheckBox();
 }
Пример #5
0
        public static void GetProductType(System.Web.UI.WebControls.DropDownList ddl)
        {
            string companyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD;

            SellOrderActiveMoneyDBHelper.GetProductType(companyCD, ddl);
        }
Пример #6
0
 /// <summary>
 /// 绑定项目(同时绑定对应的项目编号)
 /// </summary>
 /// <param name="ddl"></param>
 /// <param name="userinfo"></param>
 /// <param name="bindProjectNo">用来重载的任意字符串</param>
 public static void BindProject(System.Web.UI.WebControls.DropDownList ddl, XBase.Common.UserInfoUtil userinfo, string bindProjectNo)
 {
     ProjectBudgetDBHelper.BindProject(ddl, userinfo, bindProjectNo);
 }
Пример #7
0
 /// <summary>
 /// DropDown Bound Baþlangýç Item YOK
 /// </summary>
 /// <param name="ddlControl">Dropdownlist</param>
 /// <param name="dt">Datasource Datatable</param>
 /// <param name="DataTextField">Görüntülenecek Hücre</param>
 /// <param name="DataValueField">Value Hücre</param>
 /// <param name="SelectedValue">Seçili Hücre</param>
 public static void BindDDL(ref System.Web.UI.WebControls.DropDownList ddlControl, DataTable dt, string DataTextField, string DataValueField, string SelectedValue)
 {
     BindDDL(ref ddlControl, dt, DataTextField, DataValueField, SelectedValue, "", "");
 }
Пример #8
0
 /// <summary>
 /// DROPDOWNLIST I VALUE ÝLE TEXT AYNI OLACAK ÞEKÝLDE RAKAM ÝLE DOLDURUR.
 /// </summary>
 /// <param name="ddl">DropDownlList Ref Parametre</param>
 /// <param name="count">Kaça kadar?</param>
 public static void LoadNumberDDL(ref System.Web.UI.WebControls.DropDownList ddl, int count)
 {
     LoadNumberDDL(ref ddl, count, 1, 1, false);
 }
Пример #9
0
 /// <summary>
 /// DROPDOWNLIST I VALUE ÝLE TEXT AYNI OLACAK ÞEKÝLDE RAKAM ÝLE ÝSTENEN SAYIDA ARTARAK DOLDURUR.
 /// </summary>
 /// <param name="ddl">DropDownlList Ref Parametre</param>
 /// <param name="Count">Kaça kadar?</param>
 /// <param name="Step">Kaç Kaç Artsýn?</param>
 /// <param name="StartNumber">Kaçtan Baþlasýn?</param>
 public static void LoadNumberDDL(ref System.Web.UI.WebControls.DropDownList ddl, int Count, int Step, int StartNumber)
 {
     LoadNumberDDL(ref ddl, Count, Step, StartNumber, false);
 }
Пример #10
0
 /// <summary>
 /// DROPDOWNLIST I VALUE ÝLE TEXT AYNI OLACAK ÞEKÝLDE RAKAM ÝLE DOLDURUR.
 /// </summary>
 /// <param name="ddl">DropDownlList Ref Parametre</param>
 /// <param name="count">Kaça kadar?</param>
 /// <param name="count">Tek Hanelilerin Soluna '0' eklensin mi?</param>
 public static void LoadNumberDDL(ref System.Web.UI.WebControls.DropDownList ddl, int count, bool PadLeft)
 {
     LoadNumberDDL(ref ddl, count, 1, 1, PadLeft);
 }
Пример #11
0
        protected void btnSaveRefresh_Click(object sender, EventArgs e)
        {
            string          Mode = Request.QueryString["Mode"].ToString();
            OperationResult objOperationResult = new OperationResult();

            _protocolcomponentListDTO = new List <protocolcomponentDto>();

            _protocolDTO = new protocolDto();
            var id  = cbOrganization.SelectedValue.ToString().Split('|');
            var id1 = cbOrganizationInvoice.SelectedValue.ToString().Split('|');
            var id2 = cbIntermediaryOrganization.SelectedValue.ToString().Split('|');

            _protocolDTO.v_Name = txtProtocolName.Text;
            _protocolDTO.v_EmployerOrganizationId = id[0];
            _protocolDTO.v_EmployerLocationId     = id[1];
            _protocolDTO.i_EsoTypeId              = int.Parse(cbEsoType.SelectedValue.ToString());
            _protocolDTO.v_GroupOccupationId      = cbGeso.SelectedValue.ToString();
            _protocolDTO.v_CustomerOrganizationId = id1[0];
            _protocolDTO.v_CustomerLocationId     = id1[1];
            _protocolDTO.v_WorkingOrganizationId  = id2[0];
            _protocolDTO.v_WorkingLocationId      = cbIntermediaryOrganization.SelectedValue.ToString() != "-1" ? id2[1] : "-1";
            _protocolDTO.i_MasterServiceId        = int.Parse(cbService.SelectedValue.ToString());
            _protocolDTO.v_CostCenter             = txtCostCenter.Text;
            _protocolDTO.i_MasterServiceTypeId    = int.Parse(cbServiceType.SelectedValue.ToString());
            _protocolDTO.i_HasVigency             = 0;
            _protocolDTO.i_ValidInDays            = 0;
            _protocolDTO.i_IsActive       = 1;
            _protocolDTO.v_NombreVendedor = "";

            if (Mode == "New")
            {
                if (IsExistsProtocolName())
                {
                    Alert.Show("Este protocolo ya existe");
                    return;
                }

                CheckBoxField field1 = (CheckBoxField)grdData.FindColumn("CheckBoxField2");

                for (int i = 0; i < grdData.Rows.Count; i++)
                {
                    if (field1.GetCheckedState(i) == true)
                    {
                        _protocolDTO.v_ProtocolId = null;
                        GridRow row = grdData.Rows[i];
                        System.Web.UI.WebControls.TextBox txtPrice = (System.Web.UI.WebControls.TextBox)row.FindControl("r_Price");


                        protocolcomponentDto protocolComponent = new protocolcomponentDto();

                        protocolComponent.v_ComponentId = grdData.Rows[i].Values[5];
                        protocolComponent.r_Price       = float.Parse(txtPrice.Text.ToString());// float.Parse(grdData.Rows[i].Values[4].ToString());
                        //protocolComponent.i_OperatorId = -1;
                        //protocolComponent.i_Age = 0;
                        //protocolComponent.i_GenderId = 3;
                        //protocolComponent.i_IsAdditional = 0;
                        //protocolComponent.i_IsConditionalId =0;
                        System.Web.UI.WebControls.TextBox txtEdad = (System.Web.UI.WebControls.TextBox)row.FindControl("i_Age");
                        CheckBoxField fieldAdicional   = (CheckBoxField)grdData.FindColumn("CheckBoxField3");
                        bool          ChecAdicional    = fieldAdicional.GetCheckedState(i);
                        CheckBoxField fieldCondicional = (CheckBoxField)grdData.FindColumn("CheckBoxField4");
                        bool          ChecCondicional  = fieldCondicional.GetCheckedState(i);

                        protocolComponent.i_Age             = int.Parse(txtEdad.Text.ToString());
                        protocolComponent.i_IsAdditional    = ChecAdicional == true ? 1 : 0;
                        protocolComponent.i_IsConditionalId = ChecCondicional == true ? 1 : 0;

                        System.Web.UI.WebControls.DropDownList ddlOperador = (System.Web.UI.WebControls.DropDownList)grdData.Rows[i].FindControl("ddlOperador");
                        System.Web.UI.WebControls.DropDownList ddlGender   = (System.Web.UI.WebControls.DropDownList)grdData.Rows[i].FindControl("ddlGender");



                        protocolComponent.i_GenderId   = int.Parse(ddlGender.SelectedValue.ToString());
                        protocolComponent.i_OperatorId = int.Parse(ddlOperador.SelectedValue.ToString());

                        protocolComponent.i_IsConditionalIMC = 0;
                        protocolComponent.r_Imc = 0;

                        _protocolcomponentListDTO.Add(protocolComponent);
                    }
                }

                _protocolBL.AddProtocol(ref objOperationResult, _protocolDTO, _protocolcomponentListDTO, ((ClientSession)Session["objClientSession"]).GetAsList());
            }
            else if (Mode == "Edit")
            {
                _protocolDTO.v_ProtocolId = Session["ProtocolId"].ToString();
                //Eliminar Fisicamente registros de protocolcomponent
                _protocolBL.EliminarProtocolComponentByProtocolId(ref objOperationResult, Session["ProtocolId"].ToString());

                //Grabar de nuevo la entidad
                CheckBoxField field1 = (CheckBoxField)grdData.FindColumn("CheckBoxField2");

                for (int i = 0; i < grdData.Rows.Count; i++)
                {
                    if (field1.GetCheckedState(i) == true)
                    {
                        protocolcomponentDto protocolComponent = new protocolcomponentDto();
                        GridRow row = grdData.Rows[i];

                        System.Web.UI.WebControls.TextBox txtPrice = (System.Web.UI.WebControls.TextBox)row.FindControl("r_Price");
                        System.Web.UI.WebControls.TextBox txtEdad  = (System.Web.UI.WebControls.TextBox)row.FindControl("i_Age");
                        CheckBoxField fieldAdicional   = (CheckBoxField)grdData.FindColumn("CheckBoxField3");
                        bool          ChecAdicional    = fieldAdicional.GetCheckedState(i);
                        CheckBoxField fieldCondicional = (CheckBoxField)grdData.FindColumn("CheckBoxField4");
                        bool          ChecCondicional  = fieldCondicional.GetCheckedState(i);

                        System.Web.UI.WebControls.DropDownList ddlOperador = (System.Web.UI.WebControls.DropDownList)grdData.Rows[i].FindControl("ddlOperador");
                        System.Web.UI.WebControls.DropDownList ddlGender   = (System.Web.UI.WebControls.DropDownList)grdData.Rows[i].FindControl("ddlGender");



                        protocolComponent.v_ComponentId     = grdData.Rows[i].Values[5];
                        protocolComponent.r_Price           = float.Parse(txtPrice.Text.ToString());
                        protocolComponent.i_Age             = int.Parse(txtEdad.Text.ToString());
                        protocolComponent.i_IsAdditional    = ChecAdicional == true ? 1:0;
                        protocolComponent.i_IsConditionalId = ChecCondicional == true ? 1 : 0;



                        protocolComponent.i_GenderId   = int.Parse(ddlGender.SelectedValue.ToString());
                        protocolComponent.i_OperatorId = int.Parse(ddlOperador.SelectedValue.ToString());


                        protocolComponent.i_IsConditionalIMC = 0;
                        protocolComponent.r_Imc = 0;

                        _protocolcomponentListDTO.Add(protocolComponent);
                    }
                }

                _protocolBL.AddProtocol(ref objOperationResult, _protocolDTO, _protocolcomponentListDTO, ((ClientSession)Session["objClientSession"]).GetAsList());
            }
            //Analizar el resultado de la operación
            if (objOperationResult.Success == 1)  // Operación sin error
            {
                // Cerrar página actual y hacer postback en el padre para actualizar
                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
            }
            else  // Operación con error
            {
                Alert.ShowInTop("Error en operación:" + System.Environment.NewLine + objOperationResult.ExceptionMessage);
                // Se queda en el formulario.
            }
        }
Пример #12
0
        /// <summary>
        /// Handles the Click event of the lbSubir control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        /// <exception cref="Exception">
        /// El comprobante no pudo generarse: El RFC receptor del comprobante (" + rfcReceptorXml + ") no se encuentra registrado en el portal.
        /// or
        /// El comprobante no pudo generarse: El RFC emisor del comprobante (" + rfcEmisorXml + ") es distinto al RFC del proveedor actual (" + rfcWeb + ")
        /// or
        /// No se pudo guardar el PDF en la ruta especificada. Causa: " + ex.Message
        /// or
        /// No existe ruta de PDF asignada para el comprobante.
        /// or
        /// El comprobante no pudo generarse: " + ws.ObtenerMensaje() + ". Para más información consulte la trama con ID " + id
        /// or
        /// El comprobante no pudo generarse: " + ws.ObtenerMensaje()
        /// </exception>
        /// <exception cref="System.Exception">No se pudo guardar el PDF en la ruta especificada. Causa:  + ex.Message
        /// or
        /// No existe ruta de PDF asignada para el comprobante.
        /// or
        /// El comprobante no pudo generarse:  + ws.ObtenerMensaje() + . Para más información consulte la trama con ID  + id
        /// or
        /// El comprobante no pudo generarse:  + ws.ObtenerMensaje()</exception>
        protected void lbSubir_Click(object sender, EventArgs e)
        {
            //[0] = XML
            //[1] = PDF
            //[2] = ORDEN_COMPRA
            //[3] = ADICIONALES
            var _recepBcc = "";

            if (Session["_files"] == null || ((Dictionary <int, object[]>)Session["_files"]).Count <= 0)
            {
                var msg    = "No se han cargado comprobantes";
                var metodo = MethodBase.GetCurrentMethod().Name;
                RegLog(msg, metodo);
                (Master as SiteMaster).MostrarAlerta(this, msg, 4, null);
            }
            else
            {
                var comprobantesFallidos = ((Dictionary <int, object[]>)Session["_files"]).Where(x => x.Value[0] == null || x.Value[1] == null).Select(x => x.Key).ToList();
                var msg = "";
                if (comprobantesFallidos.Count == 1)
                {
                    msg = "El comprobante " + comprobantesFallidos.FirstOrDefault() + " no tiene alguno de los archivos requeridos para ser procesado.";
                    var metodo = MethodBase.GetCurrentMethod().Name;
                    RegLog(msg, metodo);
                    (Master as SiteMaster).MostrarAlerta(this, msg, 4, null);
                }
                else if (comprobantesFallidos.Count > 1)
                {
                    var compFallidos = string.Join(", ", comprobantesFallidos.ToArray());
                    msg = "Los comprobantes " + compFallidos + " no tienen alguno de los archivos requeridos para ser procesados.";
                    var metodo = MethodBase.GetCurrentMethod().Name;
                    RegLog(msg, metodo);
                    (Master as SiteMaster).MostrarAlerta(this, msg, 4, null);
                }
                else
                {
                    var mensajeFallidos = new List <KeyValuePair <int, string> >();
                    foreach (var comprobante in ((Dictionary <int, object[]>)Session["_files"]))
                    {
                        try
                        {
                            var xml                 = PostedFileToBytes((HttpPostedFile)comprobante.Value[0]);
                            var pdf                 = (HttpPostedFile)comprobante.Value[1];
                            var orden               = (HttpPostedFile)comprobante.Value[2];
                            var bytesPdf            = PostedFileToBytes(pdf);
                            var bytesOrden          = PostedFileToBytes(orden);
                            var xDoc                = GetEntryXmlDoc(xml);
                            var archivosAdicionales = comprobante.Value[3];
                            var ws = new WsRecepcion {
                                Timeout = (1800 * 1000)
                            };
                            //var ddl = FindControl("ddlTipoProveedor" + comprobante.Key);
                            System.Web.UI.WebControls.DropDownList ddlTipoProveedor = null;
                            var idTipoProveedor = "";
                            var observaciones   = "";
                            try
                            {
                                var ddl = (System.Web.UI.WebControls.DropDownList)getControl(Page, "ddlTipoProveedor" + comprobante.Key);
                                idTipoProveedor = ddl.SelectedValue;
                            }
                            catch (Exception ex) { }
                            try
                            {
                                var tb = (System.Web.UI.WebControls.TextBox)getControl(Page, "tbObservaciones" + comprobante.Key);
                                observaciones = tb.Text;
                            }
                            catch (Exception ex) { }

                            DbDataReader dr;

                            var     idUserWs = _idUser;
                            XmlNode xmlNode;
                            if (Session["USERNAME"].ToString().StartsWith("PROVE", StringComparison.OrdinalIgnoreCase))
                            {
                                idUserWs = "999999999";
                                #region Validacion RFC Receptor

                                var rfcReceptorXml = "";
                                xmlNode = xDoc.GetElementsByTagName("cfdi:Receptor").Item(0);
                                if (xmlNode?.Attributes != null)
                                {
                                    try
                                    {
                                        rfcReceptorXml = xmlNode.Attributes["rfc"].Value;
                                    }
                                    catch { }
                                    if (string.IsNullOrEmpty(rfcReceptorXml))
                                    {
                                        try
                                        {
                                            rfcReceptorXml = xmlNode.Attributes["Rfc"].Value;
                                        }
                                        catch { }
                                    }
                                }

                                _dbe.Conectar();
                                _dbe.CrearComando("SELECT IDEEMI FROM Cat_Emisor WHERE RFCEMI = @rfc");
                                _dbe.AsignarParametroCadena("@rfc", rfcReceptorXml);
                                dr = _dbe.EjecutarConsulta();
                                if (!dr.Read())
                                {
                                    _dbe.Desconectar();
                                    throw new Exception("El comprobante no pudo generarse: El RFC receptor del comprobante (" + rfcReceptorXml + ") no se encuentra registrado en el portal.");
                                }
                                _dbe.Desconectar();

                                #endregion
                                #region Validacion RFC Proveedor

                                var rfcWeb = "";
                                _dbe.Conectar();
                                _dbe.CrearComando("SELECT id_Receptor FROM Cat_Proveedores WHERE userProveedor = @user");
                                _dbe.AsignarParametroCadena("@user", Session["USERNAME"].ToString());
                                dr = _dbe.EjecutarConsulta();
                                if (dr.Read())
                                {
                                    rfcWeb = dr["id_Receptor"].ToString();
                                    _dbe.Desconectar();
                                    var rfcEmisorXml = "";
                                    xmlNode = xDoc.GetElementsByTagName("cfdi:Emisor").Item(0);
                                    if (xmlNode?.Attributes != null)
                                    {
                                        try
                                        {
                                            rfcEmisorXml = xmlNode.Attributes["rfc"].Value;
                                        }
                                        catch { }
                                        if (string.IsNullOrEmpty(rfcEmisorXml))
                                        {
                                            try
                                            {
                                                rfcEmisorXml = xmlNode.Attributes["Rfc"].Value;
                                            }
                                            catch { }
                                        }
                                    }
                                    if (!rfcEmisorXml.Equals(rfcWeb, StringComparison.OrdinalIgnoreCase))
                                    {
                                        throw new Exception("El comprobante no pudo generarse: El RFC emisor del comprobante (" + rfcEmisorXml + ") es distinto al RFC del proveedor actual (" + rfcWeb + ")");
                                    }
                                }
                                _dbe.Desconectar();

                                #endregion
                            }
                            #region Validacion TipoDeComprobante != Pago

                            var tipoComprobante = "";
                            xmlNode = xDoc.DocumentElement;
                            if (xmlNode?.Attributes != null)
                            {
                                try
                                {
                                    tipoComprobante = xmlNode.Attributes["tipoDeComprobante"].Value;
                                }
                                catch { }
                                if (string.IsNullOrEmpty(tipoComprobante))
                                {
                                    try
                                    {
                                        tipoComprobante = xmlNode.Attributes["TipoDeComprobante"].Value;
                                    }
                                    catch { }
                                }
                            }
                            if (tipoComprobante.Equals("P", StringComparison.OrdinalIgnoreCase) || tipoComprobante.Equals("Pago", StringComparison.OrdinalIgnoreCase))
                            {
                                throw new Exception("El comprobante es de pago, para subir complementos utilice la página de Consulta de Documentos");
                            }

                            #endregion
                            var inner    = xDoc.OuterXml;
                            var base64   = ControlUtilities.EncodeStringToBase64(inner);
                            var response = ws.RecibeComprobante(base64, idUserWs, Session["IDENTEMI"].ToString(), true, pdf != null, bytesOrden != null ? Path.GetFileName(orden.FileName) : "");
                            if (response != null && response[0] != null && response[1] != null)
                            {
                                var id     = response[0].ToString();
                                var estado = false;
                                bool.TryParse(response[1].ToString(), out estado);
                                if (estado)
                                {
                                    var serverUrlPdf   = "";
                                    var serverUrlOrden = "";
                                    if (pdf != null || orden != null)
                                    {
                                        var sql = "";


                                        sql = "SELECT TOP 1 dirdocs, emailRecepBcc FROM Par_ParametrosSistema ORDER BY idparametro DESC";
                                        _dbe.Conectar();
                                        _dbe.CrearComando(sql);
                                        dr = _dbe.EjecutarConsulta();
                                        if (dr.Read())
                                        {
                                            var rootDir = dr["dirdocs"].ToString();
                                            _recepBcc = dr["emailRecepBcc"].ToString().Trim();
                                            rootDir   = rootDir.Replace("docus", "");
                                            _dbe.Desconectar();
                                            sql = @"SELECT PDFARC, ORDENARC FROM Dat_Archivos WHERE IDEFAC = @ID";
                                            _dbr.Conectar();
                                            _dbr.CrearComando(sql);
                                            _dbr.AsignarParametroCadena("@ID", id);
                                            dr = _dbr.EjecutarConsulta();
                                            if (dr.Read())
                                            {
                                                try
                                                {
                                                    serverUrlPdf   = rootDir + @"\" + (dr["PDFARC"].ToString());   //Server.MapPath("~/" + dr["PDFARC"]);
                                                    serverUrlOrden = rootDir + @"\" + (dr["ORDENARC"].ToString()); //Server.MapPath("~/" + dr["ORDENARC"]);
                                                    serverUrlPdf   = Path.GetFullPath(serverUrlPdf);
                                                    serverUrlOrden = Path.GetFullPath(serverUrlOrden);
                                                    try
                                                    {
                                                        File.WriteAllBytes(serverUrlPdf, bytesPdf);
                                                    }
                                                    catch
                                                    {
                                                        if (pdf != null)
                                                        {
                                                            pdf.SaveAs(serverUrlPdf);
                                                        }
                                                    }
                                                    try
                                                    {
                                                        File.WriteAllBytes(serverUrlOrden, bytesOrden);
                                                    }
                                                    catch
                                                    {
                                                        if (orden != null)
                                                        {
                                                            orden.SaveAs(serverUrlOrden);
                                                        }
                                                    }
                                                }
                                                catch (Exception ex)
                                                {
                                                    throw new Exception("No se pudo guardar el PDF en la ruta especificada. Causa: " + ex.Message);
                                                }
                                            }
                                            else
                                            {
                                                throw new Exception("No existe ruta de PDF asignada para el comprobante.");
                                            }
                                            _dbr.Desconectar();
                                        }
                                    }
                                    if (archivosAdicionales != null)
                                    {
                                        var listAdicionales = (List <object[]>)archivosAdicionales;
                                        _dbe.Conectar();
                                        _dbe.CrearComando(@"SELECT [dirdocs] FROM [Par_ParametrosSistema]");
                                        var _varSql = _dbe.Comando.CommandText;
                                        dr = _dbe.EjecutarConsulta();
                                        var _rutaDoc = "";

                                        while (dr.Read())
                                        {
                                            _rutaDoc = dr["dirdocs"].ToString().Trim();
                                        }
                                        _dbe.Desconectar();
                                        var rutaRuc    = "recepcion/" + (_rutaDoc.Contains(Session["IDENTEMI"].ToString()) ? Session["IDENTEMI"].ToString() : "") + "/";
                                        var subcarpeta = Control.Localization.Now.ToString("yyyy/MM/dd");
                                        subcarpeta = (_rutaDoc + rutaRuc + subcarpeta + "/ADICIONALES/" + id + "/").Replace("/", @"\");
                                        Directory.CreateDirectory(subcarpeta);
                                        foreach (var item in listAdicionales)
                                        {
                                            var bytes       = (byte[])item[0];
                                            var dataType    = (string)item[1];
                                            var fileName    = (string)item[2];
                                            var filePath    = subcarpeta + @"\" + fileName;
                                            var virtualPath = @"docus\" + filePath.Replace(_rutaDoc, "");
                                            File.WriteAllBytes(filePath, bytes);
                                            if (File.Exists(filePath))
                                            {
                                                _dbr.Conectar();
                                                _dbr.CrearComando("INSERT INTO Dat_ArchivosAdicionales (idComprobante,path,dataType) OUTPUT inserted.idArchivo VALUES (@idComprobante,@path,@dataType)");
                                                _dbr.AsignarParametroCadena("@idComprobante", id);
                                                _dbr.AsignarParametroCadena("@path", virtualPath);
                                                _dbr.AsignarParametroCadena("@dataType", dataType);
                                                dr = _dbr.EjecutarConsulta();
                                                if (dr.Read())
                                                {
                                                    // OK
                                                }
                                                _dbr.Desconectar();
                                            }
                                        }
                                    }
                                    if (response[2] != null)
                                    {
                                        try
                                        {
                                            var arrayMail = (object[])response[2];

                                            var _servidor        = (string)arrayMail[0];
                                            var _puerto          = (int)arrayMail[1];
                                            var _ssl             = (bool)arrayMail[2];
                                            var _emailCredencial = (string)arrayMail[3];
                                            var _passCredencial  = (string)arrayMail[4];
                                            var _emailEnviar     = (string)arrayMail[5];
                                            var emails           = (string)arrayMail[6];
                                            var _bcc             = (string)arrayMail[7];
                                            var _cc = (string)arrayMail[8]; // _recepBcc;
                                            if (string.IsNullOrEmpty(_cc))
                                            {
                                                _cc = _recepBcc;
                                            }
                                            else
                                            {
                                                _cc += "," + _recepBcc;
                                            }
                                            var asunto  = (string)arrayMail[9];
                                            var mensaje = (string)arrayMail[10];

                                            var _em = new SendMail();
                                            _em.ServidorSmtp(_servidor, _puerto, _ssl, _emailCredencial, _passCredencial);
                                            _em.LlenarEmail(_emailEnviar, emails, _bcc, _cc, asunto, mensaje);
                                            _em.Adjuntar(xml, ((HttpPostedFile)comprobante.Value[0]).FileName);
                                            _em.Adjuntar(bytesPdf, Path.GetFileName(serverUrlPdf));
                                            _em.Adjuntar(bytesOrden, Path.GetFileName(serverUrlOrden));
                                            if (archivosAdicionales != null)
                                            {
                                                var listAdicionales = (List <object[]>)archivosAdicionales;
                                                listAdicionales.ForEach(x => _em.Adjuntar((byte[])x[0], (string)x[2]));
                                            }
                                            _em.EnviarEmail();
                                        }
                                        catch (Exception ex)
                                        {
                                        }
                                    }
                                    if (!string.IsNullOrEmpty(idTipoProveedor))
                                    {
                                        try
                                        {
                                            _dbr.Conectar();
                                            _dbr.CrearComando("UPDATE Dat_General SET id_TipoProveedor = @idProv WHERE idComprobante = @id");
                                            _dbr.AsignarParametroCadena("@idProv", idTipoProveedor);
                                            _dbr.AsignarParametroCadena("@id", id);
                                            _dbr.EjecutarConsulta1();
                                        }
                                        catch (Exception ex)
                                        {
                                        }
                                        finally
                                        {
                                            _dbr.Desconectar();
                                        }
                                    }
                                    try
                                    {
                                        _dbr.Conectar();
                                        _dbr.CrearComando("UPDATE Dat_General SET observaciones = @observaciones WHERE idComprobante = @id");
                                        _dbr.AsignarParametroCadena("@observaciones", observaciones);
                                        _dbr.AsignarParametroCadena("@id", id);
                                        _dbr.EjecutarConsulta1();
                                    }
                                    catch (Exception ex)
                                    {
                                    }
                                    finally
                                    {
                                        _dbr.Desconectar();
                                    }
                                }
                                else
                                {
                                    throw new Exception("El comprobante no pudo generarse: " + ws.ObtenerMensaje() + ". Para más información consulte la trama con ID " + id);
                                }
                            }
                            else
                            {
                                throw new Exception("El comprobante no pudo generarse: " + ws.ObtenerMensaje());
                            }
                        }
                        catch (Exception ex)
                        {
                            mensajeFallidos.Add(new KeyValuePair <int, string>(comprobante.Key, ex.Message));
                        }
                    }
                    if (mensajeFallidos.Count > 0)
                    {
                        var html = "<ul>";
                        foreach (var item in mensajeFallidos)
                        {
                            html += "<li><b>" + item.Key + "</b>: " + item.Value + "</li>";
                        }
                        html += "</ul>";
                        (Master as SiteMaster).MostrarAlerta(this, "Ocurrió uno o más errores al subir los comprobantes:<br>" + html, 4, null);
                    }
                    else
                    {
                        var urlDocus = "~/recepcion/Documentos.aspx";
                        (Master as SiteMaster).MostrarAlerta(this, "Todos los comprobantes se generaron con éxito", 2, null, "window.location.href = '" + ResolveClientUrl(urlDocus) + "';");
                    }
                    Session["_files"]   = new Dictionary <int, object[]>();
                    tbComprobantes.Text = "0";
                    CreateControls();
                }
            }
        }
Пример #13
0
        /// <summary>
        /// Creates the controls.
        /// </summary>
        private void CreateControls()
        {
            var items = 0;

            int.TryParse(tbComprobantes.Text, out items);

            panelComprobantes.Controls.Clear();


            for (var i = 1; i <= items; i++)
            {
                if (!((Dictionary <int, object[]>)Session["_files"]).ContainsKey(i))
                {
                    ((Dictionary <int, object[]>)Session["_files"]).Add(i, new object[] { null, null, null, null });
                }

                #region Definicion de Panel

                var content = new HtmlGenericControl("div");
                content.ID = "panelComprobante" + i;
                content.Attributes["class"]       = "panel panel-primary";
                content.Style["background-color"] = "rgba(245, 245, 245, 0)";

                var heading = new HtmlGenericControl("div");
                SqlDataSourceTipoProveedor.ConnectionString = _dbr.CadenaConexion;
                var ddlTipoProveedor = new System.Web.UI.WebControls.DropDownList
                {
                    CssClass       = "form-control",
                    DataSourceID   = "SqlDataSourceTipoProveedor",
                    DataValueField = "IdTipo",
                    DataTextField  = "nombre",
                    ID             = "ddlTipoProveedor" + i
                };
                ddlTipoProveedor.Attributes.Add("style", "text-align:center;display:" + (Convert.ToBoolean(Session["_isWorkflow"]) ? "inline" : "none"));
                ddlTipoProveedor.ClientIDMode = ClientIDMode.Static;
                ddlTipoProveedor.Visible      = false;
                //ddlTipoProveedor.Visible = Convert.ToBoolean(Session["_isWorkflow"]);

                var tbObservaciones = new System.Web.UI.WebControls.TextBox
                {
                    CssClass = "form-control",
                    ID       = "tbObservaciones" + i
                };
                tbObservaciones.Attributes.Add("style", "text-align:center;");
                tbObservaciones.Attributes.Add("placeholder", "OBSERVACIONES OPCIONALES PARA EL COMPROBANTE " + i);
                tbObservaciones.ClientIDMode = ClientIDMode.Static;

                heading.Attributes["class"] = "panel panel-heading";
                var innerRow1 = new HtmlGenericControl("div");
                innerRow1.Attributes["class"] = "row panel-title";
                var innerCol1 = new HtmlGenericControl("div");
                innerCol1.Attributes["class"] = "col-md-6";
                innerCol1.Attributes["style"] = "text-align: left;";
                var innerCol2 = new HtmlGenericControl("div");
                innerCol2.Attributes["class"] = "col-md-2";
                var innerCol3 = new HtmlGenericControl("div");
                innerCol3.Attributes["class"] = "col-md-4";
                var h3 = new System.Web.UI.HtmlControls.HtmlGenericControl("span");
                h3.InnerText = "Comprobante " + i + "";
                var span3 = new System.Web.UI.HtmlControls.HtmlGenericControl("span");
                span3.InnerText = Convert.ToBoolean(Session["_isWorkflow"]) ? "Tipo de Proveedor: " : "";
                span3.Visible   = false;
                var innerRow2 = new HtmlGenericControl("div");
                innerRow2.Attributes["class"] = "row";
                var innerCol1_2 = new HtmlGenericControl("div");
                innerCol1_2.Attributes["class"] = "col-md-12";
                innerCol1_2.Attributes["style"] = "text-align: center;";
                innerCol1_2.Controls.Add(tbObservaciones);
                innerCol1.Controls.Add(h3);
                innerCol2.Controls.Add(span3);
                innerCol2.Visible = Session["IDENTEMI"].ToString().Equals("HIM890120VEA") || Session["IDENTEMI"].ToString().Equals("SIH071204N90") || Session["IDENTEMI"].ToString().Equals("LAN7008173R5");
                innerCol3.Controls.Add(ddlTipoProveedor);
                innerCol3.Visible = Session["IDENTEMI"].ToString().Equals("HIM890120VEA") || Session["IDENTEMI"].ToString().Equals("SIH071204N90") || Session["IDENTEMI"].ToString().Equals("LAN7008173R5");
                innerRow1.Controls.Add(innerCol1);
                innerRow1.Controls.Add(innerCol2);
                innerRow1.Controls.Add(innerCol3);
                innerRow2.Controls.Add(innerCol1_2);
                heading.Controls.Add(innerRow1);
                heading.Controls.Add(innerRow2);

                var body = new HtmlGenericControl("div");
                body.Attributes["class"] = "panel-body";

                #endregion
                #region Division de rows

                var rowFilesFixed = new HtmlGenericControl("div");
                rowFilesFixed.ID = "rowFixed" + i;
                rowFilesFixed.Attributes["class"] = "row";

                var emptyRow = new HtmlGenericControl("div");
                emptyRow.Attributes["class"] = "row";
                emptyRow.InnerHtml           = "&nbsp;";

                var rowDropZone = new HtmlGenericControl("div");
                rowDropZone.ID = "rowDropZone" + i;
                rowDropZone.Attributes["class"] = "row";

                var colFilesFixed = new HtmlGenericControl("div");
                colFilesFixed.ID = "colFixed" + i;
                colFilesFixed.Attributes["class"] = "col-md-12";

                var colDropzone = new HtmlGenericControl("div");
                colDropzone.ID = "colDropzone" + i;
                colDropzone.Attributes["class"] = "col-md-12";

                var collapseDropZone = new HtmlGenericControl("div");
                collapseDropZone.ID = "collapseDropZone" + i;
                collapseDropZone.Attributes["class"] = "collapse";
                collapseDropZone.ClientIDMode        = ClientIDMode.Static;

                var rowBtnCollapse = new HtmlGenericControl("div");
                rowBtnCollapse.ID        = "rowBtnCollapse" + i;
                rowBtnCollapse.InnerHtml = "<button id='bCollapseAdicionales' runat='server' class='btn btn-primary btn-xs' type='button' data-toggle='collapse' data-target='#" + collapseDropZone.ClientID + "' aria-expanded='false' aria-controls='" + collapseDropZone.ClientID + "' visible='false'><span class='glyphicon glyphicon-plus-sign' aria-hidden='true'></span>&nbsp;Archivos Adicionales</button>";

                #endregion
                #region Titulos

                var rowTitulos = new HtmlGenericControl("div");
                rowTitulos.ID = "rowTitulo" + i;
                rowTitulos.Attributes["class"] = "row";

                var colTitulo1 = new HtmlGenericControl("div");
                colTitulo1.ID = "colTitulo" + i + "_1";
                colTitulo1.Attributes["class"] = "col-md-4";
                colTitulo1.InnerHtml           = "ARCHIVO XML *:";

                var colTitulo2 = new HtmlGenericControl("div");
                colTitulo2.ID = "colTitulo" + i + "_2";
                colTitulo2.Attributes["class"] = "col-md-4";
                colTitulo2.InnerHtml           = "ARCHIVO PDF *:";

                var colTitulo3 = new HtmlGenericControl("div");
                colTitulo3.ID = "colTitulo" + i + "_3";
                colTitulo3.Attributes["class"] = "col-md-4";
                colTitulo3.InnerHtml           = "ORDEN DE COMPRA (OPCIONAL):";

                #endregion
                #region Columnas

                var rowFields = new HtmlGenericControl("div");
                rowFields.ID = "rowComprobante" + i;
                rowFields.Attributes["class"] = "row";

                var colXml = new HtmlGenericControl("div");
                colXml.ID = "colXML" + i;
                colXml.Attributes["class"] = "col-md-4";

                var colPdf = new HtmlGenericControl("div");
                colPdf.ID = "colPDF" + i;
                colPdf.Attributes["class"] = "col-md-4";

                var colOrden = new HtmlGenericControl("div");
                colOrden.ID = "colOrden" + i;
                colOrden.Attributes["class"] = "col-md-4";

                #endregion
                #region Componentes

                var xml = new AsyncFileUpload();
                xml.ID = "xml_" + i;
                xml.Style["text-align"]   = "center";
                xml.UploadedComplete     += AsyncFileUpload_UploadedComplete;
                xml.OnClientUploadStarted = "xmlUpload";
                xml.OnClientUploadError   = "UploadError";

                var pdf = new AsyncFileUpload();
                pdf.ID = "pdf_" + i;
                pdf.Style["text-align"]   = "center";
                pdf.UploadedComplete     += AsyncFileUpload_UploadedComplete;
                pdf.OnClientUploadStarted = "pdfUpload";
                pdf.OnClientUploadError   = "UploadError";

                var orden = new AsyncFileUpload();
                orden.ID = "orden_" + i;
                orden.Style["text-align"]   = "center";
                orden.UploadedComplete     += AsyncFileUpload_UploadedComplete;
                orden.OnClientUploadStarted = "ordenUpload";
                orden.OnClientUploadError   = "UploadError";

                var adicionales = new HtmlGenericControl("div");
                adicionales.ID = "adicionales_" + i;
                adicionales.Attributes["class"]           = "dropzone";
                adicionales.Attributes["maxFiles"]        = "10";
                adicionales.Attributes["maxFileSizeMb"]   = "10";
                adicionales.Attributes["extraParam"]      = i.ToString();
                adicionales.Attributes["idBlockedButton"] = lbSubir.ClientID;
                adicionales.Attributes["message"]         = "<button type='button' class='btn btn-primary' data-toggle='tooltip' data-placement='bottom' title='Haga click o arrastre/suelte aquí para agregar archivos adicionales'><i class='fa fa-plus-square-o' aria-hidden='true'></i> Agregar</button>";
                var url     = ResolveClientUrl("~/recepcion/DropzoneHandler.ashx");
                var urlAjax = ResolveClientUrl("~/recepcion/SubirArchivos.aspx") + "/DropZone_UploadedComplete";
                adicionales.Attributes["url"]     = url;
                adicionales.Attributes["urlAjax"] = urlAjax;

                #endregion
                #region Creacion de layout

                rowTitulos.Controls.Add(colTitulo1);
                rowTitulos.Controls.Add(colTitulo2);
                rowTitulos.Controls.Add(colTitulo3);

                colXml.Controls.Add(xml);
                colPdf.Controls.Add(pdf);
                colOrden.Controls.Add(orden);

                rowFields.Controls.Add(colXml);
                rowFields.Controls.Add(colPdf);
                rowFields.Controls.Add(colOrden);

                colFilesFixed.Controls.Add(rowTitulos);
                colFilesFixed.Controls.Add(rowFields);

                collapseDropZone.Controls.Add(adicionales);
                colDropzone.Controls.Add(rowBtnCollapse);
                colDropzone.Controls.Add(collapseDropZone);

                rowFilesFixed.Controls.Add(colFilesFixed);
                rowDropZone.Controls.Add(colDropzone);

                body.Controls.Add(rowFilesFixed);
                body.Controls.Add(emptyRow);
                body.Controls.Add(rowDropZone);

                content.Controls.Add(heading);
                content.Controls.Add(body);
                panelComprobantes.Controls.Add(content);

                #endregion
            }
            lbSubir.Visible = (items > 0);
        }