コード例 #1
0
ファイル: BitacoraController.cs プロジェクト: njmube/CFDI-3
 /// <summary>
 /// 
 /// </summary>
 /// <param name="UUID"></param>
 /// <param name="RUTA"></param>
 /// <param name="PARAMETROS"></param>
 public static void gfLogFacturaRegistroError(string UUID, string RUTA, string PARAMETROS)
 {
     SQLConection context = new SQLConection();
     DataTable dt = new DataTable();
     context.Parametros.Clear();
     context.Parametros.Add(new SqlParameter("@UUID", UUID));
     context.Parametros.Add(new SqlParameter("@RUTA", RUTA));
     context.Parametros.Add(new SqlParameter("@PARAMETROS", PARAMETROS));
     dt = context.ExecuteProcedure("[sp_LOG_FacturaRegistroError]", true).Copy();
 }
コード例 #2
0
ファイル: ZambranoController.cs プロジェクト: njmube/CFDI-3
        public static DataTable lfdt_ZambranoGetDatosEncabezado(string sNombreDB, int inumeroregistro, int itype, int icompanynumber, int icontabilizada, int idocumentType, int internetDocument, int inumeroProviene, int _2Decimales = -1)
        {
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();

            switch (sNombreDB)
            {
                case "INTEGRA_ZAMBRANO_DIST":
                    context.Parametros.Clear();
                    context.Parametros.Add(new SqlParameter("@numeroregistro", inumeroregistro));
                    context.Parametros.Add(new SqlParameter("@type", itype));
                    context.Parametros.Add(new SqlParameter("@companynumber", icompanynumber));
                    context.Parametros.Add(new SqlParameter("@contabilizada", icontabilizada));
                    context.Parametros.Add(new SqlParameter("@documentType", idocumentType));
                    context.Parametros.Add(new SqlParameter("@internetDocument", internetDocument));
                    context.Parametros.Add(new SqlParameter("@numeroProviene", inumeroProviene));
                    dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneDatosDeEncabezado_Distribuidoras_v1]", true).Copy();
                    break;
                case "INTEGRA_ZAMBRANO_GASERA":
                    context.Parametros.Clear();
                    context.Parametros.Add(new SqlParameter("@numeroregistro", inumeroregistro));
                    context.Parametros.Add(new SqlParameter("@type", itype));
                    context.Parametros.Add(new SqlParameter("@companynumber", icompanynumber));
                    context.Parametros.Add(new SqlParameter("@contabilizada", icontabilizada));
                    context.Parametros.Add(new SqlParameter("@documentType", idocumentType));
                    context.Parametros.Add(new SqlParameter("@internetDocument", internetDocument));
                    context.Parametros.Add(new SqlParameter("@numeroProviene", inumeroProviene));
                    context.Parametros.Add(new SqlParameter("@2Decimales", (_2Decimales < 0) ? 0 : _2Decimales));
                    dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneDatosDeEncabezado_Gaseras_v1]", true).Copy();
                    break;
                case "INTEGRA_ZAMBRANO":
                    context.Parametros.Clear();
                    context.Parametros.Add(new SqlParameter("@numeroregistro", inumeroregistro));
                    context.Parametros.Add(new SqlParameter("@type", itype));
                    context.Parametros.Add(new SqlParameter("@companynumber", icompanynumber));
                    context.Parametros.Add(new SqlParameter("@contabilizada", icontabilizada));
                    context.Parametros.Add(new SqlParameter("@documentType", idocumentType));
                    context.Parametros.Add(new SqlParameter("@internetDocument", internetDocument));
                    context.Parametros.Add(new SqlParameter("@numeroProviene", inumeroProviene));
                    dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneDatosDeEncabezado_Estaciones_v1]", true).Copy();
                    break;
                default:
                    context.Parametros.Clear();
                    break;
            }

            if (dt.Rows.Count > 0)
                return dt;
            else
                throw new Exception("DB " + sNombreDB + " - lfdt_ZambranoGetDatosEncabezado - No tiene encabezado Factura " + inumeroregistro.ToString() + " Empresa " + icompanynumber.ToString());
        }
コード例 #3
0
 public bool ConsultaDetalleReporteContablePoliza(int iNumeroEmpresa, int iMes, int iAnio, string sTipoSolicitud, string sNumeroOrden, string sBD, ref string sMensaje)
 {
     SQLConection context = new SQLConection();
     DataTable dt = new DataTable();
     context.Parametros.Clear();
     context.Parametros.Add(new SqlParameter("@Numero_Empresa", iNumeroEmpresa));
     context.Parametros.Add(new SqlParameter("@Periodo", iMes));
     context.Parametros.Add(new SqlParameter("@Año", iAnio));
     dt = context.ExecuteProcedure("[" + sBD + "].[dbo].[sp_ObtienContabilidadPolizas]", true).Copy();
     if (dt.Rows.Count > 0)
         return CreaXMLPolizasContables(dt, iMes, iAnio, iNumeroEmpresa, sTipoSolicitud, sBD, ref sMensaje);
     else
     {
         sMensaje = string.Concat("sDescripcion:No se encontraron registros, periodo final ", iAnio, " - ", iMes, "|sPATH:");
         return false;
     }
 }
コード例 #4
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
 public string ConsultaOrdendeCompra(string sBD, int idFactura, int iNumeroEmpresa, int iOpcion)
 {
     string sQuery = string.Empty;
     try
     {
         DataTable dt = new DataTable();
         SQLConection context = new SQLConection();
         context.Parametros.Clear();
         context.Parametros.Add(new SqlParameter("@Numero_Empresa", iNumeroEmpresa));
         context.Parametros.Add(new SqlParameter("@NumeroIDFactura", idFactura));
         context.Parametros.Add(new SqlParameter("@Opcion", iOpcion));
         dt = context.ExecuteProcedure("[" + sBD + "].[dbo].[sp_Factura_ConsultaNumeroReferencia]", true).Copy();
         return string.Concat("O.C.  " + dt.Rows[0][0].ToString());
     }
     catch
     {
         return "O.C. -";
     }
 }
コード例 #5
0
ファイル: AddendaController.cs プロジェクト: njmube/CFDI-3
        public static bool AdendaHP(string sNombreDB, int iNumeroRegistro, int iNumeroEmpresa, ref string xml)
        {
            //CfdiBLL ctrl = new CfdiBLL();
            HP objHP = new HP();
            try
            {
                DataSet ds = new DataSet();
                SQLConection context = new SQLConection();
                context.Parametros.Clear();
                context.Parametros.Add(new SqlParameter("@Numero_Empresa", iNumeroEmpresa));
                context.Parametros.Add(new SqlParameter("@Numero_Factura", iNumeroRegistro));
                ds = context.ExecuteStoredProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaHP_OrdenCompra]", true).Copy();

                for (int indiceTablas = 0; indiceTablas < ds.Tables.Count; indiceTablas++)
                {
                    // EMAIL
                    if (indiceTablas == 0)
                    {
                        objHP.DE_NombreCliente = ds.Tables[indiceTablas].Rows[0][0].ToString();
                        objHP.NombreContactoCliente = ds.Tables[1].Rows[0]["Observaciones2"].ToString();
                        objHP.CorreoContactoCliente = ds.Tables[indiceTablas].Rows[0][1].ToString();
                        continue;
                    }
                    if (indiceTablas == 1)
                    {
                        objHP.OrdenCompra = ds.Tables[indiceTablas].Rows[0][0].ToString();
                        objHP.DE_CalleEntrega = ds.Tables[indiceTablas].Rows[0]["Domicilio"].ToString();
                        objHP.DE_EstadoEntrega = ds.Tables[indiceTablas].Rows[0]["Estado"].ToString();
                        objHP.DE_MunicipioEntrega = ds.Tables[indiceTablas].Rows[0]["Delegacion_municipio"].ToString();
                        objHP.DE_ColoniaEntrega = ds.Tables[indiceTablas].Rows[0]["Colonia"].ToString();
                        objHP.DE_CodigoPostal = ds.Tables[indiceTablas].Rows[0]["Codigo_postal"].ToString();
                        continue;
                    }
                }
                return lfCreaAdendaHP(objHP, ref xml);
            }
            catch
            {
                return false;
            }
        }
