private void GeneraCierre() { try { var lstArticulos = CierreService.ArticuloDao.CargaArticulosXAlmacen(FrmAlmacen.AlmacenActual.IdAlmacen); var dtCierre = CierreService.CierreDao.CargaUltimaFecha(FrmAlmacen.AlmacenActual.IdAlmacen); var intCount = 0; foreach (var objArticulo in lstArticulos) { intCount++; //Busca Cierre Anterior var objCierre = CierreService.CierreDao.CargaCierrexArticulo(objArticulo.Id.CveArt, FrmAlmacen.AlmacenActual.IdAlmacen, dtCierre.Month, dtCierre.Year); //Busca Entradas Salidas y Calcula decimal[] tm = CierrePaso(objArticulo, dtCierre.AddDays(1),dtFechaCierre.Value, objCierre == null ? 0 : (decimal)objCierre.Existencia, objCierre == null ? 0 : objCierre.Importe, FrmAlmacen.AlmacenActual); var cierreId = new CierreId(dtFechaCierre.Value,objArticulo); var cierre = new Cierre(cierreId)//,tm[1]) { Existencia = tm[0], FechaAlta = CierreService.CierreDao.FechaServidor(), Usuario = FrmAcceso.UsuarioLog, Estatus = "A" }; CierreService.CierreDao.Update(cierre); double doulst = lstArticulos.Count; double dProgressPercentage = intCount / doulst; var iProgressPercentage = (int)(dProgressPercentage * 100); lblProgress.Text = intCount + @"/" + doulst + @" " + iProgressPercentage + @"% Completado"; lblProgress.Refresh(); pbCierre.Value = iProgressPercentage; pbCierre.Refresh(); } btnCancelar.Enabled = true; btnGuardar.Enabled = true; } catch (Exception ee) { MessageBox.Show(@"Ocurrio un error en la insercion o actualizacion del Cierre " + ee.Message, @"Almacenes", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void ImprimeKardex(IList<object []> kardexDetalles) { if (kardexDetalles.Count != 0) { var lstKardex = new List<rptDataKardex>(); var intTmp = 0; var intCveArt = 0; var douExistencia = 0.0; var douSaldo = 0.0; foreach (var kardexDetalle in kardexDetalles) { intTmp++; var idArticulo = new ArticuloId() { Almacen = FrmAlmacen.AlmacenActual, CveArt = (int)kardexDetalle[3] }; var desArticulo = EntradaService.ArticuloDao.Get(idArticulo).DesArticulo; //Inserta Cierre var objCierre = new Cierre(); if (intTmp == 1 || (intCveArt != (int)kardexDetalle[3])) { //Consulta Cierre var cierreId = new CierreId() { FechaCierre = dtFechaIni.AddDays(-1), Articulo = EntradaService.ArticuloDao.Get(idArticulo) }; objCierre = EntradaService.CierreDao.Get(cierreId); var Cierre = new rptDataKardex() { FechaIni = dtFechaIni, FechaFin = dtFechaFin.Value, DesArticulo = desArticulo, CvePartida = kardexDetalle[1].ToString(), DesPartida = kardexDetalle[2].ToString(), CveArt = (int)kardexDetalle[3], Unidad = kardexDetalle[4].ToString(), Presentacion = kardexDetalle[5] == null ? "" : kardexDetalle[5].ToString(), PresentacionCant = kardexDetalle[6] == null ? "" : kardexDetalle[6].ToString(), PresentacionUnid = kardexDetalle[7] == null ? "" : kardexDetalle[7].ToString(), Fecha = dtFechaIni.AddDays(-1), Folio = -1, //CantEntrada = objCierre == null ? 0 : Convert.ToDouble(objCierre.Existencia), CantSalida = -1, //Existencia = objCierre == null ? 0 : Convert.ToDouble(objCierre.Existencia), //PrecioEntrada = objCierre == null ? 0 : Convert.ToDouble(objCierre.Importe), PrecioSalida = -1, //Debe = objCierre == null ? 0 : Convert.ToDouble(objCierre.Existencia * objCierre.Importe), //Saldo = objCierre == null ? 0 : Convert.ToDouble(objCierre.Existencia * objCierre.Importe), Haber = -1, Area = @"EXISTENCIA AL " + dtFechaIni.AddDays(-1).ToShortDateString() }; if(objCierre==null) { Cierre.CantEntrada = 0; Cierre.Existencia = 0; Cierre.PrecioEntrada = 0; Cierre.Debe = 0; Cierre.Saldo = 0; } else { Cierre.CantEntrada = Convert.ToDouble(objCierre.Existencia); Cierre.Existencia = Convert.ToDouble(objCierre.Existencia); Cierre.PrecioEntrada = Convert.ToDouble(objCierre.Importe); Cierre.Debe = Convert.ToDouble(objCierre.Existencia * objCierre.Importe); Cierre.Saldo = Convert.ToDouble(objCierre.Existencia * objCierre.Importe); } lstKardex.Add(Cierre); } var kardex = new rptDataKardex() { FechaIni = dtFechaIni, FechaFin = dtFechaFin.Value, DesArticulo = desArticulo, CvePartida = kardexDetalle[1].ToString(), DesPartida = kardexDetalle[2].ToString(), CveArt = (int)kardexDetalle[3], Unidad = kardexDetalle[4].ToString(), Presentacion = kardexDetalle[5] == null ? "" : kardexDetalle[5].ToString(), PresentacionCant = kardexDetalle[6] == null ? "" : kardexDetalle[6].ToString(), PresentacionUnid = kardexDetalle[7] == null ? "" : kardexDetalle[7].ToString(), Fecha = DateTime.Parse(kardexDetalle[8].ToString()), Pedido = kardexDetalle[9] == null ? 0 : (int)kardexDetalle[9], Folio = (int)kardexDetalle[10], CantEntrada = Convert.ToDouble(kardexDetalle[11]), CantSalida = Convert.ToDouble(kardexDetalle[12]), PrecioEntrada = Convert.ToDouble(kardexDetalle[13]), PrecioSalida = Convert.ToDouble(kardexDetalle[14]), Debe = Convert.ToDouble(kardexDetalle[15]), Haber = Convert.ToDouble(kardexDetalle[16]), Area = kardexDetalle[17].ToString(), TipoPedido = kardexDetalle[18] == null ? -1 : (int)kardexDetalle[18] }; if (intTmp == 1 || intCveArt != (int)kardexDetalle[3]) { intCveArt = (int)kardexDetalle[3]; if(objCierre==null) { douExistencia = 0; douSaldo = 0; } else { douExistencia = Convert.ToDouble(objCierre.Existencia); douSaldo = Convert.ToDouble(objCierre.Existencia * objCierre.Importe); } //douExistencia = objCierre == null ? 0 : Convert.ToDouble(objCierre.Existencia); //douSaldo = objCierre == null ? 0 : Convert.ToDouble(objCierre.Existencia * objCierre.Importe); //douExistencia = kardexDetalle[0].ToString() == "E" ? // douExistencia + Convert.ToDouble(kardexDetalle[11]) : // douExistencia - Convert.ToDouble(kardexDetalle[12]); } //else //{ // if(intCveArt!=(int) kardexDetalle[3]) // { // intCveArt = (int)kardexDetalle[3]; // douExistencia = 0.0; // douSaldo = 0.0; //douExistencia = kardexDetalle[0].ToString() == "E" ? // douExistencia + Convert.ToDouble(kardexDetalle[11]) : // douExistencia - Convert.ToDouble(kardexDetalle[12]); //} //else //{ // intCveArt = (int)kardexDetalle[3]; // douExistencia = 0.0; // //douExistencia = kardexDetalle[0].ToString() == "E" ? // // douExistencia + Convert.ToDouble(kardexDetalle[11]) : // // douExistencia - Convert.ToDouble(kardexDetalle[12]); //} //} douExistencia = kardexDetalle[0].ToString() == "E" ? douExistencia + Convert.ToDouble(kardexDetalle[11]) : douExistencia - Convert.ToDouble(kardexDetalle[12]); douSaldo = kardexDetalle[0].ToString() == "E" ? douSaldo + Convert.ToDouble(kardexDetalle[15]) : douSaldo - Convert.ToDouble(kardexDetalle[16]); kardex.Existencia = douExistencia; kardex.Saldo = douSaldo; lstKardex.Add(kardex); } var formaVisor = new FrmCrVisor { ObjList = lstKardex, StrRptName = "rptKardex", StrTitle = "ALMACEN DE " + FrmAlmacen.AlmacenActual.DesAlmacen }; formaVisor.ShowDialog(); } else { MessageBox.Show(@"No Existen Entradas/Salidas, Verifique . .", @"Almacenes", MessageBoxButtons.OK, MessageBoxIcon.Information); } }