public int InsertarComprobante(string sucursal, string nofactura, DateTime fecha, DateTime fechavencimiento, int tipocomprobante, int idcentrocosto, int tipofactura, int contable, int condicioncompra, int idproveedor) { int result; using (Context = new Entities()) { Comprobantes c = new Comprobantes(); c.Sucursal = sucursal; c.NoFactura = nofactura; c.Fecha = fecha; c.FechaVencimiento = fechavencimiento; c.IdTipoComprobante = tipocomprobante; c.IdCentroCosto = idcentrocosto; c.IdTipoFactura = tipofactura; c.Contable = contable; c.IdCondicionCompra = condicioncompra; c.IdProveedor = idproveedor; Context.Comprobantes.Add(c); Context.SaveChanges(); result = 1; return(result); } }
private void GenerarArchivoDetalle(Comprobantes obj) { string filename = GetFolder(obj) + obj.GetFileNameDetalle(); TextWriter tw = new StreamWriter(filename, false, Encoding.Default); tw.Write((businessLogic as ComprobantesBL).GetStreamDetalle(obj)); tw.Close(); }
public String GetStreamDetalle(Comprobantes comp) { StringBuilder ret = new StringBuilder(); foreach (DetallesComprobantes item in comp.Items) { //Campo 1: Tipo de Comprobante ret.Append(comp.Tipo.Codigo.Substring(0, 2)); //Campo 2: Controlador Fiscal ret.Append(" "); //Campo 3: Fecha del Comprobante ret.Append(comp.Emision.ToString("yyyyMMdd")); //Campo 4: Punto de Venta ret.Append(comp.NroCbante.Substring(0, 4)); //Campo 5: Número de Comprobante ret.Append(comp.NroCbante.Substring(5, 8)); //Campo 6: Número de Comprobante Registrado ret.Append(comp.NroCbante.Substring(5, 8)); //Campo 7: Cantidad ret.Append(item.Cantidad.ToString().PadLeft(7, '0').PadRight(12, '0')); //Campo 8: Unidad de medida ret.Append("07"); //UNIDAD //Campo 9: Precio unitario - 16 caracteres ret.Append((item.ImpUnitarioNeto * (1 - comp.Descuento / 100)).ToString("#0.#00").Replace(".", "").Replace(",", "").PadLeft(16, '0')); //Campo 10: Importe de bonificación - 15 caracteres ret.Append("000000000000000"); //Campo 11: Importe de ajuste - 16 caracteres ret.Append("0000000000000000"); //Campo 12: Subtotal por registro - 16 caracteres //precio unitario (campo 9) multiplicado por la cantidad (campo 7) , menos el importe de la bonificación si las hubiere (campo 10) más el importe de ajuste (campo 11) de corresponder ret.Append(((item.ImpTotalNeto * (1 - comp.Descuento / 100)) * item.Cantidad).ToString("#0.#00").Replace(".", "").Replace(",", "").PadLeft(16, '0')); //Campo 13: Alícuota de IVA aplicable ret.Append(item.TipoIva.Alicuota.ToString("#0.#0").Replace(".", "").Replace(",", "").PadLeft(4, '0')); //Campo 14: Indicación de exento o gravado if (item.TipoIva.Alicuota != 0) { ret.Append('G'); } else { ret.Append('E'); } //Campo 15: Indicación de anulación if (item.Comprobante.Estado == Comprobantes.EstadoAnulado) { ret.Append("A"); } else { ret.Append(" "); } //Campo 16: Diseño libre (nombre del producto) ret.Append(item.Producto.Nombre.PadRight(75, ' ')); //Fin de registro ret.Append("\r\n"); // "\r\n"; } return(ret.ToString()); }
public virtual IList GetDTODetalle(Comprobantes comp) { ArrayList list = new ArrayList(); foreach (DetallesComprobantes item in comp.Items) { list.Add(new DetallesComprobantesDTO(item)); } return(list); }
public string GetFolder(Comprobantes obj) { DirectoryInfo folderInfo = new DirectoryInfo(GeneralSettings.Instance.FilesFolder + @"\" + obj.Tipo.Nombre + @"\" + obj.NroCbante); if (!folderInfo.Exists) { folderInfo.Create(); } return(folderInfo.FullName + @"\"); }
public override Persistent GetNewInstance() { EmpresasBL empBL = new EmpresasBL(); empBL.SetParameters(DBConnection); Comprobantes newComp = (Comprobantes)Activator.CreateInstance(PersistentType); newComp.Empresa = empBL.GetObject(GeneralSettings.Instance.IdEmpresaDefault) as Empresas; newComp.Supertipo = tipo; return(newComp); }
//#region WebService de Requerimiento de CAE (FEAutRequest) //protected string GetCAE(Comprobantes comprobante, out string nroComprobante) //{ // string result = String.Empty; // LoginTickets loginTicket = GetLoginTicket(comprobante.Empresa); // nroComprobante = "-1"; // if (loginTicket != null) // { // FEAuthRequest authRequest = new FEAuthRequest(); // authRequest.Token = loginTicket.Token; // authRequest.Sign = loginTicket.Sign; // authRequest.cuit = Convert.ToInt64(comprobante.Empresa.Cuit.Replace("-", "")); // ComprobantesAdapter adapter = new ComprobantesAdapter(comprobante); // FERequest request = adapter.GenerarFERequest(comprobante.Id); // Service service = new Service(); // FEResponse response = service.FEAutRequest(authRequest, request); // if (response.FedResp != null && response.FedResp[0].resultado == "R" && response.FedResp[0].motivo.StartsWith("11") && response.FedResp[0].cae == "NULL") // { // //Caso en que falla por correlatividad de comprobantes // FERecuperaLastCMPResponse ultimoComEmitido = service.FERecuperaLastCMPRequest(authRequest, adapter.GenerarFELastCMPtype()); // comprobante.NroCbante = comprobante.NroCbante.Substring(0, 5) + (ultimoComEmitido.cbte_nro + 1).ToString().PadLeft(8, '0'); // adapter = new ComprobantesAdapter(comprobante); // request = new FERequest(); // //Generación de otro ID // long idDate = DateTime.Now.Year * 10000000000; // idDate += DateTime.Now.Month * 100000000; // idDate += DateTime.Now.Day * 1000000; // idDate += DateTime.Now.Hour * 10000; // idDate += DateTime.Now.Minute * 100; // idDate += DateTime.Now.Second; // request = adapter.GenerarFERequest(idDate); // service = new Service(); // response = service.FEAutRequest(authRequest, request); // } // else // { // if (response.FedResp != null && response.FedResp[0].resultado == "R" && !String.IsNullOrEmpty(response.FedResp[0].motivo)) // { // ArrayList motivos = new ArrayList(); // motivos.AddRange(response.FedResp[0].motivo.Split(";".ToCharArray())); // StringBuilder logMotivos = new StringBuilder(); // if (motivos.Contains("01")) logMotivos.Append("01 \"La cuit informada no corresponde a un responsable inscripto en el iva activo\\n"); // if (motivos.Contains("02")) logMotivos.Append("02 \"La cuit informada no se encuentra autorizada a emitir comprobantes electronicos originales o el periodo de inicio autorizado es posterior al de la generacion de la solicitud\"\n"); // if (motivos.Contains("03")) logMotivos.Append("03 \"La cuit informada registra inconvenientes con el domicilio fiscal\"\n"); // if (motivos.Contains("04")) logMotivos.Append("04 \"El punto de venta informado no se encuentra declarado para ser utilizado en el presente regimen\"\n"); // if (motivos.Contains("05")) logMotivos.Append("05 \"La fecha del comprobante indicada no puede ser anterior en mas de cinco dias, si se trata de una venta, o anterior o posterior en mas de diez dias, si se trata de una prestacion de servicios, consecutivos de la fecha de remision del archivo art. 22 De la rg nro 2177-\"\n"); // if (motivos.Contains("06")) logMotivos.Append("06 \"La cuit informada no se encuentra autorizada a emitir comprobantes clase \"a\"\"\n"); // if (motivos.Contains("07")) logMotivos.Append("07 \"Para la clase de comprobante solicitado -comprobante clase a- debera consignar en el campo codigo de documento identificatorio del comprador el codigo \"80\"\n"); // if (motivos.Contains("08")) logMotivos.Append("08 \"La cuit indicada en el campo nro de identificacion del comprador es invalida\"\n"); // if (motivos.Contains("09")) logMotivos.Append("09 \"La cuit indicada en el campo nro de identificacion del comprador no existe en el padron unico de contribuyentes\"\n"); // if (motivos.Contains("10")) logMotivos.Append("10 \"La cuit indicada en el campo nro de identificacion del comprador no corresponde a un responsable inscripto en el iva activo\"\n"); // if (motivos.Contains("11")) logMotivos.Append("11 \"El nro de comprobante desde informado no es correlativo al ultimo nro de comprobante registrado/hasta solicitado para ese tipo de comprobante y punto de venta\"\n"); // if (motivos.Contains("12")) logMotivos.Append("12 \"El rango informado se encuentra autorizado con anterioridad para la misma cuit, tipo de comprobante y punto de venta\"\n"); // if (motivos.Contains("13")) logMotivos.Append("13 \"La cuit indicada se encuentra comprendida en el regimen establecido por la resolucion general nro 2177 y/o en el titulo I de la resolucion general nro 1361 art. 24 De la rg nro 2177\"\n"); // if (logMotivos.Length > 0) { // Logger.EscribirEventLog(logMotivos.ToString()); // } // } // } // nroComprobante = comprobante.NroCbante; // try // { // result = response.FedResp[0].cae; // } // catch (Exception ex) // { // nroComprobante = "-1"; // result = ex.Message; // } // } // return result; //} //#endregion #endregion private string ReenviarComprobante(Comprobantes obj) { try { EnviarComprobante(obj, false); } catch (Exception) { return("No se pudo enviar el comprobante a la cuenta de email del cliente"); } return(string.Empty); }
//TODO: Repetido private void PersistirUltimoNroCbanteComprobante(Comprobantes comp) { if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.FacturaA"]) { comp.Empresa.UltimaFacturaA = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.FacturaB"]) { comp.Empresa.UltimaFacturaB = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.FacturaC"]) { comp.Empresa.UltimaFacturaC = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.FacturaE"]) { comp.Empresa.UltimaFacturaE = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.NotaDebitoA"]) { comp.Empresa.UltimaNotaDebitoA = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.NotaDebitoB"]) { comp.Empresa.UltimaNotaDebitoB = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.NotaDebitoC"]) { comp.Empresa.UltimaNotaDebitoC = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.NotaDebitoE"]) { comp.Empresa.UltimaNotaDebitoE = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.NotaCreditoA"]) { comp.Empresa.UltimaNotaCreditoA = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.NotaCreditoB"]) { comp.Empresa.UltimaNotaCreditoB = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.NotaCreditoC"]) { comp.Empresa.UltimaNotaCreditoC = comp.NroCbante; } else if (comp.Tipo.Codigo == ConfigurationManager.AppSettings["tipoComprobante.NotaCreditoE"]) { comp.Empresa.UltimaNotaCreditoE = comp.NroCbante; } }
private string AnularComprobante(Comprobantes obj) { obj.Anular(); try { EnviarComprobante(obj, obj.VerReporte); //true; } catch (Exception ex) { Logger.EscribirEventLog(ex); return("No se pudo enviar el comprobante a la cuenta de email del cliente"); } return(""); }
public static string GetCAE(XmlDocument xmlEmpresa, XmlDocument xmlComprobante, out string logError, out string nroComprobante, ref long idCabecera) { XmlNode node; Comprobantes comprobante = new Comprobantes(); node = xmlComprobante.SelectSingleNode("//cuitCliente"); comprobante.Cliente = new Clientes(); comprobante.Cliente.CUIT = node.InnerXml; node = xmlComprobante.SelectSingleNode("//numeroComprobante"); comprobante.NroCbante = node.InnerXml; node = xmlComprobante.SelectSingleNode("//tipo"); comprobante.Tipo = new TiposComprobantes(); comprobante.Tipo.Codigo = node.InnerXml; node = xmlComprobante.SelectSingleNode("//emision"); comprobante.Emision = Convert.ToDateTime(node.InnerXml, culture); node = xmlComprobante.SelectSingleNode("//subtotalNeto "); comprobante.SubtotalNeto = Convert.ToInt32(node.InnerXml); node = xmlComprobante.SelectSingleNode("//iva1"); comprobante.Iva1 = Convert.ToDouble(node.InnerXml); node = xmlComprobante.SelectSingleNode("//iva2"); comprobante.Iva2 = Convert.ToDouble(node.InnerXml); node = xmlComprobante.SelectSingleNode("//total"); comprobante.Total = Convert.ToDouble(node.InnerXml); node = xmlComprobante.SelectSingleNode("//idComprobante"); comprobante.Id = Convert.ToInt32(node.InnerXml); comprobante.Empresa = new Empresas(); node = xmlEmpresa.SelectSingleNode("//dnOrigen"); comprobante.Empresa.DNOrigen = node.InnerXml; node = xmlEmpresa.SelectSingleNode("//dnDestino"); comprobante.Empresa.DNDestino = node.InnerXml; node = xmlEmpresa.SelectSingleNode("//uniqueID"); comprobante.Empresa.Id = Convert.ToInt32(node.InnerXml); node = xmlEmpresa.SelectSingleNode("//senderName"); comprobante.Empresa.SenderName = node.InnerXml; node = xmlEmpresa.SelectSingleNode("//cuit"); comprobante.Empresa.Cuit = node.InnerXml; /* */ comprobante.Empresa.CAI = "CAI1455"; comprobante.Empresa.CertificadoDestinoFileName = @"C:\Vero\Proyectos\MFD\MFDHOMO\Certificados\viset\CRT-root.cer"; comprobante.Empresa.CertificadoFileName = @"C:\Vero\Proyectos\MFD\MFDHOMO\Certificados\viset\viset.crt"; comprobante.Empresa.CertificadoPassword = "******"; comprobante.Empresa.LoginTicketFileName = @"C:\Vero\Proyectos\MFD\MFDHOMO\Certificados\viset\LoginTicketRequest.xml"; // return(GetCAE(comprobante, out logError, out nroComprobante, ref idCabecera, false)); }
private int?GetUltimoNroComprobante(Comprobantes comprobante) { LoginTickets loginTicket = GetLoginTicket(comprobante.Empresa); if (loginTicket != null) { FEAuthRequest authRequest = new FEAuthRequest(); authRequest.Token = loginTicket.Token; authRequest.Sign = loginTicket.Sign; authRequest.cuit = Convert.ToInt64(comprobante.Empresa.Cuit.Replace("-", "")); ComprobantesAdapter adapter = new ComprobantesAdapter(comprobante); Service service = new Service(); return(((FERecuperaLastCMPResponse)(service.FERecuperaLastCMPRequest(authRequest, adapter.GenerarFELastCMPtype()))).cbte_nro); } return(null); }
private void GenerarXML(Comprobantes obj) { string filename = GetFolder(obj) + obj.GetFileName("xml"); XmlTextWriter writer = new XmlTextWriter(filename, Encoding.GetEncoding("iso-8859-1")); //Encoding.UTF8 writer.Formatting = Formatting.Indented; XmlDocument factura = new ComprobantesAdapter(obj).GenerarXml(); factura.WriteTo(writer); writer.Flush(); writer.Close(); if (!File.Exists(GetFolder(obj) + "Factura_v1.22.xsl")) { File.Copy(AppDomain.CurrentDomain.BaseDirectory + "Factura_v1.22.xsl", GetFolder(obj) + "Factura_v1.22.xsl"); } }
public static long?GetUltimoId(XmlDocument xmlEmpresa) { XmlNode node; Comprobantes comprobante = new Comprobantes(); comprobante.Empresa = new Empresas(); node = xmlEmpresa.SelectSingleNode("//dnOrigen"); comprobante.Empresa.DNOrigen = node.InnerXml; node = xmlEmpresa.SelectSingleNode("//dnDestino"); comprobante.Empresa.DNDestino = node.InnerXml; node = xmlEmpresa.SelectSingleNode("//uniqueID"); comprobante.Empresa.Id = Convert.ToInt32(node.InnerXml); node = xmlEmpresa.SelectSingleNode("//senderName"); comprobante.Empresa.SenderName = node.InnerXml; node = xmlEmpresa.SelectSingleNode("//cuit"); comprobante.Empresa.Cuit = node.InnerXml; return(GetUltimoId(comprobante)); }
public override bool RequiredFieldsValidator(Persistent persistentObject, ErrorMessages messages) { bool result = base.RequiredFieldsValidator(persistentObject, messages); Comprobantes comprobante = persistentObject as Comprobantes; result &= new RequiredFieldValidator(messages).Validate(comprobante.Tipo, "Debe ingresar un Tipo"); result &= new RequiredFieldValidator(messages).Validate(comprobante.TipoPago, "Debe ingresar un Tipo de Pago"); result &= new RequiredFieldValidator(messages).Validate(comprobante.Cliente, "Debe ingresar un Cliente"); DateTime fechaEmisionCorta = Convert.ToDateTime(comprobante.Emision.ToShortDateString()); DateTime fechaHoyCorta = Convert.ToDateTime(DateTime.Now.ToShortDateString()); /*bool fechaValida = (fechaEmisionCorta >= fechaHoyCorta) ; * if(!fechaValida ){ * messages.Add("La fecha de emisión deber ser mayor o igual a la fecha actual"); * } * result &= fechaValida;*/ return(result); }
private static long?GetUltimoId(Comprobantes comprobante) { LoginTickets loginTicket = GetLoginTicket(comprobante.Empresa); if (loginTicket != null) { FEAuthRequest authRequest = new FEAuthRequest(); authRequest.Token = loginTicket.Token; authRequest.Sign = loginTicket.Sign; authRequest.cuit = Convert.ToInt64(comprobante.Empresa.Cuit.Replace("-", "")); Service service = new Service(); /*FEUltNroResponse ultid = service.FEUltNroRequest(authRequest); * UltNroResponse nroo = ultid.nro; * vError err = ultid.RError;*/ return(((FEUltNroResponse)(service.FEUltNroRequest(authRequest))).nro.value); } return(null); }
private ReportDocument GenerarReporteDetalle(Comprobantes obj, Boolean show, string filename) { ReportDocument report = ReportManager.GetReportDetalleComprobantes(businessLogic as ComprobantesBL, obj); ExportFormatType formatType = FormatoExportacionComprobante(GeneralSettings.Instance.FormatoComprobante); if (formatType != ExportFormatType.NoFormat) { report.ExportToDisk(formatType, filename); } else { GenerarXML(obj); } if (obj.VerReporte) { new ReportViewer().Open(report); } return(report); }
public static void ModificarComprobante(Comprobantes array) { try { if (!Conexion.getInstance().Servicio.Where(w => w.idServicio == array.idServicio).Equals(true)) { Guid f = array.idComprobante; Comprobantes modificar = Conexion.getInstance().Comprobantes.Where(w => w.idComprobante == f).FirstOrDefault(); modificar.monto = array.monto; modificar.pagado = array.pagado; modificar.activo = array.activo; modificar.fechaFinal = array.fechaFinal; modificar.fechaInicio = array.fechaInicio; modificar.idCliente = array.idCliente; modificar.idServicio = array.idServicio; modificar.idUsuario = array.idUsuario; Conexion.getInstance().SaveChanges(); var i = Conexion.getInstance().Servicio.Join( Conexion.getInstance().Equipo, s => s.idEquipo, e => e.idEquipo, (s, e) => new { s, e }).Where(w => w.s.idServicio == array.idServicio).ToList(); List <Equipo> equips = new List <Equipo>(); foreach (var item in i) { equips.Add(item.e); } ComprobantePDF(Conexion.getInstance().Comprobantes.Where(w => w.idComprobante == array.idComprobante).FirstOrDefault(), equips); MessageBox.Show("El Comrobante fue modificado exitosamente", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show(ex.ToString(), "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void enviarComprobante(String ruc, byte[] xmlFile, String tipoComprobante, String versionXsd) { try { sri.RecepcionComprobantesOfflineService servicio = new sri.RecepcionComprobantesOfflineService(); servicio.Url = "https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantesOffline"; object[] res = servicio.validarComprobante(xmlFile); this.respuesta = res; XmlNode nodoEstado = (((System.Xml.XmlNode[])(((object[])(this.respuesta[0]))[0]))[0]); XmlNode nodoComprobantes = (((System.Xml.XmlNode[])(((object[])(this.respuesta[0]))[0]))[1]); Comprobantes comprobantes = new Comprobantes(); Comprobante.Mensajes mensajes = new Comprobante.Mensajes(); foreach (XmlNode nodo in nodoComprobantes.SelectNodes("/comprobantes")) { Comprobante c = new Comprobante(); comprobantes = new Comprobantes(); if (nodo["comprobante"] != null) { foreach (XmlNode nodoMensajes in nodo["comprobante"]["mensajes"]) { c.setClaveAcceso(nodo["comprobante"]["claveAcceso"].InnerText); Mensaje mensaje = new Mensaje(); mensaje.setIdentificador(nodoMensajes["identificador"].InnerText); mensaje.setMensaje(nodoMensajes["mensaje"].InnerText); mensaje.setTipo(nodoMensajes["tipo"].InnerText); mensajes.getMensaje().Add(mensaje); c.setMensajes(mensajes); } } comprobantes.getComprobante().Add(c); } this.respuestaSolicitud.setComprobantes(comprobantes); this.respuestaSolicitud.setEstado(nodoEstado.InnerText); } catch (Exception e) { this.respuestaSolicitud.setEstado("ERROR:" + e.ToString()); } }
private int GenerarNumeroDeComprobante() { int NumeroComprobante = 0; using (var context = new lts_sindicatoDataContext()) { if (context.Comprobantes.Count() > 0) { NumeroComprobante = Convert.ToInt32(context.Comprobantes.Max(x => x.Numero) + 1); } else { NumeroComprobante = 1; } Comprobantes InsertarComprobante = new Comprobantes(); InsertarComprobante.Numero = NumeroComprobante; InsertarComprobante.Importe = Convert.ToDecimal(txt_TotalComprobante.Text); context.Comprobantes.InsertOnSubmit(InsertarComprobante); context.SubmitChanges(); return(NumeroComprobante); } }
public static int?GetUltimoNroComprobante(XmlDocument xmlEmpresa, XmlDocument xmlComprobante) { XmlNode node; Comprobantes comprobante = new Comprobantes(); node = xmlComprobante.SelectSingleNode("//numeroComprobante"); comprobante.NroCbante = node.InnerXml; node = xmlComprobante.SelectSingleNode("//tipo"); comprobante.Tipo = new TiposComprobantes(); comprobante.Tipo.Codigo = node.InnerXml; comprobante.Empresa = new Empresas(); node = xmlEmpresa.SelectSingleNode("//dnOrigen"); comprobante.Empresa.DNOrigen = node.InnerXml; node = xmlEmpresa.SelectSingleNode("//dnDestino"); comprobante.Empresa.DNDestino = node.InnerXml; node = xmlEmpresa.SelectSingleNode("//uniqueID"); comprobante.Empresa.Id = Convert.ToInt32(node.InnerXml); node = xmlEmpresa.SelectSingleNode("//senderName"); comprobante.Empresa.SenderName = node.InnerXml; node = xmlEmpresa.SelectSingleNode("//cuit"); comprobante.Empresa.Cuit = node.InnerXml; return(GetUltimoNroComprobante(comprobante)); }
public static void AltaComprobante(Comprobantes array) { try { Conexion.getInstance().Comprobantes.Add(array); Conexion.getInstance().SaveChanges(); var i = Conexion.getInstance().Servicio.Join( Conexion.getInstance().Equipo, s => s.idEquipo, e => e.idEquipo, (s, e) => new { s, e }).Where(w => w.s.idServicio == array.idServicio).ToList(); List <Equipo> equips = new List <Equipo>(); foreach (var item in i) { equips.Add(item.e); } ComprobantePDF(Conexion.getInstance().Comprobantes.Where(w => w.idComprobante == array.idComprobante).FirstOrDefault(), equips); MessageBox.Show("El Comprobante fue agregado exitosamente", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public string GetResumeStream(Comprobantes comp) { //return "Fecha: " + comp.Emision.ToString("yyyyMMdd") + " Nro: " + comp.NroCbante + " Importe: " + comp.Total + "\r\n"; return("Fecha: " + comp.Emision.ToString("yyyyMMdd") + " Nro: " + comp.NroCbante + "\r\n"); }
//private public string EmitirComprobante(Comprobantes obj, out string nroComprobante, bool generarXML) { nroComprobante = "-1"; //Generación de otro ID long idDate = DateTime.Now.Year * 10000000000; idDate += DateTime.Now.Month * 100000000; idDate += DateTime.Now.Day * 1000000; idDate += DateTime.Now.Hour * 10000; idDate += DateTime.Now.Minute * 100; idDate += DateTime.Now.Second; long idCabeceraWS = idDate; /*if (Status.ChequearConexion()) * {*/ if (((MFD.Main)(CRUDFormParent)).IsValidLicense()) { try { string errorLog; //Reemplazado en MFDService //obj.CAE = GetCAE(obj, out nroComprobante); string result = MFDService.MFDService.GetCAE(obj, out errorLog, out nroComprobante, ref idCabeceraWS, loginTicketsBL, loginTicketRequestsBL, true); //string result = ""; obj.NroCbante = nroComprobante; obj.IdCabeceraWS = idCabeceraWS; if (obj.CAE != "NULL" && nroComprobante != "-1") { obj.CAE = result; obj.Emitir(); ((MFD.Main)(CRUDFormParent)).StatusConn.Image = global::MFD.Properties.Resources.green; ((MFD.Main)(CRUDFormParent)).StatusWS.Image = global::MFD.Properties.Resources.green; } else { nroComprobante = "-1"; obj.NroCbante = "-1"; string error = "No se pudo obtener el CAE. CAE='NULL'.\nPara más información revisar el eventLog en la vista MFD"; Logger.EscribirEventLog(error + Environment.NewLine + result); return(error); } } catch (Exception ex) { nroComprobante = "-1"; Logger.EscribirEventLog(ex); return("No se pudo obtener el CAE. " + ex.Message); } try { //En estos momentos no se esta utilizando el check de Generar xml desde el formulario del comprobante if (obj.GenerarXml) { GenerarXML(obj); } } catch (Exception ex) { Logger.EscribirEventLog(ex); return("No se pudo generar el archivo xml correspondiente al comprobante"); } try { EnviarComprobante(obj, obj.VerReporte); //true; } catch (Exception ex) { Logger.EscribirEventLog(ex); return("No se pudo enviar el comprobante a la cuenta de email del cliente"); } // return string.Empty; } else { MessageBox.Show("Su licencia a expirado."); Application.Exit(); } /*} * else { * string error = "No se puede emitir el comprobante porque no hay conexión a internet."; * Logger.EscribirEventLog(error); * return error; * //MessageBox.Show(); * }*/ return(string.Empty); }
private void EnviarComprobante(Comprobantes obj, bool show) { try { string homologacion = "", validezLegal = ""; if (ConfigurationManager.AppSettings["FlagEnvir"] == "0") { homologacion = "HOMOLOGACIÓN"; validezLegal = " TENGA PRESENTE QUE EL COMPROBANTE QUE SE ADJUNTA ES SOLO DE PRUEBA Y EL MISMO NO POSEE VALIDEZ LEGAL"; } string filename = GetFolder(obj) + obj.GetFileName(GeneralSettings.Instance.FormatoComprobante.ToString().ToLower().Substring(0, 3)); if (!File.Exists(filename)) { GenerarReporteDetalle(obj, show, filename); } SmtpClient client = new SmtpClient(GeneralSettings.Instance.SmtpServer, GeneralSettings.Instance.SmtpServerPort); client.Credentials = new System.Net.NetworkCredential(GeneralSettings.Instance.SmtpUser, GeneralSettings.Instance.SmtpPass); MailAddress from = new MailAddress(GeneralSettings.Instance.SmtpUser, "Factura electronica de " + obj.Empresa.RazonSocial, System.Text.Encoding.UTF8); //MailAddress from = new MailAddress(GeneralSettings.Instance.SmtpUser, "Factura electronica " + ((homologacion != "") ? ("(" + homologacion + ") ") : ("")) + obj.Empresa.RazonSocial, System.Text.Encoding.UTF8); MailAddress to = new MailAddress(obj.Cliente.Email); MailMessage message = new MailMessage(from, to); message.BodyEncoding = System.Text.Encoding.UTF8; message.Subject = GeneralSettings.Instance.EmailSubject; message.SubjectEncoding = System.Text.Encoding.UTF8; string userState = "Fact elect"; //if (GeneralSettings.Instance.FormatoComprobante == FormatoComprobante.HTML) { // string body = GenerarBodyHTML(filename, obj.GetFileNameDetalle()); // AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, null, "text/html"); // //create the LinkedResource (embedded image) // LinkedResource logo = new LinkedResource(obj.Empresa.LogoEmpresaFileName); // logo.ContentId = "logo"; // //add the LinkedResource to the appropriate view // htmlView.LinkedResources.Add(logo); // //add the views // message.AlternateViews.Add(htmlView); //} message.Attachments.Add(new Attachment(filename)); ExportFormatType formatType = FormatoExportacionComprobante(GeneralSettings.Instance.FormatoComprobante); if (formatType == ExportFormatType.NoFormat) { string filenameXSL = AppDomain.CurrentDomain.BaseDirectory + "Factura_v1.22.xsl"; message.Attachments.Add(new Attachment(filenameXSL)); } //message.Body = ("Ha recibido una factura electrónica de " + obj.Empresa.RazonSocial + ", por favor compruebe que la ha recepcionado correctamente, en caso de no ser así sepa disculpar y contactese con la empresa." + "La informacion contenida en el documento adjunto es de indole estrictamente confidencial."); message.Body = GeneralSettings.Instance.EmailTexto; message.Headers.Add("Disposition-Notification-To", GeneralSettings.Instance.SmtpUser); try { client.SendAsync(message, userState); } catch (Exception ex) { string err = ex.Message; throw ex; } } catch (Exception ex) { throw ex; } }
private void btnGuardarServicio_Click(object sender, EventArgs e) { try { DialogResult dr = MessageBox.Show("¿Desea ingresar este comprobante?", "INFO", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk); if (dr.Equals(DialogResult.Yes)) { if (txtMonto.Text != null && txtFi.Text != null && DateTime.Parse(txtFi.Text) <= DateTime.Parse(txtFf.Text) && txtFf.Text != null && (radioBnoActivo.Checked != false || radioBsiActivo.Checked != false) && (radioBnoPagado.Checked != false || radioBsiPagado.Checked != false)) { if (id.Equals(Guid.Empty)) { if (CrudServicios.verificarComprobante(Guid.Parse(txtClientes.SelectedValue.ToString()), Convert.ToDateTime(txtFi.Text), Convert.ToDateTime(txtFf.Text)).Equals(false)) { int c1 = DateTime.Compare(DateTime.Parse(txtFi.Text), DateTime.Parse(DateTime.Today.ToShortDateString())); int c2 = DateTime.Compare(DateTime.Parse(txtFf.Text), DateTime.Parse(DateTime.Today.ToShortDateString())); if (c1 >= 0 && c2 >= 0) { id = Guid.NewGuid(); idS = Guid.NewGuid(); idU = Conexion.usuario.idUsuario; idC = Guid.Parse(txtClientes.SelectedValue.ToString()); foreach (DataGridViewRow item in dgvEquiposD.Rows) { if (item.Cells[0].Value.Equals(true)) { CrudServicios.AltaServicio(new Servicio { idServicio = idS, idEquipo = Guid.Parse(item.Cells[1].Value.ToString()) }, activo); } } Comprobantes newRecibo = new Comprobantes { idComprobante = id, idCliente = idC, idUsuario = idU, idServicio = idS, fechaInicio = Convert.ToDateTime(txtFi.Text), fechaFinal = Convert.ToDateTime(txtFf.Text), pagado = activoPago, activo = activo, monto = Convert.ToDecimal(txtMonto.Text) }; CrudServicios.AltaComprobante(newRecibo); clearInterface(); cargarTabla(); } else { MessageBox.Show("La fecha no es la correcta", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("El comprobante ya ha sido creado, búscalo en la tabla debajo", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { foreach (DataGridViewRow item in dgvEquiposA.Rows) { if (!item.Cells[0].Value.Equals(true)) { CrudServicios.BajaServicio(Guid.Parse(item.Cells[1].Value.ToString()), idS); } } foreach (DataGridViewRow item in dgvEquiposD.Rows) { if (item.Cells[0].Value.Equals(true)) { CrudServicios.AltaServicio(new Servicio { idServicio = idS, idEquipo = Guid.Parse(item.Cells[1].Value.ToString()) }, activo); } } Comprobantes recibo = new Comprobantes { idComprobante = id, idCliente = idC, idUsuario = idU, idServicio = idS, fechaInicio = Convert.ToDateTime(txtFi.Text), fechaFinal = Convert.ToDateTime(txtFf.Text), pagado = activoPago, activo = activo, monto = Convert.ToDecimal(txtMonto.Text) }; CrudServicios.ModificarComprobante(recibo); clearInterface(); cargarTabla(); } } else { MessageBox.Show("Ingrese o corrija los campos", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
protected string GetStreamVentas(Comprobantes comp, LibroVentasTotal total) { StringBuilder ret1 = new StringBuilder(); StringBuilder ret2 = new StringBuilder(); StringBuilder ret3 = new StringBuilder(); IDictionary <Ivas, IList <DetallesComprobantes> > detallesPorIva = GetDetallesPorIva(comp); #region Campos 1 a 10 (comunes) //Campo 1: Tipo de registro ret1.Append("1"); //Campo 2: Fecha del comprobante ret1.Append(comp.Emision.ToString("yyyyMMdd")); //Campo 3: Tipo de Comprobante ret1.Append(comp.Tipo.Codigo.Substring(0, 2)); //Campo 4: Controlador Fiscal ret1.Append(" "); //Campo 5: Punto de Venta ret1.Append(comp.NroCbante.Substring(0, 4)); //Campo 6: Número de Comprobante ret1.Append(comp.NroCbante.Substring(5, 8).PadLeft(20, '0')); //Campo 7: Número de Comprobante Registrado ret1.Append(comp.NroCbante.Substring(5, 8).PadLeft(20, '0')); //Campo 8: Código de documento identificatorio del comprador ret1.Append(GeneralSettings.Instance.CodigoCUIT.Substring(0, 2)); //Campo 9: Número de identificación del comprador ret1.Append(comp.CUITCliente.Replace("-", "").PadRight(11, ' ')); //Campo 10: Apellido y nombres o denominación del comprador ret1.Append((comp.NombreCliente.Length < 30) ? comp.NombreCliente.PadRight(30, ' ') : comp.NombreCliente.Substring(0, 30)); #endregion #region Campos 22 a 30 (comunes) //Campo 22: Tipo de responsable ret3.Append(comp.TipoCliente.Codigo.Substring(0, 2)); //Campo 23: Códigos de Moneda ret3.Append(GeneralSettings.Instance.CodigoMoneda.Substring(0, 3)); //Campo 24: Tipo de Cambio ret3.Append("0001000000"); //Campo 25: Cantidad de alícuotas de IVA ret3.Append("1"); //Campo 26: Código de operación ret3.Append(" "); //Campo 27: CAI ret3.Append(comp.Empresa.CAI.ToString().PadRight(14, ' ')); //Campo 28: Fecha de vencimiento ret3.Append(comp.Empresa.FechaVtoCAI.ToString("yyyyMMdd")); //Campo 29: Fecha anulación del comprobante if (comp.Estado != Comprobantes.EstadoAnulado) { ret3.Append("00000000"); } else { ret3.Append(comp.Anulacion.Value.ToString("yyyyMMdd")); } //Campo 30: Información adicional ret3.Append(String.Empty.PadRight(75, ' ')); #endregion #region Campos 11 a 21 (por alicuota de iva) foreach (KeyValuePair <Ivas, IList <DetallesComprobantes> > pair in detallesPorIva) { Comprobantes comprobanteAuxiliar = new Comprobantes(); comprobanteAuxiliar.Items = pair.Value; comprobanteAuxiliar.Cliente = comp.Cliente; comprobanteAuxiliar.Empresa = comp.Empresa; comprobanteAuxiliar.CalcularTotales(comprobanteAuxiliar); total.CantidadRegistros++; total.ImporteTotal += comprobanteAuxiliar.Total; total.ImporteNeto += comprobanteAuxiliar.SubtotalNeto; total.ImporteImpuesto += (comprobanteAuxiliar.Iva1 + comprobanteAuxiliar.Iva2); //Campo 11: Importe total de la operación ret2.Append(comprobanteAuxiliar.Total.ToString("#0.#0").Replace(".", "").Replace(",", "").PadLeft(15, '0')); //Campo 12: Importe total de conceptos que no integran el precio neto gravado ret2.Append("000000000000000"); //Campo 13: Importe Neto Gravado ret2.Append(comprobanteAuxiliar.SubtotalNeto.ToString("#0.#0").Replace(".", "").Replace(",", "").PadLeft(15, '0')); //Campo 14: Alicuota de iva ret2.Append(pair.Key.Alicuota.ToString("#0.#0").Replace(".", "").Replace(",", "").PadLeft(4, '0')); //Campo 15: Impuesto liquidado //ret2.Append((comprobanteAuxiliar.Iva1 + comprobanteAuxiliar.Iva2).ToString("#0.#0").Replace(".", "").Replace(",", "").PadLeft(15, '0')); ret2.Append((comprobanteAuxiliar.Iva1 + comprobanteAuxiliar.Iva2).ToString("#0.#0").Replace(".", "").Replace(",", "").PadLeft(15, '0')); //Campo 16: Impuesto liquidado a RNI o percepción a no categorizados //TODO: si el comprador es no inscripto o no categorizado (campo 23 = 02 o 07), esto es el 50% del campo 15 ret2.Append("000000000000000"); //Campo 17: Importe de operaciones exentas ret2.Append("000000000000000"); //Campo 18: Importe de percepciones o pagos a cuenta sobre impuestos nacionales ret2.Append("000000000000000"); //Campo 19: Importe de percepción de ingresos brutos ret2.Append(comprobanteAuxiliar.Percepciones.ToString("#0.#0").Replace(".", "").Replace(",", "").PadLeft(15, '0')); //Campo 20: Importe de percepciones por impuestos municipales ret2.Append("000000000000000"); //Campo 21: Importe de impuestos internos ret2.Append("000000000000000"); } #endregion //Registro return(ret1.Append(ret2).Append(ret3).Append("\r\n").ToString()); }
public override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Comprobante>(Comprobantes => { Comprobantes.HasKey(e => e.IdComprobante); Comprobantes.Property(e => e.IdUsuario).IsRequired(); Comprobantes.Property(e => e.IdNegocio).IsRequired(); Comprobantes.Property(e => e.IdEstatus).IsRequired(); Comprobantes.Property(e => e.IdDireccion).IsRequired(); Comprobantes.Property(e => e.Puntuacion).IsRequired(); Comprobantes.Property(e => e.Precio).IsRequired(); Comprobantes.Property(e => e.Efectivo).IsRequired(); Comprobantes.Property(e => e.Fecha).IsRequired(); Comprobantes .HasOne(e => e.Negocio) .WithMany(y => y.Comprobantes) .HasForeignKey("fk_Comprobante_Negocio"); Comprobantes .HasOne(e => e.Usuario) .WithMany(y => y.Comprobantes) .HasForeignKey("fk_Comprobante_Usuario"); Comprobantes .HasOne(e => e.Estatus) .WithOne(y => y.Comprobantes) .HasForeignKey("fk_Comprobante_Estatus"); Comprobantes .HasOne(e => e.Direcccion) .WithMany(y => y.Comprobantes) .HasForeignKey("fk_Comprobante_Direccion"); }); modelBuilder.Entity<ComprobanteDetalle>(ComprobanteDetalles => { ComprobanteDetalles.HasKey(e => e.IdComprobanteDetalle); ComprobanteDetalles.Property(e => e.IdComprobante).IsRequired(); ComprobanteDetalles.Property(e => e.IdEstatus).IsRequired(); ComprobanteDetalles.Property(e => e.IdServicio).IsRequired(); ComprobanteDetalles.Property(e => e.Puntuacion).IsRequired(); ComprobanteDetalles.Property(e => e.Precio).IsRequired(); ComprobanteDetalles.Property(e => e.Cambio).IsRequired(false); ComprobanteDetalles.Property(e => e.Fecha).IsRequired(); ComprobanteDetalles .HasOne(e => e.Comprobante) .WithMany(y => y.ComprobanteDetalles) .HasForeignKey("fk_ComprobanteDetalle_Comprobante"); ComprobanteDetalles .HasOne(e => e.Estatus) .WithOne(y => y.ComprobanteDetalles) .HasForeignKey("fk_ComprobanteDetalle_Estatus"); ComprobanteDetalles .HasOne(e => e.Servicio) .WithOne(y => y.ComprobanteDetalles) .HasForeignKey("fk_ComprobanteDetalle_Servicio"); }); modelBuilder.Entity<Servicio>(Servicios => { Servicios.HasKey(e => e.IdServicio); Servicios.Property(e => e.IdNegocio).IsRequired(); Servicios.Property(e => e.Puntuacion).IsRequired(); Servicios.Property(e => e.Nombre) .HasMaxLength(200) .IsUnicode(false) .IsRequired(); Servicios.Property(e => e.Descripcion) .IsUnicode(false) .IsRequired(); Servicios.Property(e => e.Duracion) .IsRequired(); Servicios.Property(e => e.Precio) .IsRequired(); Servicios.Property(e => e.Fecha) .IsRequired(); Servicios .HasOne(e => e.Negocio) .WithMany(y => y.Servicios) .HasForeignKey("fk_Servicio_Negocio"); }); modelBuilder.Entity<Negocio>(Negocios => { Negocios.HasKey(e => e.IdNegocio); Negocios.Property(e => e.IdImagen).IsRequired(); Negocios.Property(e => e.Nombre) .IsRequired() .IsUnicode(false) .HasMaxLength(100); Negocios.Property(e => e.RazonSocial) .IsRequired() .IsUnicode(false); Negocios.Property(e => e.PuntuacionFinal).IsRequired(); Negocios.Property(e => e.Fecha).IsRequired(); Negocios .HasOne(e => e.Imagen) .WithOne(y => y.Negocio) .HasForeignKey("fk_Negocio_Imagen"); }); modelBuilder.Entity<Estatus>(Estatus => { Estatus.HasKey(e => e.IdEstatus); Estatus.Property(e => e.Nombre) .IsRequired() .IsUnicode(false) .HasMaxLength(50); Estatus.Property(e => e.Fecha).IsRequired(); }); modelBuilder.Entity<Imagen>(Imagen => { Imagen.HasKey(e => e.IdImagen); Imagen.Property(e => e.Nombre) .IsRequired() .IsUnicode(false) .HasMaxLength(500); Imagen.Property(e => e.Ruta) .IsRequired() .IsUnicode(false); Imagen.Property(e => e.Size).IsRequired(); Imagen.Property(e => e.Fecha).IsRequired(); }); modelBuilder.Entity<Usuario>(Usuario => { Usuario.HasKey(e => e.IdUsuario); Usuario.Property(e => e.NickName) .IsRequired() .IsUnicode(false) .HasMaxLength(50); Usuario.Property(e => e.Nombre) .IsRequired() .IsUnicode(false) .HasMaxLength(200); Usuario.Property(e => e.ApellidoPaterno) .IsRequired() .IsUnicode(false) .HasMaxLength(50); Usuario.Property(e => e.ApellidoMaterno) .IsRequired() .IsUnicode(false) .HasMaxLength(50); Usuario.Property(e => e.Celular).IsRequired(); Usuario.Property(e => e.Email) .IsRequired() .IsUnicode(false) .HasMaxLength(50); Usuario.Property(e => e.Consumidor).IsRequired(); Usuario.Property(e => e.Fecha).IsRequired(); }); modelBuilder.Entity<Direcccion>(Direcccions => { Direcccions.HasKey(e => e.IdDireccion); Direcccions.Property(e => e.Latitud).IsRequired(); Direcccions.Property(e => e.Longitud).IsRequired(); Direcccions.Property(e => e.Referencia) .IsRequired() .IsUnicode(false); Direcccions.Property(e => e.NumeroExterior).IsRequired(); Direcccions.Property(e => e.Lugar) .IsRequired() .IsUnicode(false) .HasMaxLength(200); Direcccions.Property(e => e.Calle) .IsRequired() .IsUnicode(false) .HasMaxLength(200); }); }
public static string GetCAE(Comprobantes comprobante, out string logError, out string nroComprobante) { comprobante.Empresa = new Empresas(); comprobante.Empresa.Cuit = "33-67789425-9"; comprobante.Empresa.DNOrigen = "serialNumber=CUIT 33677894259,[email protected],CN=VISET,OU=VISET,O=VISET,ST=Buenos Aires,C=AR"; comprobante.Empresa.DNDestino = "CN=wsaahomo; O=afip; C=ar; serialNumber=CUIT 33693450239"; comprobante.Empresa.Id = Convert.ToInt32("2"); comprobante.Empresa.SenderName = "VISET"; comprobante.Empresa.CAI = "CAI1455"; comprobante.Empresa.CertificadoDestinoFileName = @"C:\Vero\Proyectos\MFD\MFDHOMO\Certificados\viset\CRT-root.cer"; comprobante.Empresa.CertificadoFileName = @"C:\Vero\Proyectos\MFD\MFDHOMO\Certificados\viset\viset.crt"; comprobante.Empresa.CertificadoPassword = "******"; comprobante.Empresa.LoginTicketFileName = @"C:\Vero\Proyectos\MFD\MFDHOMO\Certificados\viset\LoginTicketRequest.xml"; logError = String.Empty; string result = String.Empty; LoginTickets loginTicket = GetLoginTicket(comprobante.Empresa); nroComprobante = "-1"; if (loginTicket != null) { FEAuthRequest authRequest = new FEAuthRequest(); authRequest.Token = loginTicket.Token; authRequest.Sign = loginTicket.Sign; authRequest.cuit = Convert.ToInt64(comprobante.Empresa.Cuit.Replace("-", "")); ComprobantesAdapter adapter = new ComprobantesAdapter(comprobante); FERequest request = adapter.GenerarFERequest(comprobante.Id); Service service = new Service(); FEResponse response = service.FEAutRequest(authRequest, request); if (response.FedResp != null && response.FedResp[0].resultado == "R" && response.FedResp[0].motivo.StartsWith("11") && response.FedResp[0].cae == "NULL") { //Caso en que falla por correlatividad de comprobantes FERecuperaLastCMPResponse ultimoComEmitido = service.FERecuperaLastCMPRequest(authRequest, adapter.GenerarFELastCMPtype()); comprobante.NroCbante = comprobante.NroCbante.Substring(0, 5) + (ultimoComEmitido.cbte_nro + 1).ToString().PadLeft(8, '0'); adapter = new ComprobantesAdapter(comprobante); request = new FERequest(); //Generación de otro ID long idDate = DateTime.Now.Year * 10000000000; idDate += DateTime.Now.Month * 100000000; idDate += DateTime.Now.Day * 1000000; idDate += DateTime.Now.Hour * 10000; idDate += DateTime.Now.Minute * 100; idDate += DateTime.Now.Second; request = adapter.GenerarFERequest(idDate); service = new Service(); response = service.FEAutRequest(authRequest, request); } else { if (response.FedResp != null && response.FedResp[0].resultado == "R" && !String.IsNullOrEmpty(response.FedResp[0].motivo)) { ArrayList motivos = new ArrayList(); motivos.AddRange(response.FedResp[0].motivo.Split(";".ToCharArray())); StringBuilder logMotivos = new StringBuilder(); if (motivos.Contains("01")) { logMotivos.Append("01 \"La cuit informada no corresponde a un responsable inscripto en el iva activo\\n"); } if (motivos.Contains("02")) { logMotivos.Append("02 \"La cuit informada no se encuentra autorizada a emitir comprobantes electronicos originales o el periodo de inicio autorizado es posterior al de la generacion de la solicitud\"\n"); } if (motivos.Contains("03")) { logMotivos.Append("03 \"La cuit informada registra inconvenientes con el domicilio fiscal\"\n"); } if (motivos.Contains("04")) { logMotivos.Append("04 \"El punto de venta informado no se encuentra declarado para ser utilizado en el presente regimen\"\n"); } if (motivos.Contains("05")) { logMotivos.Append("05 \"La fecha del comprobante indicada no puede ser anterior en mas de cinco dias, si se trata de una venta, o anterior o posterior en mas de diez dias, si se trata de una prestacion de servicios, consecutivos de la fecha de remision del archivo art. 22 De la rg nro 2177-\"\n"); } if (motivos.Contains("06")) { logMotivos.Append("06 \"La cuit informada no se encuentra autorizada a emitir comprobantes clase \"a\"\"\n"); } if (motivos.Contains("07")) { logMotivos.Append("07 \"Para la clase de comprobante solicitado -comprobante clase a- debera consignar en el campo codigo de documento identificatorio del comprador el codigo \"80\"\n"); } if (motivos.Contains("08")) { logMotivos.Append("08 \"La cuit indicada en el campo nro de identificacion del comprador es invalida\"\n"); } if (motivos.Contains("09")) { logMotivos.Append("09 \"La cuit indicada en el campo nro de identificacion del comprador no existe en el padron unico de contribuyentes\"\n"); } if (motivos.Contains("10")) { logMotivos.Append("10 \"La cuit indicada en el campo nro de identificacion del comprador no corresponde a un responsable inscripto en el iva activo\"\n"); } if (motivos.Contains("11")) { logMotivos.Append("11 \"El nro de comprobante desde informado no es correlativo al ultimo nro de comprobante registrado/hasta solicitado para ese tipo de comprobante y punto de venta\"\n"); } if (motivos.Contains("12")) { logMotivos.Append("12 \"El rango informado se encuentra autorizado con anterioridad para la misma cuit, tipo de comprobante y punto de venta\"\n"); } if (motivos.Contains("13")) { logMotivos.Append("13 \"La cuit indicada se encuentra comprendida en el regimen establecido por la resolucion general nro 2177 y/o en el titulo I de la resolucion general nro 1361 art. 24 De la rg nro 2177\"\n"); } if (logMotivos.Length > 0) { logError = logMotivos.ToString(); } } } nroComprobante = comprobante.NroCbante; try { result = response.FedResp[0].cae; } catch (Exception ex) { nroComprobante = "-1"; result = ex.Message; } } return(result); }
public static string GetCAE(Comprobantes comprobante, out string logError, out string nroComprobante, LoginTicketsBL loginTickets, LoginTicketRequestsBL loginTicketRequests) { loginTicketsBL = loginTickets; loginTicketRequestsBL = loginTicketRequests; return(GetCAE(comprobante, out logError, out nroComprobante)); }
protected IDictionary <Ivas, IList <DetallesComprobantes> > GetDetallesPorIva(Comprobantes comp) { IDictionary <Ivas, IList <DetallesComprobantes> > result = new Dictionary <Ivas, IList <DetallesComprobantes> >(); foreach (DetallesComprobantes detalle in comp.Items) { if (!result.ContainsKey(detalle.TipoIva)) { result.Add(detalle.TipoIva, new List <DetallesComprobantes>()); } result[detalle.TipoIva].Add(detalle); } return(result); }