コード例 #6
0
ファイル: BitacoraController.cs プロジェクト: njmube/CFDI-3
        public static string gfLog(string psUser, string psDETAIL, string psFUNCTION_METHOD, string psMODULE)
        {
            SQLConection context = new SQLConection();
            DataTable dt = new DataTable();
            // ================================================================================================
            // get IP parameter and Location parameter with webservice friendly
            // ================================================================================================
            string sIP = string.Empty;
            string sLocation = string.Empty;
            sIP = "servicio";
            sLocation = sIP;

            // ================================================================================================
            // get [OS_BROWSER] parameter
            // ================================================================================================
            string sOS_BROWSER = string.Empty;
            try
            {
                HttpBrowserCapabilities brObject = HttpContext.Current.Request.Browser;
                sOS_BROWSER = "Tipo:" + brObject.Type + "|Version: " + brObject.Version;
                sOS_BROWSER = (sOS_BROWSER.Length > 50) ? sOS_BROWSER.Substring(0, 50) : sOS_BROWSER;
            }
            catch
            {
                sOS_BROWSER = "localhost";
            }
            context.Parametros.Clear();
            context.Parametros.Add(new SqlParameter("@IP", sIP));
            context.Parametros.Add(new SqlParameter("@LOCATION", sLocation));
            context.Parametros.Add(new SqlParameter("@OS_BROWSER", sOS_BROWSER));
            context.Parametros.Add(new SqlParameter("@FUNCTION_METHOD", psFUNCTION_METHOD));
            context.Parametros.Add(new SqlParameter("@MODULE", psMODULE));
            context.Parametros.Add(new SqlParameter("@OWNER", psUser));
            context.Parametros.Add(new SqlParameter("@DETAIL", psDETAIL));
            dt = context.ExecuteProcedure("[sp_LOG_Alta]", true).Copy();
            return dt.Rows[0][0] + " - " + " Detalle: " + psDETAIL;
        }
コード例 #7
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        /// <summary>
        /// Función que envia correos electronicos acorde al cliente y empresa
        /// </summary>
        /// <param name="iNumeroPersona"></param>
        /// <param name="iNumeroPersona"></param>
        /// <param name="iNumeroEmpresa"></param>
        /// <param name="sArchivo"></param>
        /// <param name="sAquien"></param>
        /// <param name="iNumeroFactura"></param>
        /// <param name="iTipoFacturaNotaCredito"></param>
        /// <param name="sReceptorNombre"></param>
        /// <param name="sReceptorRFC"></param>
        /// <param name="sEmisorNombre"></param>
        /// <param name="sEmisorRFC"></param>
        /// <param name="sSerieFolio"></param>
        /// <param name="sTipoComprobante"></param>
        /// <param name="sTotal"></param>
        /// <returns></returns>
        public static int gfDatosCorreoCliente(string sNombreDB, int iNumeroPersona, int iNumeroEmpresa, string sArchivo, string sAquien, int iNumeroFactura, int iTipoFacturaNotaCredito, string sReceptorNombre, string sReceptorRFC, string sEmisorNombre, string sEmisorRFC, string sSerieFolio, string sTipoComprobante, string sTotal)
        {
            List<string> listaContactos = new List<string>();
            List<string> listaArchivos = new List<string>();
            int iRespuesta = -1;
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();

            string sMensajeEmail = string.Empty;
            try
            {
                if (System.Text.RegularExpressions.Regex.IsMatch(sAquien, "CONTACTOS"))
                {
                    string sQuery = string.Empty;
                    if (iTipoFacturaNotaCredito == 0)
                    {
                        sQuery = string.Concat(" USE [" + sNombreDB + "]  SELECT P.CORREO_ELECTRONICO ",
                                           " FROM CONTACTO  AS C ",
                                           " JOIN PERSONA AS P ",
                                           " ON C.NUMERO_CONTACTO_PERSONA = P.NUMERO ",
                                           " WHERE C.ENVIO_MAIL = 1  ",
                                           " AND C.EMPRESA = ", iNumeroEmpresa.ToString(), " ",
                                           " AND C.NUMERO_CLIENTE IN ( SELECT NUMERO_CLIENTE FROM FACTURA  ",
                                           " WHERE NUMERO = ", iNumeroFactura.ToString(), " AND NUMERO_EMPRESA = ", iNumeroEmpresa.ToString(), ") ");
                    }
                    else
                    {
                        sQuery = string.Concat(" USE [" + sNombreDB + "]  SELECT P.CORREO_ELECTRONICO ",
                                               " FROM CONTACTO  AS C ",
                                               " JOIN PERSONA AS P  ",
                                               " ON C.NUMERO_CONTACTO_PERSONA = P.NUMERO  ",
                                               " WHERE C.ENVIO_MAIL = 1   ",
                                               " AND C.EMPRESA = ", iNumeroEmpresa.ToString(), " ",
                                               " AND C.NUMERO_CLIENTE IN ( SELECT NUMERO_CLIENTE FROM NOTA_CREDITO ",
                                               " WHERE NUMERO = ", iNumeroFactura.ToString(), "  ",
                                               " AND   NUMERO_EMPRESA = ", iNumeroEmpresa.ToString(), ") ");
                    }

                    dt = context.ExecuteQuery(sQuery);
                    listaArchivos.Add(@sArchivo);
                    listaArchivos.Add(@sArchivo.Replace(".xml", ".pdf"));

                    if (dt.Rows.Count >= 1)
                    {
                        foreach (DataRow item in dt.Rows)
                            listaContactos.Add(item[0].ToString());
                    }
                    else
                    {
                        listaContactos.Clear();
                        lfEmailQuienFactura(sNombreDB, iNumeroPersona, iNumeroEmpresa, listaContactos, listaArchivos, @sArchivo, sReceptorNombre, sReceptorRFC, sEmisorNombre, sEmisorRFC, sSerieFolio, sTipoComprobante, sTotal);
                    }

                    gfEmailSend(sNombreDB, listaContactos, listaArchivos, iNumeroEmpresa, sReceptorNombre, sReceptorRFC, sEmisorNombre, sEmisorRFC, sSerieFolio, sTipoComprobante, sTotal);

                    iRespuesta = 1;
                }
                else
                    lfEmailQuienFactura(sNombreDB, iNumeroPersona, iNumeroEmpresa, listaContactos, listaArchivos, @sArchivo, sReceptorNombre, sReceptorRFC, sEmisorNombre, sEmisorRFC, sSerieFolio, sTipoComprobante, sTotal);
            }
            catch (Exception ex)
            {
                FacturaController.gfEmailSend("gfDatosCorreoCliente |" + ex.Message + "BaseDatos:" + sNombreDB + "|NumeroEmpresa:" + iNumeroEmpresa + "|NumeroFactura:" + iNumeroFactura, FacturaController.listaContactosIncidenciaEmail, "INCIDENCIA " + ex.Message);
                iRespuesta = -1;
            }
            return iRespuesta;
        }
