public static tDocumento ToTDocumento(this Documento documento) { var tdocumento = new tDocumento { aFolio = documento.Folio, aNumMoneda = documento.NumeroMoneda, aTipoCambio = documento.TipoDeCambio, aImporte = documento.Importe, aDescuentoDoc1 = documento.DescuentoDoc1, aDescuentoDoc2 = documento.DescuentoDoc2, aSistemaOrigen = documento.SistemaDeOrigen, aCodConcepto = documento.CodigoConcepto, aSerie = documento.Serie, aFecha = documento.Fecha.ToString("MM/dd/yyyy"), aCodigoCteProv = documento.CodigoClienteProveedor, aCodigoAgente = documento.CodigoAgente, aReferencia = documento.Referencia, aAfecta = documento.Afecta, aGasto1 = documento.Gasto1, aGasto2 = documento.Gasto2, aGasto3 = documento.Gasto3 }; return(tdocumento); }
public int Crear(tDocumento documento) { var documentoId = 0; _sdk.fAltaDocumento(ref documentoId, ref documento).ToResultadoSdk(_sdk).ThrowIfError(); return(documentoId); }
public tDocumento ExtraerTDocumento(Documento documento) { var tdocumento = new tDocumento(); tdocumento.aFolio = documento.Folio; tdocumento.aNumMoneda = documento.NumeroMoneda; tdocumento.aTipoCambio = documento.TipoDeCambio; tdocumento.aImporte = documento.Importe; tdocumento.aDescuentoDoc1 = documento.DescuentoDoc1; tdocumento.aDescuentoDoc2 = documento.DescuentoDoc2; tdocumento.aSistemaOrigen = documento.SistemaDeOrigen; tdocumento.aCodConcepto = documento.CodigoConcepto; tdocumento.aSerie = documento.Serie; tdocumento.aFecha = documento.Fecha.ToString("MM/dd/yyyy"); tdocumento.aCodigoCteProv = documento.CodigoClienteProveedor; tdocumento.aCodigoAgente = documento.CodigoAgente; tdocumento.aReferencia = documento.Referencia; tdocumento.aAfecta = documento.Afecta; tdocumento.aGasto1 = documento.Gasto1; tdocumento.aGasto2 = documento.Gasto2; tdocumento.aGasto3 = documento.Gasto3; return(tdocumento); }
public static extern Int32 fAltaDocumentoCargoAbono(ref tDocumento atDocumento);
public static extern Int32 fAltaDocumento(ref Int32 aIdDocumento, ref tDocumento atDocumento);
public static void GeneraOrdenesDeCompraPendientes() { string fhoy = DateTime.Now.ToShortDateString(); SolicitudMaterialesConsulta sol = new SolicitudMaterialesConsulta(); sol.Estatus.id = 6; // 6 = Por generar orden de compra sol.FechaDesde = Convert.ToDateTime(fhoy); sol.FechaHasta = Convert.ToDateTime(fhoy); List <EN.Abastos.SolicitudMateriales> ls = GetSolicitudDeMateriales(sol); if (ls != null && ls.Count > 0) { SDK.Inicializa(); bool Siguiente = false; foreach (EN.Abastos.SolicitudMateriales solicitud in ls) { if (SDK.AbreEmpresa(solicitud.BaseDeDatos)) { List <EN.Abastos.SolicitudMateriales> ls_aux = new List <EN.Abastos.SolicitudMateriales>(); int cidprov = 0; EN.Abastos.SolicitudMateriales saux = null; //Verifica la cantidad de ordenes de compra a generar // por proveedor de acuerdo a los artículos elegidos. foreach (DetalleSolicitudMateriales ds in solicitud.articulos) { if (cidprov != ds.item.CIDPROVEEDOR) { cidprov = ds.item.CIDPROVEEDOR; saux = new EN.Abastos.SolicitudMateriales(); saux = (EN.Abastos.SolicitudMateriales)solicitud.Clone(); saux.articulos = new List <DetalleSolicitudMateriales>(); saux.articulos.Add(ds); ls_aux.Add(saux); } else { saux.articulos.Add(ds); } } //Por cada diferente proveedor en la misma solicitud // se genera una orden de compra en el sistema comercial foreach (EN.Abastos.SolicitudMateriales sol_aux in ls_aux) { Siguiente = false; try { Documento documento = new Documento(); string codProveedor = documento.BuscaProveedorPorId(solicitud.CIDProveedor); //339 int idmoneda = documento.ObtieneIdMoneda(solicitud.Moneda); double importe = solicitud.total; string sconcepto = documento.ObtieneCodigoConcepto(solicitud.ConceptoDocumento); if (sconcepto.Trim().Length > 0) { string folio = documento.ObtieneFolioSiguiente(sconcepto); solicitud.FolioDocumento = folio; solicitud.SerieDocumento = ""; tDocumento docto = new tDocumento(); docto.aCodConcepto = sconcepto; docto.aSerie = ""; docto.aFecha = DateTime.Now.ToString("MM/dd/yyyy"); docto.aFolio = Convert.ToDouble(documento.Folio); docto.aCodigoCteProv = codProveedor; docto.aNumMoneda = idmoneda; docto.aImporte = importe; docto.aDescuentoDoc1 = 0; docto.aDescuentoDoc2 = 0; docto.aSistemaOrigen = 0; docto.aAfecta = 0; docto.aReferencia = ""; bool bCreado = false; try { bCreado = documento.AltaDeDocumento(docto); } catch (Exception ex) { throw ex; } if (bCreado) { //Inserta información adicional bCreado = documento.SetDatoDocumento("CTEXTOEXTRA1", new StringBuilder(solicitud.Usuario)); } if (bCreado) { int c = 1; foreach (DetalleSolicitudMateriales fila in solicitud.articulos) { tMovimiento tm = new tMovimiento(); tm.aConsecutivo = c; tm.aCodProdSer = fila.item.CCODIGOPRODUCTO.ToString(); tm.aCosto = 0; tm.aPrecio = fila.item.preciocompra; tm.aReferencia = ""; tm.aCodClasificacion = ""; tm.aCodAlmacen = "1"; tm.aUnidades = fila.cantidad; bCreado = false; try { Int32 idMov = documento.AltaMovimiento(tm); if (idMov > 0) { documento.SetDatoMovimiento("CIMPUESTO1", new StringBuilder(((fila.item.preciocompra * fila.cantidad) * 0.16).ToString())); documento.SetDatoMovimiento("CPORCENTAJEIMPUESTO1", new StringBuilder("16")); fila.CIDMOVIMIENTO = idMov; fila.FolioDocumento = folio; fila.SerieDocumento = ""; } else { throw new Exception(string.Format("Revise el log {0} en el visor de eventos del sistema", EN.General.Utils.EventLog)); } } catch (Exception ex) { throw ex; } c++; } } } else { throw new Exception("No se econtró el codigo del concepto " + solicitud.ConceptoDocumento); } InsertaSolicitud(solicitud); //Actualiza información de la solicitud en DB Siguiente = true; } catch (Exception ex) { EN.General.EventLog.WriteError(ex.ToString()); Siguiente = false; break; } } if (SDK.EmpresaAbierta) { SDK.CerrarEmpresa(solicitud.BaseDeDatos); } if (!Siguiente) { break; } } else { EN.General.EventLog.WriteError("Error al procesar la solicitud con id: " + solicitud.id); EN.General.EventLog.WriteError("Error al abrir Base de Datos " + solicitud.BaseDeDatos); } ActualizaEstatus("SICAS", solicitud.id, 4); } SDK.TerminaSDK(); } }
public static extern Int32 fAfectaDocto(ref tDocumento atDocumento, bool aAfectarDocumento);
public static extern int fAltaDocumento(ref int idDocumento, ref tDocumento atDocumento);
internal TraspasoResult TraspasoExistencias(TraspasoParameters TParameters) { TraspasoResult result = new TraspasoResult(); List <string> series = new List <string>(); const string codigoConcepto = "34"; const string serie = ""; double existance = 0; double folio = 0; int documentoId = 0; int movimientoId = 0; int consecutivo = 1; string currentWarehouse = string.Empty; string currentProduct = string.Empty; try { Stopwatch sw = new Stopwatch(); sw.Start(); Login(TParameters.Source); List <Product> ProductsWithExistance = TParameters.Products.Where(x => x.ExistanceControl != 4).ToList(); List <Product> ProductsWithSeries = TParameters.Products.Where(x => x.ExistanceControl == 4).ToList(); foreach (Warehouse w in TParameters.Warehouses) { foreach (Product p in ProductsWithExistance) { p.GetExistence(w); } } LogOut(); sw.Stop(); result.TimeToRead = sw.Elapsed; sw.Restart(); Login(TParameters.DestinationDb); foreach (Warehouse w in TParameters.Warehouses) { _Error = Documentos.fSiguienteFolio(codigoConcepto, "", ref folio); currentWarehouse = w.Name; if (_Error == 0) { tDocumento documento = new tDocumento() { aCodConcepto = codigoConcepto, aFolio = folio, aSerie = serie, aFecha = DateTime.Today.ToString("MM/dd/yyyy") }; _Error = Documentos.fAltaDocumento(ref documentoId, ref documento); foreach (Product p in ProductsWithExistance) { currentProduct = p.Name; if (_Error == 0) { existance = p.GetExistence(w); if (existance > 0) { tMovimiento movto = new tMovimiento(); movto.aCodAlmacen = w.Code; movto.aCodProdSer = p.Code; movto.aConsecutivo = consecutivo; movto.aUnidades = existance; _Error = Movimientos.fAltaMovimiento(documentoId, ref movimientoId, ref movto); } consecutivo++; } if (_Error != 0) { result.Errors.Add(string.Format("Almacen: {0}, Producto: {1}, Detalles: {2}", currentWarehouse, currentProduct, GetCurrentError())); } } } } consecutivo = 0; foreach (Warehouse w in TParameters.Warehouses) { _Error = Documentos.fSiguienteFolio(codigoConcepto, "", ref folio); currentWarehouse = w.Name; if (_Error == 0) { tDocumento documento = new tDocumento() { aCodConcepto = codigoConcepto, aFolio = folio, aSerie = serie, aFecha = DateTime.Today.ToString("MM/dd/yyyy") }; _Error = Documentos.fAltaDocumento(ref documentoId, ref documento); foreach (Product p in ProductsWithSeries) { if (_Error == 0) { currentProduct = p.Name; series = p.GetSeries(w, TParameters.Source).Select(x => x.SeriesNumber).ToList(); if (series.Count > 0) { tMovimiento movto = new tMovimiento(); movto.aCodAlmacen = w.Code; movto.aCodProdSer = p.Code; movto.aConsecutivo = consecutivo; _Error = Movimientos.fAltaMovimiento(documentoId, ref movimientoId, ref movto); foreach (string s in series) { if (_Error == 0) { tSeriesCapas movtoSerie = new tSeriesCapas() { aSeries = s }; _Error = Movimientos.fAltaMovimientoSeriesCapas(movimientoId, ref movtoSerie); if (_Error != 0) { result.Errors.Add(string.Format("Almacen: {0}, Producto: {1}, Serie: {2}, Detalles: {3}", currentWarehouse, currentProduct, s, GetCurrentError())); } } } consecutivo++; } } } } } if (result.Errors.Count <= 0) { result.Errors.Add("No hubo errores durante este traspaso"); } sw.Stop(); result.TimeToImport = sw.Elapsed; LogOut(); return(result); } catch (AccessViolationException ave) { throw new TraspasoExistenciasException("Ocurrio un error al realizar el traspaso de información, revise los permisos en las carpetas de CONTPAQ I Comercial", ave); } }