internal ResultForm(TraspasoParameters parameters, TraspasoResult result) { InitializeComponent(); this.parameters = parameters; this.result = result; CONTPAQService = CONTPAQService.Instance; }
private void btnProcess_Click(object sender, EventArgs e) { Params.Products = GetSelectedProducts(); Params.Warehouses = GetSelectedWarehouses(); if (ReferenceEquals(Params.Source, null)) { MessageBox.Show("Debe especificar la empresa de donde se tomaran las existencias", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (ReferenceEquals(Params.DestinationDb, null)) { MessageBox.Show("Debe especificar la empresa a donde se moveran las existencias", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (ReferenceEquals(Params.DestinationDb, Params.Source)) { MessageBox.Show("La empresa origen y la empresa destino no pueden ser la misma", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (Params.Products.Count <= 0) { MessageBox.Show("Debe seleccionar al menos un producto", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (Params.Warehouses.Count <= 0) { MessageBox.Show("Debe seleccionar al menos un almacen", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { try { TraspasoResult result = CONTPAQService.TraspasoExistencias(Params); using (ResultForm frm = new ResultForm(Params, result)) { frm.ShowDialog(); } } catch (TraspasoExistenciasException tee) { MessageBox.Show("Ocurrio un error al generar el traspaso, detalles: " + tee.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
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); } }