コード例 #8
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        /// <summary>
        /// 
        /// </summary>
        /// <param name="listaContactos"></param>
        /// <param name="listaAdjuntos"></param>
        /// <param name="iNumeroEmpresa"></param>
        /// <param name="sReceptorNombre"></param>
        /// <param name="sReceptorRFC"></param>
        /// <param name="sEmisorNombre"></param>
        /// <param name="sEmisorRFC"></param>
        /// <param name="sSerieFolio"></param>
        /// <param name="sTipoComprobante"></param>
        /// <param name="sTotal"></param>
        private static void gfEmailSend(string sNombreDB, List<string> listaContactos, List<string> listaAdjuntos, int iNumeroEmpresa, string sReceptorNombre, string sReceptorRFC, string sEmisorNombre, string sEmisorRFC, string sSerieFolio, string sTipoComprobante, string sTotal)
        {
            string strMsg = string.Empty;
            string sQuery = string.Empty;
            DataTable dt = new DataTable();
            try
            {
                sQuery = string.Concat(" USE [" + sNombreDB + "] SELECT Servidor,Puerto,Mail,Contraseña,Ssl",
                                       " FROM Empresa ",
                                       " WHERE Numero = " + iNumeroEmpresa.ToString() + "");
                SQLConection context = new SQLConection();
                dt = context.ExecuteQuery(sQuery);
                //Servidor
                var EmailloginInfo = new NetworkCredential(dt.Rows[0]["Mail"].ToString(),
                                                           dt.Rows[0]["Contraseña"].ToString());
                var Emailmsg = new System.Net.Mail.MailMessage();
                var EmailsmtpClient = new SmtpClient(dt.Rows[0]["Servidor"].ToString(),
                                                     int.Parse(dt.Rows[0]["Puerto"].ToString()));
                Emailmsg.From = new MailAddress(dt.Rows[0]["Mail"].ToString());

                foreach (string contacto in listaContactos)
                    Emailmsg.To.Add(new MailAddress(contacto));

                foreach (string adjunto in listaAdjuntos)
                {
                    Attachment aadjunto = new Attachment(@adjunto);
                    Emailmsg.Attachments.Add(@aadjunto);
                }
                Emailmsg.Subject = "Notificación de Facturación";
                Emailmsg.IsBodyHtml = true;

                if (dt.Rows[0]["Mail"].ToString().ToUpper().Trim() == "*****@*****.**")
                {
                    strMsg = string.Concat("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'><html><head><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><title>KONEXUS </title></head><body><table cellpadding='0' cellspacing='0' border='0' style='font-size:12px; font-family: Arial; line-height: 17px;' width='600'><tr><td width='50%' style='background-color: #874340; padding:10px;'><span style='color: #fff; font-size: 15px; font-weight: bold;'>",
                                                         sReceptorNombre, "</span><br/><span style='color:#fff' >", sReceptorRFC, "</span></td><td align='right' style='background-color:#f1f1f1; padding: 10px; font-size: 15px; font-weight: ",
                                                         "bold; color: #000'>KONEXUS</td></tr><tr><td colspan='2' height='5' style='line-height: 5px; font-size: 5px;'>&nbsp;</td></tr><tr><td colspan='2' style='padding: 10px; background-color: #ededed'> Le notificamos que ", sEmisorNombre, " (", sEmisorRFC, ") emitio para usted un Comprobante Fiscal Digital por Internet (CFDI) con las siguientes caracteristicas <br/> <br/> &bull;Serie y Folio: ", sSerieFolio, "<br/> &bull;",
                                                         "Fecha de Emision: ", DateTime.Now.ToShortDateString(), "<br/> &bull;Tipo de Comprobante: ", sTipoComprobante, " <br/> &bull;Monto Total: ", sTotal, "<br/> <br/> <h4>Favor de consultar los archivos adjuntos.</h4></td></tr><tr><td width='580' style='font-size:8px; font-family:Verdana; color:#959595; line-height: 10px; padding-bottom: 10px;' colspan='2'><p style='margin: 0px; padding-top: 10px;'><span style='font-size:10px;'>KONEXUS MX SA DE CV &bull; TODOS LOS DERECHOS RESERVADOS &bull; (55)5025.8895 &bull; [email protected] &bull;</span><br/><br/>Este mensaje está dirigido exclusivamente a las personas que tienen las direcciones de correo electrónico especificadas en los destinatarios dentro de su encabezado. Si por error usted ha recibido este mensaje, por ningún motivo debe revelar su contenido, copiarlo, distribuirlo o utilizarlo. Le solicitamos por favor comunique del error a la dirección de correo electrónico remitente y elimine dicho mensaje junto con cualquier documento adjunto que pudiera contener. Los derechos de privacidad y confidencialidad de la información en este mensaje no deben perderse por el hecho de haberse trasmitido erróneamente o por causas de interferencias en el funcionamiento de los sistemas de correo y canales de comunicación. En consideración a que los mensajes enviados de manera electrónica pueden ser interceptados y manipulados, la empresa y las entidades que lo integran no se hacen responsables si los mensajes llegan con demora, incompletos, eliminados o con algún programa malicioso denominado como virus informático. </p></td></tr></table></body></html>");
                }
                else
                {
                    strMsg = string.Concat("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'><html><head><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><title>INTEGRASOFTWARE</title></head><body><table cellpadding='0' cellspacing='0' border='0' style='font-size:12px; font-family: Arial; line-height: 17px;' width='600'><tr><td width='50%' style='background-color: #28487a; padding:10px;'><span style='color: #fff; font-size: 15px; font-weight: bold;'>",
                                                                 sReceptorNombre, "</span><br/><span style='color:#fff' >", sReceptorRFC, "</span></td><td align='right' style='background-color:#f1f1f1; padding: 10px; font-size: 15px; font-weight: bold; color: #000'>INTEGRASOFTWARE</td></tr><tr><td colspan='2' height='5' style='line-height: 5px; font-size: 5px;'>&nbsp;</td></tr><tr><td colspan='2' style='padding: 10px; background-color: #ededed'> Le notificamos que ", sEmisorNombre, " (", sEmisorRFC, ") emitio para usted un Comprobante Fiscal Digital por Internet (CFDI) con las siguientes caracteristicas <br/> <br/> &bull;Serie y Folio: ", sSerieFolio, "<br/> &bull;",
                                                                 "Fecha de Emision: ", DateTime.Now.ToShortDateString(), "<br/> &bull;Tipo de Comprobante: ", sTipoComprobante, " <br/> &bull;Monto Total: ", sTotal, "<br/> <br/> <h4>Favor de consultar los archivos adjuntos.</h4></td></tr><tr><td width='580' style='font-size:8px; font-family:Verdana; color:#959595; line-height: 10px; padding-bottom: 10px;' colspan='2'><p style='margin: 0px; padding-top: 10px;'><span style='font-size:10px;'>",
                                                                 "Integra ERP Mexico D.F &bull; TODOS LOS DERECHOS RESERVADOS &bull; (55) 5207 3799 &bull; [email protected] &bull;</span><br/><br/>Este mensaje está dirigido exclusivamente a las personas que tienen las direcciones de correo electrónico especificadas en los destinatarios dentro de su encabezado. Si por error usted ha recibido este mensaje, por ningún motivo debe revelar su contenido, copiarlo, distribuirlo o utilizarlo. Le solicitamos por favor comunique del error a la dirección de correo electrónico remitente y elimine dicho mensaje junto con cualquier documento adjunto que pudiera contener. Los derechos de privacidad y confidencialidad de la información en este mensaje no deben perderse por el hecho de haberse trasmitido erróneamente o por causas de interferencias en el funcionamiento de los sistemas de correo y canales de comunicación. En consideración a que los mensajes enviados de manera electrónica pueden ser interceptados y manipulados, la empresa y las entidades que lo integran no se hacen responsables si los mensajes llegan con demora, incompletos, eliminados o con algún programa malicioso denominado como virus informático. </p></td></tr></table></body></html>");
                }

                Emailmsg.Body = strMsg;
                EmailsmtpClient.EnableSsl = false;
                EmailsmtpClient.UseDefaultCredentials = false;
                EmailsmtpClient.Credentials = EmailloginInfo;
                EmailsmtpClient.Send(Emailmsg);
            }
            catch (Exception ex)
            {
                strMsg = strMsg.Replace("000'>KONEXUS</td>", "000'>FACTURACION ELECTRONICA </td>");
                strMsg = strMsg.Replace("000'>INTEGRASOFTWARE</td>", "000'>FACTURACION ELECTRONICA </td>");
                strMsg = strMsg.Replace("background-color: #28487a", "background-color: #00b6c1");
                strMsg = strMsg.Replace("background-color: #874340", "background-color: #00b6c1");
                strMsg = strMsg.Replace("KONEXUS MX SA DE CV &bull; TODOS LOS DERECHOS RESERVADOS &bull; (55)5025.8895 &bull; [email protected] &bull;", "&bull; TODOS LOS DERECHOS RESERVADOS &bull;");
                strMsg = strMsg.Replace("Integra ERP Mexico D.F &bull; TODOS LOS DERECHOS RESERVADOS &bull; (55) 5207 3799 &bull; [email protected] &bull;", "&bull; TODOS LOS DERECHOS RESERVADOS &bull;");
                BitacoraController.gfLogFacturaRegistroError("EnvioAlterno", sNombreDB, iNumeroEmpresa.ToString() + "|" + ex.Message);
                FacturaController.gfEmailSend(strMsg, listaContactos, "Notificación de Facturación", listaAdjuntos);
            }
        }
コード例 #9
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
 public DataSet gfConsultatPartidasFacturaLibre(string sNombreDB, int iNumeroFacturaID, int iNumeroEmpresa, int iOpcion)
 {
     DataSet dt = new DataSet();
     SQLConection context = new SQLConection();
     context.Parametros.Clear();
     context.Parametros.Add(new SqlParameter("@Numero_Empresa", iNumeroEmpresa));
     context.Parametros.Add(new SqlParameter("@NumeroIDFactura", iNumeroFacturaID));
     context.Parametros.Add(new SqlParameter("@Opcion", iOpcion));
     dt = context.ExecuteStoredProcedure("[" + sNombreDB + "].[dbo].[sp_Factura_Libre_Detalle_CFDI]", true);
     if (dt != null)
         return dt;
     else
         return new DataSet();
 }
コード例 #10
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        public static DataTable GetPartidasCirrus(string sNombreDB, int NumeroRegistro, int Tipo, int company, int icontabilizada, int idocumenttype, int idocumentinternet)
        {

            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            context.Parametros.Clear();
            //context.Parametros.Add(new SqlParameter("@companynumber", icompany));
            context.Parametros.Add(new SqlParameter("@companynumber", company));
            context.Parametros.Add(new SqlParameter("@numeroregistro", NumeroRegistro));
            context.Parametros.Add(new SqlParameter("@type", Tipo));
            context.Parametros.Add(new SqlParameter("@contabilizada", icontabilizada));
            context.Parametros.Add(new SqlParameter("@documentType", idocumenttype));
            context.Parametros.Add(new SqlParameter("@documetInternet", idocumentinternet));
            dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtienePartidasCIRRUS_v1]", true);
            if (dt != null)
                return dt;
            else
                return new DataTable();
        }
コード例 #11
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        public DataTable GetAdenda(string sNombreDB, int NumeroRegistro, int companynumber)
        {
            //=====================================================
            // before
            //IntegraData.CfdiDAL DataGeneral = new IntegraData.CfdiDAL();
            //return DataGeneral.GetAdenda(NumeroRegistro, company);
            //=====================================================
            // after
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            context.Parametros.Clear();
            context.Parametros.Add(new SqlParameter("@companynumber", companynumber));
            context.Parametros.Add(new SqlParameter("@numeroregistro", NumeroRegistro));
            dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneAdenda_v1]", true);

            if (dt != null)
                if (dt.Rows.Count > 0)
                    return dt;

            return null;
            //=====================================================

        }
コード例 #12
0
ファイル: CustomerDAL.cs プロジェクト: njmube/CFDI-3
        public DataTable GetProductosAutocomplete(int Numero_Empresa, string Descripcion)
        {
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            context.Parametros.Clear();
            context.Parametros.Add(new SqlParameter("Numero_Empresa", Numero_Empresa));
            context.Parametros.Add(new SqlParameter("Descripcion", Descripcion));
            dt = context.ExecuteProcedure("sp_Productos_Conceptos_Consulta", true).Copy();
            return dt;

        }
コード例 #13
0
ファイル: AddendaController.cs プロジェクト: njmube/CFDI-3
        private static string lfConsultaPartidasAdenda(string sNombreDB, int iNumeroEmpresa, int iNumeroFactura, XNamespace xMPNP)
        {
            string sResultado = string.Empty;
            string sResultadoEncode = string.Empty;
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            try
            {
                switch (sNombreDB.ToUpper())
                {
                    case "INTEGRA_ZAMBRANO_GASERA":
                        context.Parametros.Clear();
                        context.Parametros.Add(new SqlParameter("@Numero_Empresa ", iNumeroEmpresa));
                        context.Parametros.Add(new SqlParameter("@Numero_Factura", iNumeroFactura));
                        dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Partidas_Gasera]", true).Copy();
                        break;
                    case "INTEGRA_ZAMBRANO_DIST":
                        context.Parametros.Add(new SqlParameter("@Numero_Empresa ", iNumeroEmpresa));
                        context.Parametros.Add(new SqlParameter("@Numero_Factura", iNumeroFactura));
                        dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Partidas_Distribuidora]", true).Copy();
                        break;
                    case "INTEGRA_ZAMBRANO":
                        context.Parametros.Add(new SqlParameter("@Numero_Empresa ", iNumeroEmpresa));
                        context.Parametros.Add(new SqlParameter("@Numero_Factura", iNumeroFactura));
                        dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Partidas_Estaciones]", true).Copy();
                        break;
                    default:
                        context.Parametros.Add(new SqlParameter("@Numero_Empresa ", iNumeroEmpresa));
                        context.Parametros.Add(new SqlParameter("@Numero_Factura", iNumeroFactura));
                        dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Partidas_General]", true).Copy();
                        break;
                }


                int iLinea = 1;
                foreach (DataRow item in dt.Rows)
                {
                    METALSA objMetal = new METALSA();
                    objMetal.part_descripcion = item[0].ToString();
                    objMetal.part_cantidad = item[1].ToString();
                    objMetal.part_ordencompra = item[2].ToString();
                    objMetal.part_numeroRecibo = item[3].ToString();
                    objMetal.part_fechaRecibo = DateTime.Parse(item[4].ToString());
                    objMetal.part_precioUnitario = item[5].ToString();
                    objMetal.part_unidadMedida = item[6].ToString();
                    objMetal.part_numeroLinea = iLinea++.ToString();
                    objMetal.part_numeroParte = item[8].ToString();
                    //XElement xePart = new XElement(xMPNP + "part", new XAttribute(XNamespace.Xmlns + "", xMPNP)
                    XElement xePart = new XElement(xMPNP + "part", new XAttribute(XNamespace.Xmlns + "MPNP", xMPNP)
                                                               //XElement xePart = new XElement(xMPNP + "part", new XAttribute("descripcion", objMetal.part_descripcion)
                                                               , new XAttribute("descripcion", objMetal.part_descripcion)
                                                               , new XAttribute("cantidad", objMetal.part_cantidad)
                                                               , new XAttribute("ordencompra", objMetal.part_ordencompra)
                                                               , new XAttribute("numeroRecibo", objMetal.part_numeroRecibo)
                                                               , new XAttribute("fechaRecibo", objMetal.part_fechaRecibo.ToString("yyyy-MM-dd"))
                                                               , new XAttribute("precioUnitario", objMetal.part_precioUnitario)
                                                               , new XAttribute("unidadMedida", objMetal.part_unidadMedida)
                                                               , new XAttribute("numeroLinea", objMetal.part_numeroLinea)
                                                               , new XAttribute("numeroParte", objMetal.part_numeroParte));

                    sResultado += @xePart.ToString();
                }
                sResultado = sResultado.Replace("xmlns:MPNP=\"http://www.metalsa.com.mx/Addenda/MPNP\"", string.Empty);
                return sResultado;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return sResultado;
            }
        }
コード例 #14
0
ファイル: AddendaController.cs プロジェクト: njmube/CFDI-3
        public static bool AdendaMetalsa(string sNombreDB, int NumeroRegistro, int Tipo, int NumeroEmpresa, string sNombreArchivo, ref string xml)
        {
            //CfdiBLL ctrl = new CfdiBLL();
            //HP objHP = new HP();
            METALSA objMetal = new METALSA();

            try
            {
                DataTable dt = new DataTable();
                SQLConection context = new SQLConection();
                context.Parametros.Clear();
                context.Parametros.Add(new SqlParameter("@Numero_Empresa", NumeroEmpresa));
                context.Parametros.Add(new SqlParameter("@Numero_Factura", NumeroRegistro));
                dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Encabezado]", true).Copy();

                objMetal.factura_fecha = DateTime.Parse(dt.Rows[0][0].ToString());
                objMetal.factura_version = dt.Rows[0][1].ToString();
                objMetal.factura_folioFiscal = dt.Rows[0][2].ToString();
                objMetal.factura_tipoDocumentoFiscal = dt.Rows[0][3].ToString();
                objMetal.factura_tipoDocumento = dt.Rows[0][4].ToString();
                objMetal.moneda_tipoMoneda = dt.Rows[0][6].ToString();
                objMetal.proveedor_nombre = dt.Rows[0][7].ToString();
                objMetal.proveedor_codigo = dt.Rows[0][8].ToString();
                objMetal.destino_nombre = dt.Rows[0][9].ToString();
                objMetal.destino_codigo = dt.Rows[0][10].ToString();
                objMetal.archivo_tipoArchivo = dt.Rows[0][11].ToString();
                //objMetal.archivo_archivo = Base64Encode(sNombreArchivo);
                objMetal.archivo_archivo = Base64Encode(Path.GetFileNameWithoutExtension(sNombreArchivo));
                objMetal.cuentaCorreo_cuentaCorreo = dt.Rows[0][12].ToString();
                return lfCreaAdendaMETALSA(sNombreDB, objMetal, ref xml, NumeroEmpresa, NumeroRegistro);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }

        }
コード例 #15
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        public static string ImporteConLetraXML(string sMonedaXML, Decimal total, int bandera, int iTipo)
        {
            string sTipoMoneda = string.Empty;
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            switch (sMonedaXML.ToUpper())
            {
                case "110":
                    sTipoMoneda = "Dólar Americano";
                    break;
                case "109":
                    sTipoMoneda = "Peso Mexicano";
                    break;
                case "MXN":
                    sTipoMoneda = "Peso Mexicano";
                    break;
                default:
                    sTipoMoneda = string.Empty;
                    break;
            }
            dt = new DataTable();
            context = new SQLConection();
            dt = context.ExecuteQuery(" SELECT dbo.fn_ImporteLetras(" + 1 + ", " + total + ", '" + sTipoMoneda + "', " + bandera + ") ");

            if (dt.Rows.Count > 0)
                sTipoMoneda = dt.Rows[0][0].ToString();
            return sTipoMoneda;
        }
コード例 #16
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
 /// <summary>
 /// Consulta Traslados (impuestos) IVA E IEPS por el ID de la factura
 /// </summary>
 /// <param name="sNombreBD">Nombre de la base de datos a consultar</param>
 /// <param name="iNumeroEmpresa">Numero Empresa</param>
 /// <param name="NumeroFactura">Numero de Factura</param>
 /// <returns>Informacion IVA e IEPS </returns>
 public static DataTable ConsultaTrasladosxIDFactura(string sNombreBD, int iNumeroEmpresa, int NumeroFactura)
 {
     DataTable dt = new DataTable();
     try
     {
         SQLConection context = new SQLConection();
         context.Parametros.Clear();
         context.Parametros.Add(new SqlParameter("@Numero_Empresa", iNumeroEmpresa));
         context.Parametros.Add(new SqlParameter("@Numero_Factura", NumeroFactura));
         if (sNombreBD == "KONEXUS_LAGENERAL" || sNombreBD == "KONEXUS_LAGENERAL_CAP")
             dt = context.ExecuteProcedure("[" + sNombreBD + "].[dbo].[sp_Factura_Detalle_Consulta_ImpuestosV2]", true).Copy();
         else
             dt = context.ExecuteProcedure("[" + sNombreBD + "].[dbo].[sp_Factura_Detalle_Consulta_Impuestos]", true).Copy();
         if (dt.Rows.Count > 0 && dt.Rows[0][0].ToString() != "NO")
             return dt;
         else
             return null;
     }
     catch
     {
         return null;
     }
 }
コード例 #17
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
 public static string lfDomicilioEstablecimientoGet(string sNombreDB, int iDatoSucursal, int iCompania)
 {
     string sValor = string.Empty;
     try
     {
         DataTable dt = new DataTable();
         SQLConection context = new SQLConection();
         context.Parametros.Clear();
         context.Parametros.Add(new SqlParameter("@sucursal", iDatoSucursal));
         context.Parametros.Add(new SqlParameter("@companynumber", iCompania));
         dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneDatosSucursal_v1]", true).Copy();
         sValor = dt.Rows[0]["FULLADRESS"].ToString();
     }
     catch
     {
         //sValor = " * -> NO ASIGNADO " + iDatoSucursal + " - " + iCompania;
         sValor = "";
     }
     return sValor;
 }
コード例 #18
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        /// <summary>
        /// gfValidaSiEsFacturaFisicaoMoral
        /// </summary>
        /// <param name="piNumeroFactura">Id factura</param>
        /// <param name="Numero_Empresa">Id Empresa</param>
        /// <param name="Numero_Cliente">Id  Cliente ,en facturación es a quien enviarle el mail </param>
        /// <param name="iTipoFacturaNotaCredito">0 Facturacion , 1 Nota de credito</param>
        /// <param name="Tipo_Documento">Es indispensable que sea Documento Electronico (-59) para el flujo básico de timbrar</param>
        /// <returns>Regresa si es con retenciónes (persona física ) o sin ellas (persona moral)</returns>
        public static decimal gfValidaSiEsFacturaFisicaoMoral(string sNombreDB, int piNumeroFactura, int Numero_Empresa, int Numero_Cliente, int iTipoFacturaNotaCredito, ref int Tipo_Documento)
        {
            DataTable dt = new DataTable();
            string sQuery = string.Empty;
            SQLConection context = new SQLConection();
            if (iTipoFacturaNotaCredito == 0)
                sQuery = "USE [" + sNombreDB + "] SELECT ISNULL(RET_ISR,-1) AS RESULTADO  , ISNULL(Tipo_Documento,0) AS Tipo_Documento  FROM FACTURA  WHERE Numero_Empresa = " + Numero_Empresa.ToString() + " AND  Numero = " + piNumeroFactura.ToString() + "";
            else
                sQuery = string.Concat("USE [", sNombreDB, "] SELECT  -1 AS RESULTADO  , ISNULL(Tipo_Docto_Nota,0) AS Tipo_Documento  FROM NOTA_CREDITO WHERE Numero_Empresa = ", Numero_Empresa.ToString(), " AND  Numero = ", piNumeroFactura.ToString(), "");

            dt = context.ExecuteQuery(sQuery);
            if (dt.Rows.Count > 0)
            {
                Tipo_Documento = (int)dt.Rows[0][1];
                return decimal.Parse(dt.Rows[0][0].ToString());
            }
            return 0;
        }
コード例 #19
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        public static DataTable lfGetDatosSucursal(string sNombreDB, int isucursal, int icompany)
        {
            DataTable dt = new DataTable();
            dt = new SQLConection().ExecuteQuery(" USE [" + sNombreDB + "] execute sp_CFDI_ObtieneDatosSucursal_v1 " + isucursal + " , " + icompany + "").Copy();

            if (dt.Rows.Count > 0)
                return dt;
            else
                throw new Exception("GetDatosSucursal(int isucursal, int icompany)");
        }
コード例 #20
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        public static DataTable GetPartidasGeneral(string sNombreDB, int numeroregistro, int type, int companynumber, int contabilizada, int documentType, int documetInternet)
        {
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            switch (sNombreDB.ToUpper())
            {
                case "INTEGRA_CPAE":
                    context.Parametros.Clear();
                    context.Parametros.Add(new SqlParameter("@Tipo", type));
                    context.Parametros.Add(new SqlParameter("@Numero_Empresa", companynumber));
                    context.Parametros.Add(new SqlParameter("@ID", numeroregistro));
                    dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CDFI_ObtienePartidas_CPAE_V2]", true);
                    return dt;
                case "INTEGRA_TDS":
                    context.Parametros.Clear();
                    context.Parametros.Add(new SqlParameter("@lID", numeroregistro));
                    context.Parametros.Add(new SqlParameter("@intNumEmpresa", companynumber));
                    context.Parametros.Add(new SqlParameter("@Tipo", type));
                    dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_Obtiene_Partidas_CPAE_V2]", true);
                    return dt;
                case "INTEGRA_TABLADECO":
                    context.Parametros.Clear();
                    context.Parametros.Add(new SqlParameter("@numeroregistro", numeroregistro));
                    context.Parametros.Add(new SqlParameter("@contabilizada", contabilizada));
                    context.Parametros.Add(new SqlParameter("@documentType", documentType));
                    context.Parametros.Add(new SqlParameter("@documetInternet", documetInternet));
                    context.Parametros.Add(new SqlParameter("@companynumber", companynumber));
                    context.Parametros.Add(new SqlParameter("@type", type));
                    dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtienePartidasGeneral_v3_TABLADECO]", true);
                    return dt;

                default:
                    context.Parametros.Clear();
                    context.Parametros.Add(new SqlParameter("@numeroregistro", numeroregistro));
                    context.Parametros.Add(new SqlParameter("@contabilizada", contabilizada));
                    context.Parametros.Add(new SqlParameter("@documentType", documentType));
                    context.Parametros.Add(new SqlParameter("@documetInternet", documetInternet));
                    context.Parametros.Add(new SqlParameter("@companynumber", companynumber));
                    context.Parametros.Add(new SqlParameter("@type", type));
                    dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtienePartidasGeneral_v3]", true);
                    return dt;
            }
        }
コード例 #21
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
 public static DataTable lfGetDatosEmisor(string sNombreDB, int companynumber)
 {
     DataTable dt = new DataTable();
     SQLConection context = new SQLConection();
     context.Parametros.Clear();
     context.Parametros.Add(new SqlParameter("@companynumber", companynumber));
     dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneDatosDelEmisor_v2]", true).Copy();
     if (dt.Rows.Count > 0)
         return dt;
     else
         throw new Exception(string.Concat("* No se encontraron resultados del Emisor ", companynumber.ToString()));
 }
コード例 #22
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        public static DataTable lfGetDatosEncabezado(string sNombreDB, int numeroregistro, int type, int companynumber, int contabilizada, int documentType, int internetDocument)
        {
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            context.Parametros.Clear();
            context.Parametros.Add(new SqlParameter("@numeroregistro", numeroregistro));
            context.Parametros.Add(new SqlParameter("@type", type));
            context.Parametros.Add(new SqlParameter("@companynumber", companynumber));
            context.Parametros.Add(new SqlParameter("@contabilizada", contabilizada));
            context.Parametros.Add(new SqlParameter("@documentType", documentType));
            context.Parametros.Add(new SqlParameter("@internetDocument", internetDocument));
            //dt = context.ExecuteProcedure("[" + Globales.sNombreDB + "].[dbo].[sp_CFDI_ObtieneDatosDeEncabezado_v1]", true).Copy();
            dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneDatosDeEncabezado_v2]", true).Copy();
            //dt = context.ExecuteProcedure("[" + Globales.sNombreDB + "].[dbo].[sp_CFDI_ObtieneDatosDeEncabezado_v3_borrar]", true).Copy();
            if (dt.Rows.Count > 0)
                return dt;
            else
                throw new Exception(string.Concat("* No se encontraron resultados para el Encabezado , Factura aun no contabilizada", companynumber.ToString()));

        }
コード例 #23
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        public static DataTable lfGetDatosArchivo(string sNombreDB, int companynumber, int numeroregistro, int type)
        {
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            context.Parametros.Clear();
            context.Parametros.Add(new SqlParameter("@companynumber", companynumber));
            context.Parametros.Add(new SqlParameter("@numeroregistro", numeroregistro));
            context.Parametros.Add(new SqlParameter("@type", type));
            dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneDatosDeArchivo_v1]", true).Copy();

            if (dt.Rows.Count > 0)
                return dt;
            else
                throw new Exception(string.Concat("* No se encontraron resultados del KEY , CER para generar la factura ", numeroregistro.ToString(), " en la empresa ", companynumber.ToString()));
        }
コード例 #24
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        private static void lfEmailQuienFactura(string sNombreDB, int iNumeroPersona, int iNumeroEmpresa, List<string> listaContactos, List<string> listaArchivos, string sArchivo, string sReceptorNombre, string sReceptorRFC, string sEmisorNombre, string sEmisorRFC, string sSerieFolio, string sTipoComprobante, string sTotal)
        {
            DataTable dt = new DataTable();

            string sParametros = string.Concat(sNombreDB, "|", iNumeroPersona, "|", iNumeroEmpresa, "|", (listaContactos.Count > 0 ? listaContactos[0] : ""), "|", sArchivo, "|", sReceptorNombre, "|", sReceptorRFC, "|", sEmisorNombre, "|", sEmisorRFC, "|", sSerieFolio, "|", sTipoComprobante, "|", sTotal);
            string sQuery = string.Concat("USE [" + sNombreDB + "]  SELECT ISNULL(Correo_Electronico,0) FROM Persona WHERE Numero = ",
                                          iNumeroPersona.ToString(), " AND Numero_Empresa = ", iNumeroEmpresa.ToString(), "");
            SQLConection context = new SQLConection();
            dt = context.ExecuteQuery(sQuery);
            if (dt != null)
            {
                if (dt.Rows[0][0].ToString() != "0")
                {
                    foreach (DataRow item in dt.Rows)
                        listaContactos.Add(item[0].ToString());
                    listaArchivos.Add(@sArchivo);
                    listaArchivos.Add(@sArchivo.Replace(".xml", ".pdf"));
                    gfEmailSend(sNombreDB, listaContactos, listaArchivos, iNumeroEmpresa, sReceptorNombre, sReceptorRFC, sEmisorNombre, sEmisorRFC, sSerieFolio, sTipoComprobante, sTotal);
                }
            }
            else
            {

                BitacoraController.gfLogFacturaRegistroError("EnvioAlterno", sNombreDB, sParametros);
                FacturaController.gfEmailSend("Facturación la persona " + iNumeroPersona + " Empresa " + iNumeroEmpresa + "No tiene email o contactos " + sParametros, FacturaController.listaContactosIncidenciaEmail, "Notificación de Facturación", listaArchivos);

            }
        }
コード例 #25
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
 /// <summary>
 /// Valida si el id de factura o nota de credito es realmente documento electronico 
 /// </summary>
 /// <param name="piNumeroFactura">id de factura o nota de credito </param>
 /// <param name="iNumeroCompania">id de de la empresa</param>
 /// <param name="iTipoFacturaNotaCredito">0 Factura , 1 Nota de credito </param>
 /// <returns></returns>
 public static int gfValidaSiEsFactura(string sNombreDB, int piNumeroFactura, string iNumeroCompania, int iTipoFacturaNotaCredito)
 {
     SQLConection context = new SQLConection();
     if (iTipoFacturaNotaCredito == 0)
         return int.Parse(context.ExecuteQuery("USE [" + sNombreDB + "] SELECT  ISNULL(COUNT(1),0) AS RES FROM FACTURA WHERE NUMERO = " + piNumeroFactura + " AND  TIPO_DOCUMENTO = -59 AND Numero_Empresa = " + iNumeroCompania + " ").Rows[0][0].ToString());
     else
         return int.Parse(context.ExecuteQuery("USE [" + sNombreDB + "] SELECT  ISNULL(COUNT(1),0) AS RES  FROM NOTA_CREDITO  WHERE NUMERO  = " + piNumeroFactura + " AND  Tipo_Docto_Nota = -59 AND  Numero_Empresa = " + iNumeroCompania + " ").Rows[0][0].ToString());
 }
コード例 #26
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        public static bool AdendaPhillips(string sNombreDB, int NumeroRegistro, int Tipo, int NumeroEmpresa, ref string xml)
        {

            //CfdiBLL ctrl = new CfdiBLL();
            RequestCFD PhilipsReq = new RequestCFD();
            AddPhilips AddendaPhilips = new AddPhilips();
            Item AddendaPhilipsItem = new Item();
            string sMail_Proveedor, sNombre_Proveedor;
            int Num_Cotiza = 0;
            DataTable tableprovider, tablereference, tableFactura, tablepartidaadenda, tablaCotizacion;
            // -----------------------------------------
            SQLConection context = new SQLConection();
            context.Parametros.Clear();
            context.Parametros.Add(new SqlParameter("@companynumber", NumeroEmpresa));
            context.Parametros.Add(new SqlParameter("@numeroregistro", NumeroRegistro));
            tablaCotizacion = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneNumeroCuota_v1]", true).Copy();
            // -----------------------------------------
            if (tablaCotizacion != null && tablaCotizacion.Rows.Count > 0)
            {
                if (tablaCotizacion.Rows[0][1] != DBNull.Value)
                {
                    Num_Cotiza = Convert.ToInt32(tablaCotizacion.Rows[0][1]);
                }
            }
            else
            {
                return false;
            }

            CustomerBLL DataProvider = new CustomerBLL();
            //tableprovider = DataProvider.GetCustomerData(NumeroEmpresa, 1);// CHECAR POR QUE PUSE 1
            context = new SQLConection();
            context.Parametros.Clear();
            context.Parametros.Add(new SqlParameter("@numero", 1));
            tableprovider = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_ObtieneCorreoPersona]", true).Copy();
            // -----------------------------------------------------------------------------------------
            if (tableprovider != null && tableprovider.Rows.Count > 0)
            {
                if (tableprovider.Rows[0][0] != DBNull.Value)
                {
                    sNombre_Proveedor = Convert.ToString(tableprovider.Rows[0][0]);

                }
                else
                {
                    return false;
                }

                if (tableprovider.Rows[0][1] != DBNull.Value)
                {
                    sMail_Proveedor = Convert.ToString(tableprovider.Rows[0][1]);

                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }

            // tablereference = ctrl.GetRerefence(NumeroRegistro, NumeroEmpresa);
            // --------------------------------------------------------------------
            context = new SQLConection();
            context.Parametros.Clear();
            context.Parametros.Add(new SqlParameter("@companynumber", NumeroEmpresa));
            context.Parametros.Add(new SqlParameter("@numeroregistro", Num_Cotiza));
            tablereference = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneReferencia_v1]", true).Copy();

            // ---------------------------------------------------------------------
            if (tablereference != null && tablereference.Rows.Count > 0)
            {
                if (tablereference.Rows[0][0] != DBNull.Value)
                {
                    PhilipsReq = new RequestCFD();
                    PhilipsReq.oru = Convert.ToString(tablereference.Rows[0][0]);

                    if (tablereference.Rows[0][1] != DBNull.Value)
                    {
                        PhilipsReq.cveProveedor = Convert.ToString(tablereference.Rows[0][1]);
                    }
                    else
                    {
                        return false;
                    }
                    PhilipsReq.nomProveedor = sNombre_Proveedor;

                    if (sMail_Proveedor != "")
                    {
                        PhilipsReq.mailProveedor = sMail_Proveedor;
                    }
                    else
                    {
                        //msj el provedor no cuenta con un mail
                        return false;
                    }

                    if (tablereference.Rows[0][2] != DBNull.Value)
                    {
                        PhilipsReq.mailPhilips = Convert.ToString(tablereference.Rows[0][2]);
                    }
                    else
                    {
                        return false;
                    }
                    if (tablereference.Rows[0][3] != DBNull.Value)
                    {
                        PhilipsReq.OC = Convert.ToString(tablereference.Rows[0][3]);
                    }
                    else
                    {
                        return false;
                    }
                    if (tablereference.Rows[0][4] != DBNull.Value)
                    {
                        PhilipsReq.ctaContable = Convert.ToString(tablereference.Rows[0][4]);
                    }
                    else
                    {
                        return false;
                    }

                    if (tablereference.Rows[0][5] != DBNull.Value)
                    {
                        PhilipsReq.CCostos = Convert.ToString(tablereference.Rows[0][5]);
                    }
                    else
                    {
                        return false;
                    }
                    if (tablereference.Rows[0][6] != DBNull.Value)
                    {
                        PhilipsReq.texto = Convert.ToString(tablereference.Rows[0][6]);
                    }
                    else
                    {
                        PhilipsReq.texto = "";
                    }
                }
                else
                {
                    //msj no se encontro el registro
                    return false;
                }


                //-------------------------------------------------------------------------
                context = new SQLConection();
                context.Parametros.Clear();
                context.Parametros.Add(new SqlParameter("@companynumber", NumeroEmpresa));
                context.Parametros.Add(new SqlParameter("@numeroregistro", NumeroRegistro));
                tableFactura = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneNumeroCuota_v1]", true).Copy();
                //-------------------------------------------------------------------------

                int index = 0, inx = 0;
                if (tableFactura != null && tableFactura.Rows.Count > 0)
                {

                    foreach (DataRow row in tableFactura.Rows)
                    {

                        //tablepartidaadenda = ctrl.GetCotizacionPartidaAdenda(NumeroRegistro, NumeroEmpresa, Convert.ToInt32(tableFactura.Rows[index][0]));
                        //-------------------------------------------------------------------------
                        context = new SQLConection();
                        context.Parametros.Clear();
                        context.Parametros.Add(new SqlParameter("@companynumber", NumeroEmpresa));
                        context.Parametros.Add(new SqlParameter("@numeroregistro", Convert.ToInt32(tableFactura.Rows[index][1])));
                        context.Parametros.Add(new SqlParameter("@partida", Convert.ToInt32(tableFactura.Rows[index][0])));
                        tablepartidaadenda = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_CFDI_ObtieneCotizacionPartidaAdenda_v1]", true).Copy();
                        //-------------------------------------------------------------------------

                        if (tablepartidaadenda != null && tablepartidaadenda.Rows.Count > 0)
                        {
                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                            {
                                AddendaPhilipsItem = new Item();

                                foreach (DataRow rows in tablepartidaadenda.Rows)
                                {
                                    switch (inx)
                                    {
                                        case 0:
                                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                                            {
                                                AddendaPhilipsItem.ItemOrder = Convert.ToString(tablepartidaadenda.Rows[inx][0]);
                                            }
                                            else
                                            {
                                                AddendaPhilipsItem.ItemOrder = "";
                                            }
                                            break;

                                        case 1:
                                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                                            {
                                                AddendaPhilipsItem.cveMaterial = Convert.ToString(tablepartidaadenda.Rows[inx][0]);
                                            }
                                            else
                                            {
                                                AddendaPhilipsItem.cveMaterial = "";
                                            }

                                            break;

                                        case 2:
                                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                                            {
                                                AddendaPhilipsItem.pedimento = Convert.ToString(tablepartidaadenda.Rows[inx][0]);
                                            }
                                            else
                                            {
                                                AddendaPhilipsItem.pedimento = "";
                                            }



                                            break;

                                        case 3:
                                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                                            {
                                                AddendaPhilipsItem.patente = Convert.ToString(tablepartidaadenda.Rows[inx][0]);
                                            }
                                            else
                                            {
                                                AddendaPhilipsItem.patente = "";
                                            }

                                            break;

                                        case 4:
                                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                                            {
                                                AddendaPhilipsItem.cantidad = Convert.ToString(tablepartidaadenda.Rows[inx][0]);
                                            }
                                            else
                                            {
                                                AddendaPhilipsItem.cantidad = "";
                                            }


                                            break;

                                        case 5:
                                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                                            {
                                                AddendaPhilipsItem.WBS = Convert.ToString(tablepartidaadenda.Rows[inx][0]);
                                            }
                                            else
                                            {
                                                AddendaPhilipsItem.WBS = "";
                                            }


                                            break;

                                        case 6:
                                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                                            {
                                                AddendaPhilipsItem.OC = Convert.ToString(tablepartidaadenda.Rows[inx][0]);
                                            }
                                            else
                                            {
                                                AddendaPhilipsItem.OC = "";
                                            }


                                            break;

                                        case 7:
                                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                                            {
                                                AddendaPhilipsItem.OrdenServicio = Convert.ToString(tablepartidaadenda.Rows[inx][0]);
                                            }
                                            else
                                            {
                                                AddendaPhilipsItem.OrdenServicio = "";
                                            }


                                            break;

                                        case 8:
                                            if (tablepartidaadenda.Rows[0][0] != DBNull.Value)
                                            {
                                                AddendaPhilipsItem.texto = Convert.ToString(tablepartidaadenda.Rows[inx][0]);
                                            }
                                            else
                                            {
                                                AddendaPhilipsItem.texto = "";
                                            }


                                            break;
                                    }

                                    inx++;
                                }


                                PhilipsReq.addItem(AddendaPhilipsItem);
                            }
                        }



                        else
                        {
                            return false;
                            //msj no se capturo los datos de la partida
                        }

                        index++;

                    }
                }
                else
                {
                    return false;
                    //msj la factura no cuenta con detalle
                }

            }
            else
            {
                return false;
            }

            AddendaPhilips = new AddPhilips();
            xml = AddendaPhilips.insertarAddenda(xml, PhilipsReq);

            return true;
        }
コード例 #27
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        private static int lfCreaRegistroXMLtoPDF(string sRE, string sRR, string sTT, string sID, string sNombreArchivo)
        {
            int iRespuesta = -1;
            string sQuery = string.Empty;
            SQLConection context = new SQLConection();

            sQuery = string.Concat("INSERT INTO [dbo].[CatalogoDetalle] ",
                                  " ([CATALOGOID] ",
                                  " ,[CATALOGODETALLECLAVE] ",
                                  " ,[CATALOGODETALLEDESCRIPCION] ",
                                  " ,[DESCRIPCION2] ",
                                  " ,[CATALOGODETALLEACTIVO] ",
                                  " ,[OWNER] ",
                                  " ,[DATECREATION] ",
                                  " ,[DATEUPDATE] ",
                                  " ,[EMPRESA] ",
                                  " ,[D1] ",
                                  " ,[D2]) ",
                                  " VALUES ",
                                  " (11 ",
                                  " ,'", sID, "'",
                                  " ,'", sNombreArchivo, "'",
                                  " ,'ReImprimeCFDI'",
                                  " ,1",
                                  " ,'", string.Concat("?re=", sRE, "&rr=", sRR, "&tt=", sTT, "&id=", sID), "'",
                                  " ,GETDATE()",
                                  " ,GETDATE()",
                                  " ,-1",
                                  " ,''",
                                  " ,'')");

            iRespuesta = context.ExecuteNonQuery(sQuery);
            return iRespuesta;
        }
コード例 #28
0
 private DataTable ConsultaDatosEmpresa(int iNumeroEmpresa, string sBD)
 {
     SQLConection context = new SQLConection();
     DataTable dt = new DataTable();
     context.Parametros.Clear();
     context.Parametros.Add(new SqlParameter("@companynumber", iNumeroEmpresa));
     dt = context.ExecuteProcedure("[" + sBD + "].[dbo].[sp_Venta_ObtieneDatosDeEmpresa_v1]", true).Copy();
     return dt;
 }
コード例 #29
0
ファイル: FacturaController.cs プロジェクト: njmube/CFDI-3
        public static DataTable import_to_string(string sNombreDB, int company, Decimal total, int bandera, int NumeroFactura, int iTipo)
        {
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            string sQuery = string.Empty;
            int iResultado = -1;
            string sTipoMoneda = string.Empty;

            if (iTipo == 0)
                sQuery = string.Concat(" USE [" + sNombreDB + "] SELECT ISNULL(Moneda,109) AS MONEDA FROM   FACTURA WHERE  Numero = " + NumeroFactura.ToString() + " AND    Numero_empresa = " + company.ToString() + "");
            else
                sQuery = string.Concat(" USE [" + sNombreDB + "] SELECT ISNULL(Clas_Moneda,109) AS MONEDA FROM   Nota_Credito WHERE  Numero =" + NumeroFactura.ToString() + " AND    Numero_Empresa = " + company.ToString() + "");

            dt = context.ExecuteQuery(sQuery);

            iResultado = Convert.ToInt32(dt.Rows[0][0]);

            switch (iResultado)
            {
                case 110:
                    sTipoMoneda = "Dólar Americano";
                    break;
                case 109:
                    sTipoMoneda = "Peso Mexicano";
                    break;
                default:
                    sTipoMoneda = string.Empty;
                    break;
            }
            dt = new DataTable();
            context = new SQLConection();
            dt = context.ExecuteQuery(" SELECT dbo.fn_ImporteLetras(" + company + ", " + total + ", '" + sTipoMoneda + "', " + bandera + ") ");
            return dt;
        }